> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ycloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# contact.attributes_changed

> Ocorre quando os atributos de um contato são alterados.

Use `contact.attributes_changed` para manipular este evento no seu endpoint de webhook.

## Gatilhos

Ocorre quando os atributos de um contato são alterados.

Inscreva-se em `contact.attributes_changed` ao [configurar seu endpoint de webhook](https://docs.ycloud.com/pt/api-reference/guides/api-fundamentals/configure-webhooks.md).

## Sintaxe

A YCloud envia uma solicitação HTTP `POST` para a URL de webhook configurada. A estrutura a seguir mostra uma variante do payload. Os valores entre colchetes angulares são marcadores de posição; seus tipos estão listados em **Parâmetros**. Os campos opcionais e outras variantes são descritos abaixo.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "<ID>",
  "type": "contact.attributes_changed",
  "apiVersion": "<API_VERSION>",
  "createTime": "<CREATE_TIME>",
  "contactAttributesChanged": {
    "id": "<ID>",
    "updateTime": "<UPDATE_TIME>",
    "changedAttributes": {
      "remark_name": {
        "oldValue": "<OLD_VALUE>",
        "newValue": "<NEW_VALUE>"
      },
      "email": {
        "oldValue": "<OLD_VALUE>",
        "newValue": "<NEW_VALUE>"
      },
      "tags": {
        "oldValue": [
          "<OLD_VALUE>"
        ],
        "newValue": [
          "<NEW_VALUE>"
        ],
        "extra": [
          {
            "action": "<ACTION>",
            "id": "<ID>",
            "value": "<VALUE>"
          }
        ]
      }
    }
  }
}
```

## Parâmetros

Valide o cabeçalho HTTP `YCloud-Signature` antes de processar o corpo JSON. Consulte a [validação de assinatura](https://docs.ycloud.com/pt/api-reference/guides/api-fundamentals/configure-webhooks.md).

### Envelope do evento

| Parâmetro | Tipo | Obrigatório | Descrição |
| - | - | - | - |
| `id` | string | Sim | ID exclusivo do evento. Tamanho mínimo: `6`. Tamanho máximo: `128`. |
| `type` | string | Sim | Sempre `contact.attributes_changed`. |
| `apiVersion` | string | Sim | A versão da API usada para renderizar este evento. |
| `createTime` | string (data-hora) | Sim | A hora em que este evento foi criado, formatada em [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339). Ex.: `2022-06-01T12:00:00.000Z`. |

### Payload do evento

| Parâmetro | Tipo | Obrigatório | Descrição |
| - | - | - | - |
| `contactAttributesChanged` | object | Não | Payload específico do evento `contactAttributesChanged`. |

Os quatro campos comuns do envelope são obrigatórios. Os campos do payload dependem da variante do evento. Em cada tabela de objeto, **Obrigatório** se aplica quando o objeto pai estiver presente. Campos opcionais podem ser omitidos; um exemplo não torna um campo obrigatório.

#### contactAttributesChanged

| Parâmetro | Tipo | Obrigatório | Descrição |
| - | - | - | - |
| `id` | string | Sim | O ID do contato cujos atributos foram alterados. |
| `updateTime` | string (data-hora) | Sim | A hora em que os atributos do contato foram atualizados, formatada em [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339). Ex.: `2022-06-01T12:00:00.000Z`. |
| `changedAttributes` | object | Sim | Um objeto que contém os atributos alterados. Cada chave representa o nome do atributo alterado, e o valor contém o valor antigo, o novo valor e as ações de alteração. As chaves usam os nomes do catálogo de atributos de Contato, incluindo chaves do sistema como `remark_name`, `country_code` e `meta_username`. |

## Exemplo

O JSON a seguir é o corpo entregue ao seu receptor. IDs, números de telefone e outros valores de conta são ilustrativos.

> [accordion] Evento de alteração de atributos do contato
>
> Exemplo de payload quando os atributos do contato são alterados
>
> ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
> {
>   "id": "evt_1234567890",
>   "type": "contact.attributes_changed",
>   "apiVersion": "v2",
>   "createTime": "2024-01-01T12:00:00.000Z",
>   "contactAttributesChanged": {
>     "id": "1824266594102064128",
>     "updateTime": "2024-01-01T12:00:00.000Z",
>     "changedAttributes": {
>       "remark_name": {
>         "oldValue": "Standard customer",
>         "newValue": "Priority customer"
>       },
>       "email": {
>         "oldValue": "john.doe@example.com",
>         "newValue": "johnny.doe@example.com"
>       },
>       "tags": {
>         "oldValue": [
>           "premium",
>           "newsletter"
>         ],
>         "newValue": [
>           "premium",
>           "newsletter",
>           "vip"
>         ],
>         "extra": [
>           {
>             "action": "ADDED",
>             "id": "686dd294334be8606a5bf312",
>             "value": "vip"
>           }
>         ]
>       }
>     }
>   }
> }
> ```

> [accordion] Exemplo de alteração de tags (Adicionar tags)
>
> ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
> {
>   "id": "evt_1234567892",
>   "type": "contact.attributes_changed",
>   "apiVersion": "v2",
>   "createTime": "2024-01-01T12:00:00.000Z",
>   "contactAttributesChanged": {
>     "id": "1824266594102064128",
>     "updateTime": "2024-01-01T12:00:00.000Z",
>     "changedAttributes": {
>       "tags": {
>         "oldValue": [
>           "premium",
>           "newsletter"
>         ],
>         "newValue": [
>           "premium",
>           "newsletter",
>           "vip"
>         ],
>         "extra": [
>           {
>             "action": "ADDED",
>             "id": "686dd294334be8606a5bf312",
>             "value": "vip"
>           }
>         ]
>       }
>     }
>   }
> }
> ```

> [accordion] Exemplo de alteração de tags (Remover tags)
>
> ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
> {
>   "id": "evt_1234567893",
>   "type": "contact.attributes_changed",
>   "apiVersion": "v2",
>   "createTime": "2024-01-01T12:00:00.000Z",
>   "contactAttributesChanged": {
>     "id": "1824266594102064128",
>     "updateTime": "2024-01-01T12:00:00.000Z",
>     "changedAttributes": {
>       "tags": {
>         "oldValue": [
>           "premium",
>           "newsletter",
>           "vip"
>         ],
>         "newValue": [
>           "premium",
>           "newsletter"
>         ],
>         "extra": [
>           {
>             "action": "REMOVED",
>             "id": "686dd294334be8606a5bf312",
>             "value": "vip"
>           }
>         ]
>       }
>     }
>   }
> }
> ```

> [accordion] Exemplo de alteração
>
> ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
> {
>   "id": "evt_1234567900",
>   "type": "contact.attributes_changed",
>   "apiVersion": "v2",
>   "createTime": "2024-01-01T12:00:00.000Z",
>   "contactAttributesChanged": {
>     "id": "1824266594102064128",
>     "updateTime": "2024-01-01T12:00:00.000Z",
>     "changedAttributes": {
>       "waba_id": {
>         "oldValue": "waba_old_123456",
>         "newValue": "waba_new_789012",
>         "extra": [
>           {
>             "action": "CHANGED"
>           }
>         ]
>       }
>     }
>   }
> }
> ```

Após verificar a assinatura e aceitar o evento de forma duradoura, retorne uma resposta `2xx`. Processe tarefas demoradas de forma assíncrona.

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
HTTP/1.1 200 OK
```

Para orientações detalhadas de cenários, consulte os [exemplos anotados](https://docs.ycloud.com/pt/api-reference/guides/examples/webhook-examples/contact-attributes-changed-webhook-examples).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.