---
title: "contact_updated"
method: POST
path: "contact_updated"
tags: ["Webhooks"]
---

# contact_updated

`POST contact_updated` (webhook)

A contact row changed. Fires on **every** update — including bulk edits and
enrichment, which can mean a very large number of events at once. Make your
handler idempotent and cheap, or subscribe to the narrower `stage_changed`
and `score_changed` events instead.

## Payload

- object: Every outbound event uses this envelope. `data` is the only part that varies by event type.
  - `event` string: Event type. Also sent in the `X-Webhook-Event` header.
  - `timestamp` string, date-time: When the event was delivered — not necessarily when it occurred.
  - `data` object: Event-specific payload.
    - `contact_id` string, uuid
    - `display_name` string
    - `email` string, nullable
    - `phone` string, nullable
    - `stage_id` string, uuid, nullable
    - `lead_score` number, nullable
    - `updated_at` string, date-time
  - `webhook_id` string, uuid: Delivery ID. Also sent as `X-Webhook-ID`. Use it to deduplicate retries.
  - `organization_id` string, uuid

## Acknowledgement `200`

Return any 2xx to acknowledge. A non-2xx or a timeout is treated as a failed
delivery and retried with backoff up to your configured `max_retries`.

---

[API](https://skmtc.dev/automatedclientacquisition/apis/aca-api.md) · [All operations](https://skmtc.dev/automatedclientacquisition/apis/aca-api/llms.txt) · [OpenAPI document](https://skmtc.dev/automatedclientacquisition/apis/aca-api/revisions/8f3e3b141311?raw)
