# contact.updated

A contact was changed

Sent with the contact as it is after the change, and what changed. Use it to keep your own contact records current. A new WhatsApp profile name alone sends nothing.

In the app: Contact updated. Plan feature `webhooks.contacts`. To subscribe over the API: `contacts:read`.

## data

- `contact` (object): The contact as it is after the change.
  - `id` (string, uuid)
  - `phone` (nullable string): The number as `+` and its digits. `null` for a contact known only by a WhatsApp username.
  - `whatsapp_user_id` (nullable string): The ID WhatsApp gives a contact who uses a WhatsApp username. `null` if WhatsApp hasn't given Soosh one.
  - `name` (nullable string): The name your business gave the contact, in the app or through the API. `null` if nobody has. A new WhatsApp profile name never replaces it.
  - `whatsapp_name` (nullable string): The contact's own WhatsApp profile name.
  - `attributes` (object): Your own fields on the contact. Names are 1 to 64 letters, digits or underscores. A map; each value is a string or number or boolean.
  - `tags` (array of strings)
  - `marketing_opt_out` (boolean): Whether the contact opted out of marketing messages.
  - `number_id` (nullable string, uuid): The WhatsApp number the contact is usually messaged from.
  - `chat` (object): The contact's chat. `last_inbound_at` covers any number. The 24-hour window is per number, so don't work it out from this field.
    - `status` (string): One of `open`, `closed`.
    - `assigned_agent_id` (nullable string, uuid)
    - `last_message_at` (nullable string, date-time)
    - `last_inbound_at` (nullable string, date-time)
  - `created_at` (string, date-time)
  - `updated_at` (string, date-time)
- `changed` (array of strings): The fields that changed. More values may be added. One of `name`, `attributes`, `tags`, `number_id`, `marketing_opt_out`. At least 1 item.

## Example event

```json
{
  "id": "evt_d5954c993ce66ff8242f457b7134a172",
  "type": "contact.updated",
  "api_version": "2026-10-14",
  "created_at": "2026-10-14T10:05:27.947Z",
  "workspace_id": "2b7e4c1a-9d3f-4a85-b6e2-5f0c8d1a7e34",
  "data": {
    "contact": {
      "id": "4ea0d485-435d-407f-837a-c7d67095f23a",
      "phone": "+919876543210",
      "whatsapp_user_id": null,
      "name": "Priya Sharma",
      "whatsapp_name": "Priya S",
      "attributes": {
        "customer_id": "8812",
        "city": "Mumbai",
        "orders": 4
      },
      "tags": [
        "VIP"
      ],
      "marketing_opt_out": false,
      "number_id": "0f6d3c1e-5b7a-4c52-9a55-3f6a2d5c8b10",
      "chat": {
        "status": "open",
        "assigned_agent_id": "5b1d7d0e-3c2a-4f61-9a0e-6f8f3b2c1d40",
        "last_message_at": "2026-10-14T09:30:12.481Z",
        "last_inbound_at": "2026-10-14T09:12:40.117Z"
      },
      "created_at": "2026-10-14T09:05:11.420Z",
      "updated_at": "2026-10-14T10:05:27.733Z"
    },
    "changed": [
      "attributes"
    ]
  }
}
```