entity.action naming convention. Allo delivers events at least once — your endpoint may receive the same event more than once. Use the webhook-id header to deduplicate. See Best practices for details.
Event summary
call.received
Fired when an inbound call starts ringing, before the call is answered. When a matching contact is found, the event includesperson, company, and deals objects with contact context.
Person object
Company object
Deal object
call.triggered
Fired when an outbound call is initiated. When a matching contact is found, the event includesperson, company, and deals objects with contact context.
The
person, company, and deals objects use the same schema as call.received.
call.answered
Fired the moment a call is answered on the other side, for both inbound and outbound calls — aftercall.received / call.triggered (ring) and before call.completed (hang-up). Use it to react in real time when the prospect picks up. When a matching contact is found, the event includes person, company, and deals objects with contact context.
The
person, company, and deals objects use the same schema as call.received.
call.completed
Fired after a call ends. Includes the full call data: recording, transcript, summary, tags, and transfer details. This event is typically sent about 30 seconds after the call hangs up.Fields
Call result values
Transcription entry
Transfer object
IVR result entry
tag.added
Fired when a tag is added to a call.tag.removed
Fired when a tag is removed from a call.sms.received
Fired when an inbound SMS is received.sms.sent
Fired when an outbound SMS is sent.contact.created
Fired when a new contact is created.contact.updated
Fired when an existing contact is modified.contact.created. The data object contains the full contact state after the update.
conversation_note.created
Fired when an internal note is added to a conversation — from the Allo apps or via the Notes API.conversation_note.created events are deduplicated by note ID: you receive at most one per note.
User object
Mention entry
conversation_note.updated
Fired when a conversation note’s content is edited. The payload structure is identical toconversation_note.created, with the updated content, mentions, and updated_at. Unlike *.created events, conversation_note.updated may be re-delivered — deduplicate with the webhook-id header.
conversation_note.deleted
Fired when a conversation note is deleted. The payload structure is identical toconversation_note.created, with the note’s final state and deleted: true. May be re-delivered — deduplicate with the webhook-id header.
contact_note.created
Fired when a note is added to a person’s CRM profile — from the Allo apps or via the Notes API.contact_note.created events are deduplicated by note ID: you receive at most one per note.
The
user and mentions objects use the same schema as conversation_note.created.
contact_note.updated
Fired when a person note’s content is edited. The payload structure is identical tocontact_note.created, with the updated content, mentions, and updated_at. May be re-delivered — deduplicate with the webhook-id header.
contact_note.deleted
Fired when a person note is deleted. The payload structure is identical tocontact_note.created, with the note’s final state and deleted: true. May be re-delivered — deduplicate with the webhook-id header.
thread.created
Fired when a discussion thread is started on a conversation item (a call, an SMS, or a conversation note) — from the Allo apps or via the Threads API. Includes the thread’s first comment.thread.created events are deduplicated by thread ID: you receive at most one per thread.
Comment object
The
user, resolved_by, and mentions objects use the same schema as conversation_note.created.
thread.comment.created
Fired when a comment is added to an existing thread.data is the comment object from thread.created. thread.comment.created events are deduplicated by comment ID: you receive at most one per comment.
thread.comment.updated
Fired when a thread comment’s content is edited.data is the comment object from thread.created, with the updated content, mentions, and updated_at. May be re-delivered — deduplicate with the webhook-id header.
thread.resolved
Fired when a thread is marked as resolved.data is the thread object from thread.created without the comment field. May be re-delivered — deduplicate with the webhook-id header.
thread.unresolved
Fired when a resolved thread is reopened. The payload structure is identical tothread.resolved, with resolved: false and resolved_at / resolved_by set to null. May be re-delivered — deduplicate with the webhook-id header.