Sent when an activity changes. For calls, NMC sends an update as soon as the call ends and sends later updates when the recording and transcript finish processing (which can also update call_status from answered to a voicemail status).
string
Unique event ID (matches payload id) used for deduplication and signature verification.
webhook-timestamprequired
string
Unix timestamp in seconds when NMC signed this delivery attempt.
webhook-signaturerequired
string
Space-separated v1, signatures over {webhook-id}.{webhook-timestamp}.{raw_body}.
Media typeapplication/json
object
string
Allowed values: 2026-10-01
object
string
Allowed values: USD CAD
Whether NMC is currently tracking new calls, texts, forms, and forwarded emails for this business. Tracking pauses when the account’s plan isn’t running or its balance drops to $0 or below.
object
When tracking last switched between active and paused.
string format: date-time
string
Allowed values: active paused
object
Dot-separated paths of public fields on data.object that changed in this event (excluding updated_at). Empty on *.created events; an array, or an object that appears or disappears, is listed as a whole.
Array<string>
One of:
object
Any of:
object
contact_first_namerequired
contact_last_namerequired
string
Allowed values: pending succeeded failed
suggested_close_reasonrequired
Any of:
string
Allowed values: couldnt_reach_them price_too_high chose_another_company canceled too_busy other too_far_away work_we_dont_do job_too_small wrong_number existing_job job_seeker spam_or_sales_call
Any of:
Stable identifier for one of the business’s stages. Built-in keys are new, qualified, and converted; a business may also have custom stages. A stage’s key stays the same even if its display name changes.
string
/^[a-z][a-z0-9_]*$/
Any of:
object
object
string | null format: uuid
string
Allowed values: account client migration automatic api_key
string | null format: uuid
string
Allowed values: archived not_a_lead
Any of:
string
Allowed values: couldnt_reach_them price_too_high chose_another_company canceled too_busy other too_far_away work_we_dont_do job_too_small wrong_number existing_job job_seeker spam_or_sales_call
first_activity_idrequired
string | null format: date-time
note_updated_by_api_key_idrequired
string | null format: uuid
object
string
Allowed values: website google_ads google_business_profile local_services_ads other
google_ad_group_idrequired
google_asset_group_idrequired
google_campaign_idrequired
Google Ads {device} ValueTrack value from the ad click (for example, m for mobile).
string | null
google_match_typerequired
Google Ads {matchtype} ValueTrack value from the ad click (for example, e for exact match).
string | null
Google Ads {network} ValueTrack value from the ad click (for example, g for Google Search).
string | null
string | null format: uuid
Stable identifier for one of the business’s stages. Built-in keys are new, qualified, and converted; a business may also have custom stages. A stage’s key stays the same even if its display name changes.
string
/^[a-z][a-z0-9_]*$/
string
Allowed values: open archived not_a_lead
Job value in cents in the business currency. Changing the business currency later does not convert saved amounts.
integer format: int64
object
object
google_ad_group_idrequired
google_asset_group_idrequired
google_campaign_idrequired
Google Ads {device} ValueTrack value from the ad click (for example, m for mobile).
string | null
google_match_typerequired
Google Ads {matchtype} ValueTrack value from the ad click (for example, e for exact match).
string | null
Google Ads {network} ValueTrack value from the ad click (for example, g for Google Search).
string | null
Any of:
object
Any of:
string
Allowed values: human voicemail_message voicemail_no_message
forwarding_phone_e164required
recording_duration_secondsrequired
integer | null format: int32
Any of:
string
Allowed values: processing pending_storage stored none storage_failed
Array<object>
object
string
Allowed values: caller business
transcription_statusrequired
Any of:
string
Allowed values: pending succeeded failed
Any of:
Outcome of the call, matching the NMC dashboard. A call’s status can update after hangup (for example, changing from answered to a voicemail status once transcription finishes). answered: answered and recorded. answered_unrecorded: answered with call recording turned off (so voicemail can’t be distinguished from a person). didnt_connect: busy, unanswered, or failed to forward. Counts as Missed in NMC reports. voicemail_no_message: reached voicemail without leaving a message. Counts as Missed in NMC reports. voicemail_message: reached voicemail and left a message. Counts as Missed in NMC reports. unknown: call ended without a final carrier status. pending: call is still ringing or in progress.
string
Allowed values: answered answered_unrecorded didnt_connect voicemail_no_message voicemail_message unknown pending
integer | null format: int32
Any of:
object
submitted_phone_e164required
Any of:
An email forwarded by the business to its NMC forwarding address. The body contains the extracted plain-text email content, including any note added when forwarding.
object
is_first_activityrequired
string
Allowed values: call text form_submission forwarded_email
tracking_number_idrequired
string | null format: uuid
tracking_phone_e164required
tracking_source_namerequired
object
Phone number in E.164 format. Presence on a contact does not prove verified ownership.
string | null
object
string
Allowed values: USD CAD
Whether NMC is currently tracking new calls, texts, forms, and forwarded emails for this business. Tracking pauses when the account’s plan isn’t running or its balance drops to $0 or below.
object
When tracking last switched between active and paused.
string format: date-time
string
Allowed values: active paused
object
contact
object
Phone number in E.164 format. Presence on a contact does not prove verified ownership.
string | null
lead
object
Any of:
object
contact_first_namerequired
contact_last_namerequired
string
Allowed values: pending succeeded failed
suggested_close_reasonrequired
Any of:
string
Allowed values: couldnt_reach_them price_too_high chose_another_company canceled too_busy other too_far_away work_we_dont_do job_too_small wrong_number existing_job job_seeker spam_or_sales_call
Any of:
Stable identifier for one of the business’s stages. Built-in keys are new, qualified, and converted; a business may also have custom stages. A stage’s key stays the same even if its display name changes.
string
/^[a-z][a-z0-9_]*$/
Any of:
object
object
string | null format: uuid
string
Allowed values: account client migration automatic api_key
string | null format: uuid
string
Allowed values: archived not_a_lead
Any of:
string
Allowed values: couldnt_reach_them price_too_high chose_another_company canceled too_busy other too_far_away work_we_dont_do job_too_small wrong_number existing_job job_seeker spam_or_sales_call
first_activity_idrequired
string | null format: date-time
note_updated_by_api_key_idrequired
string | null format: uuid
object
string
Allowed values: website google_ads google_business_profile local_services_ads other
google_ad_group_idrequired
google_asset_group_idrequired
google_campaign_idrequired
Google Ads {device} ValueTrack value from the ad click (for example, m for mobile).
string | null
google_match_typerequired
Google Ads {matchtype} ValueTrack value from the ad click (for example, e for exact match).
string | null
Google Ads {network} ValueTrack value from the ad click (for example, g for Google Search).
string | null
string | null format: uuid
Stable identifier for one of the business’s stages. Built-in keys are new, qualified, and converted; a business may also have custom stages. A stage’s key stays the same even if its display name changes.
string
/^[a-z][a-z0-9_]*$/
string
Allowed values: open archived not_a_lead
Job value in cents in the business currency. Changing the business currency later does not convert saved amounts.
integer format: int64
string
Allowed values: lead.created lead.updated activity.created activity.updated contact.created contact.updated business.updated
Stop sending events to this webhook endpoint.
Webhook delivery received.