Customer Notes Webhooks

Receive notifications whenever notes are created, updated, or deleted on customer conversations. These events help synchronize internal conversation context, agent observations, follow-up instructions, and operational notes across external systems.

Events Covered

EventDescription
CUSTOMER_NOTE_CREATEDFired when a note is created
CUSTOMER_NOTE_UPDATEDFired when a note is edited
CUSTOMER_NOTE_DELETEDFired when a note is deleted

Customer Notes Webhooks track the complete lifecycle of notes associated with customer conversations.

These events are generated when agents create, modify, or remove notes inside DoubleTick.

Common use cases include:

  • CRM synchronization
  • Audit logging
  • Agent activity tracking
  • Knowledge management systems
  • Internal workflow automation

Shared Payload Structure

All Customer Note events share the same core payload structure.

FieldTypeRequiredDescription
eventstringYesType of note event
noteIdstringYesUnique identifier of the note
wabaNumberstringYesAssociated WhatsApp Business number
customerPhonestringYesCustomer phone number
customerNamestringYesCustomer display name
notestringYesFull note content
dtCustomerIdstringYesUnique DoubleTick customer identifier

Event naming: The event field inside each payload uses kebab-case values ("note-created", "note-updated", "note-deleted"). This differs from the SCREAMING_SNAKE_CASE convention used by most other DoubleTick webhook payloads. The subscription event types (CUSTOMER_NOTE_CREATED etc.) follow the standard convention — only the payload body event field deviates.


Customer Note Created

Event type: CUSTOMER_NOTE_CREATED

Fires when an agent creates a new note on a customer conversation.

Sample Payload

{
  "event": "note-created",
  "noteId": "note_01HX9abc123",
  "wabaNumber": "+919000000000",
  "customerPhone": "+919876543210",
  "customerName": "John Doe",
  "note": "Customer prefers Hindi. @David please follow up.",
  "createdByAgent": "James Smith",
  "createdByAgentNumber": "+919111222333",
  "createdAt": "2024-01-15T10:30:00.000Z",
  "dtCustomerId": "customer_pvgpZUh3wg"
}

Additional Fields

All shared fields apply. The following fields are specific to this event:

FieldTypeRequiredDescription
createdByAgentstringYesAgent who created the note
createdByAgentNumberstringYesAgent phone number or login identifier
createdAtstringYesISO 8601 timestamp of creation

Notes

  • The payload contains the complete note content.
  • Agent mentions are already resolved into human-readable names.

Privacy notice: createdByAgentNumber contains personal data (agent phone number). Handle in accordance with applicable data protection regulations and avoid logging it in plain text.


Customer Note Updated

Event type: CUSTOMER_NOTE_UPDATED

Fires when an existing note is edited.

Sample Payload

{
  "event": "note-updated",
  "noteId": "note_01HX9abc123",
  "wabaNumber": "+919000000000",
  "customerPhone": "+919876543210",
  "customerName": "John Doe",
  "note": "Customer prefers Hindi. @David confirmed follow-up scheduled.",
  "updatedByAgent": "James Smith",
  "updatedByAgentNumber": "+919111222333",
  "updatedAt": "2024-01-15T11:30:00.000Z",
  "dtCustomerId": "customer_pvgpZUh3wg"
}

Additional Fields

All shared fields apply. The following fields are specific to this event:

FieldTypeRequiredDescription
updatedByAgentstringYesAgent who updated the note
updatedByAgentNumberstringYesAgent phone number or login identifier
updatedAtstringYesISO 8601 timestamp of update

Notes

  • The note field contains the complete updated note.
  • Previous note content is not included in the payload.
  • Only the latest version of the note is delivered.

Customer Note Deleted

Event type: CUSTOMER_NOTE_DELETED

Fires when an existing note is deleted.

Sample Payload

{
  "event": "note-deleted",
  "noteId": "note_01HX9abc123",
  "wabaNumber": "+919000000000",
  "customerPhone": "+919876543210",
  "customerName": "John Doe",
  "note": "Customer prefers Hindi. @David confirmed follow-up scheduled.",
  "deletedByAgent": "James Smith",
  "deletedByAgentNumber": "+919111222333",
  "deletedAt": "2024-01-15T12:00:00.000Z",
  "dtCustomerId": "customer_pvgpZUh3wg"
}

Additional Fields

All shared fields apply. The following fields are specific to this event:

FieldTypeRequiredDescription
deletedByAgentstringYesAgent who deleted the note
deletedByAgentNumberstringYesAgent phone number or login identifier
deletedAtstringYesISO 8601 timestamp of deletion

Notes

  • The deleted note content is intentionally included in the payload.
  • This allows downstream systems to retain historical records even after deletion.

Event Differences

FieldCUSTOMER_NOTE_CREATEDCUSTOMER_NOTE_UPDATEDCUSTOMER_NOTE_DELETED
eventnote-creatednote-updatednote-deleted
noteIdYesYesYes
noteYesYesYes
createdByAgentYesNoNo
updatedByAgentNoYesNo
deletedByAgentNoNoYes
createdAtYesNoNo
updatedAtNoYesNo
deletedAtNoNoYes
customerPhoneYesYesYes
customerNameYesYesYes
wabaNumberYesYesYes
dtCustomerIdYesYesYes

Important Considerations

Notes Are Free-Form Text

The note field contains agent-authored content and may contain arbitrary text.

Applications should treat note content as unstructured text.

Do not rely on note formatting remaining consistent.

Mentions Are Human Readable

Agent mentions are delivered as display names.

Example:

@David please follow up tomorrow.

The webhook does not include internal user identifiers for mentions.

Do Not Parse Note Content

The content of notes is intended for human consumption.

Avoid building business logic that depends on specific text patterns or note formatting.

Full Content Is Always Returned

For create, update, and delete events, the webhook payload contains the complete note content rather than a partial update.


Edge Cases

No Change History

Update events contain only the latest version of the note.

The previous version is not included.

If historical tracking is required, store prior note content when processing earlier events.

Deleted Notes Remain Available In Payload

Although the note has been removed from DoubleTick, the webhook still contains the deleted note content.

This enables external systems to maintain audit trails and historical records.

Multiple Edits

A note edited multiple times generates multiple CUSTOMER_NOTE_UPDATED events.

Each event contains the complete note state at the time the update was saved.

Mention Resolution

Agent mentions are resolved before webhook delivery.

The exact mention formatting may change over time and should not be relied upon for programmatic processing.


Integration Recommendations

Use noteId As The Primary Identifier

Store and track notes using noteId.

Agent names and note content may change over time, but the note identifier remains stable throughout the note lifecycle.

Maintain Local History

If your application requires version history, store each update event as a separate revision.

DoubleTick does not provide previous note values in update payloads.

Process Events Independently

Each note event represents a distinct lifecycle action.

Applications should handle create, update, and delete events separately rather than assuming a complete note snapshot exists elsewhere.