Events
Triggering Webhook Types
The following event types are associated with the Conversation event payload from Spruce.Spruce Conversation CreatedSpruce Conversation UpdatedSpruce Conversation Deleted
Copy
Ask AI
{
"api_url": "https://api.sprucehealth.com/v1/conversations/conv_12345",
"app_url": "https://app.sprucehealth.com/conversations/conv_12345",
"archived": null,
"assigned_to_member_id": "member_67890",
"associated_contact_ids": [],
"contact_id": "entity_0E5QDGJC03000",
"conversation_type": "sms",
"created_at": null,
"external_participants": [
{
"contact": null,
"display_names": "John Doe",
"endpoint": {
"channel": "sms",
"display_value": "(555) 123-4567",
"endpoint_id": null,
"is_internal": null,
"labels": "mobile",
"object": "endpoint",
"raw_value": {
"email": "patient@example.com",
"phone": "+15551231234",
"value": "secure_channel_id"
}
}
}
],
"id": "conv_12345",
"internal_endpoint": {
"channel": "sms",
"display_value": "(555) 123-4567",
"endpoint_id": null,
"is_internal": null,
"labels": "mobile",
"object": "endpoint",
"raw_value": {
"email": "patient@example.com",
"phone": "+15551231234",
"value": "secure_channel_id"
}
},
"internal_member_ids": [],
"is_read_only": null,
"last_message_at": null,
"object": "conversation",
"subtitle": "Follow-up discussion",
"tags": [
{
"id": "tag_0E5QDGJC03000",
"value": "high-priority"
}
],
"title": "Patient Check-in"
}
Copy
Ask AI
{
"api_url": "API URL for this conversation.",
"app_url": "App URL for this conversation.",
"archived": "Whether this conversation is archived.",
"assigned_to_member_id": "ID of the member assigned to this conversation.",
"associated_contact_ids": "Contact IDs associated with this conversation.",
"contact_id": "Unique identifier for the contact in the Spruce system that is the external participant in this conversation",
"conversation_type": "Type of conversation (sms, email, etc.).",
"created_at": "Timestamp when the conversation was created.",
"external_participants": {
"contact": "Contact ID of the external participant.",
"display_names": "Display names for the external participant.",
"endpoint": {
"channel": "Communication channel type.",
"display_value": "Human-readable display value.",
"endpoint_id": "Unique identifier for the endpoint.",
"is_internal": "Whether this is an internal endpoint.",
"labels": "Labels associated with the endpoint.",
"object": "Object type identifier.",
"raw_value": {
"email": "Email address value.",
"phone": "Phone number value.",
"value": "Secure channel identifier."
}
}
},
"id": "Unique identifier for the conversation in the Spruce system.",
"internal_endpoint": {
"channel": "Communication channel type.",
"display_value": "Human-readable display value.",
"endpoint_id": "Unique identifier for the endpoint.",
"is_internal": "Whether this is an internal endpoint.",
"labels": "Labels associated with the endpoint.",
"object": "Object type identifier.",
"raw_value": {
"email": "Email address value.",
"phone": "Phone number value.",
"value": "Secure channel identifier."
}
},
"internal_member_ids": "Internal member IDs participating in this conversation.",
"is_read_only": "Whether this conversation is read-only.",
"last_message_at": "Timestamp of the last message in this conversation.",
"object": "Object type identifier.",
"subtitle": "Subtitle for the conversation.",
"tags": {
"id": "Unique identifier for the tag.",
"value": "Tag value."
},
"title": "Title of the conversation."
}
Payload Field Details
Hide fields
Hide fields
ID Unique identifier for the conversation in the Spruce system.CEL
Copy
Ask AI
id
Example
Copy
Ask AI
"conv_12345"
ID Unique identifier for the contact in the Spruce system that is the external participant in this conversationCEL
Copy
Ask AI
contact_id
Example
Copy
Ask AI
"entity_0E5QDGJC03000"
API URL for this conversation.
CEL
Copy
Ask AI
api_url
Example
Copy
Ask AI
"https://api.sprucehealth.com/v1/conversations/conv_12345"
App URL for this conversation.
CEL
Copy
Ask AI
app_url
Example
Copy
Ask AI
"https://app.sprucehealth.com/conversations/conv_12345"
Whether this conversation is archived.
CEL
Copy
Ask AI
archived
Example
Copy
Ask AI
null
ID ID of the member assigned to this conversation.CEL
Copy
Ask AI
assigned_to_member_id
Example
Copy
Ask AI
"member_67890"
ID Contact IDs associated with this conversation.CEL
Copy
Ask AI
associated_contact_ids
Example
Copy
Ask AI
[]
Timestamp when the conversation was created.
CEL
Copy
Ask AI
created_at
Example
Copy
Ask AI
null
External participants in the conversation.
CEL
Copy
Ask AI
external_participants
Example
Copy
Ask AI
[
{
"contact": null,
"display_names": "John Doe",
"endpoint": {
"channel": "sms",
"display_value": "(555) 123-4567",
"endpoint_id": null,
"is_internal": null,
"labels": "mobile",
"object": "endpoint",
"raw_value": {
"email": "patient@example.com",
"phone": "+15551231234",
"value": "secure_channel_id"
}
}
}
]
ID Mapped array of: Contact ID of the external participant.CEL
Copy
Ask AI
external_participants.map(x, x.contact)
Example
Copy
Ask AI
[
null
]
PII Mapped array of: Display names for the external participant.CEL
Copy
Ask AI
external_participants.map(x, x.display_names)
Example
Copy
Ask AI
[
"John Doe"
]
Mapped array of: Communication endpoint for the participant.
CEL
Copy
Ask AI
external_participants.map(x, x.endpoint)
Example
Copy
Ask AI
[
{
"channel": "sms",
"display_value": "(555) 123-4567",
"endpoint_id": null,
"is_internal": null,
"labels": "mobile",
"object": "endpoint",
"raw_value": {
"email": "patient@example.com",
"phone": "+15551231234",
"value": "secure_channel_id"
}
}
]
Internal endpoint for the conversation.
CEL
Copy
Ask AI
internal_endpoint
Example
Copy
Ask AI
{
"channel": "sms",
"display_value": "(555) 123-4567",
"endpoint_id": null,
"is_internal": null,
"labels": "mobile",
"object": "endpoint",
"raw_value": {
"email": "patient@example.com",
"phone": "+15551231234",
"value": "secure_channel_id"
}
}
Communication channel type.
CEL
Copy
Ask AI
internal_endpoint.channel
Example
Copy
Ask AI
"sms"
Human-readable display value.
CEL
Copy
Ask AI
internal_endpoint.display_value
Example
Copy
Ask AI
"(555) 123-4567"
ID Unique identifier for the endpoint.CEL
Copy
Ask AI
internal_endpoint.endpoint_id
Example
Copy
Ask AI
null
Whether this is an internal endpoint.
CEL
Copy
Ask AI
internal_endpoint.is_internal
Example
Copy
Ask AI
null
Labels associated with the endpoint.
CEL
Copy
Ask AI
internal_endpoint.labels
Example
Copy
Ask AI
"mobile"
Object type identifier.
CEL
Copy
Ask AI
internal_endpoint.object
Example
Copy
Ask AI
"endpoint"
Raw endpoint value with type-specific data.
CEL
Copy
Ask AI
internal_endpoint.raw_value
Example
Copy
Ask AI
{
"email": "patient@example.com",
"phone": "+15551231234",
"value": "secure_channel_id"
}
PII Email address value.CEL
Copy
Ask AI
internal_endpoint.raw_value.email
Example
Copy
Ask AI
"patient@example.com"
PII Phone number value.CEL
Copy
Ask AI
internal_endpoint.raw_value.phone
Example
Copy
Ask AI
"+15551231234"
PII Secure channel identifier.CEL
Copy
Ask AI
internal_endpoint.raw_value.value
Example
Copy
Ask AI
"secure_channel_id"
ID Internal member IDs participating in this conversation.CEL
Copy
Ask AI
internal_member_ids
Example
Copy
Ask AI
[]
Whether this conversation is read-only.
CEL
Copy
Ask AI
is_read_only
Example
Copy
Ask AI
null
Timestamp of the last message in this conversation.
CEL
Copy
Ask AI
last_message_at
Example
Copy
Ask AI
null
Object type identifier.
CEL
Copy
Ask AI
object
Example
Copy
Ask AI
"conversation"
Subtitle for the conversation.
CEL
Copy
Ask AI
subtitle
Example
Copy
Ask AI
"Follow-up discussion"
Tags associated with the conversation.
CEL
Copy
Ask AI
tags
Example
Copy
Ask AI
[
{
"id": "tag_0E5QDGJC03000",
"value": "high-priority"
}
]
ID Mapped array of: Unique identifier for the tag.CEL
Copy
Ask AI
tags.map(x, x.id)
Example
Copy
Ask AI
[
"tag_0E5QDGJC03000"
]
Mapped array of: Tag value.
CEL
Copy
Ask AI
tags.map(x, x.value)
Example
Copy
Ask AI
[
"high-priority"
]
Title of the conversation.
CEL
Copy
Ask AI
title
Example
Copy
Ask AI
"Patient Check-in"
Type of conversation (sms, email, etc.).
CEL
Copy
Ask AI
conversation_type
Example
Copy
Ask AI
"sms"
