Navigation

Add Communication History

Log external communication events to a contact's timeline

POST /apis/v2/public/crm/addCommsHistory

Logs a communication event (email, SMS, call, or message) to a contact's history. This is an insert-only endpoint — use it to sync external communications into Zyntro so SI has a complete view of all interactions with a contact.

Requires a valid `api_key` and `developer_secret` in the JSON request body. Requests must originate from a whitelisted IP address.

Parameters

Name In Type Required Description
api_key body string Yes Your Zyntro API key
developer_secret body string Yes Your developer secret (zdk_XXX). Issued during developer onboarding.
org_id body string Yes Your organization UUID
member_id body string Yes The member UUID. Must be a valid member in the organization.
contact_id body string Yes The UUID of the contact this communication is about
comms_type body string Yes The type of communication. Must be one of: `email`, `sms`, `call`, `message`
comms_data body string or object Yes The communication content. Can be a plain text string or a JSON object with structured data (e.g., subject, body, recipients).
comms_source body string No Where this communication originated (e.g., "Gmail", "Twilio", "External CRM"). Max 55 characters.
comms_sentiment body string No Sentiment label for the communication (e.g., "positive", "neutral", "frustrated").
comms_next body string No Suggested next steps or follow-up action.
comms_status body string No Processing status: `pending` or `processed`. Default: `processed`

Request Body

Content-Type: application/json

Example

json
{
    "org_id": "YOUR_ORG_ID",
    "api_key": "YOUR_API_KEY",
    "member_id": "YOUR_MEMBER_ID",
    "comms_data": "Sent a follow-up email about the enterprise pricing proposal. Contact requested a revised quote by Friday.",
    "comms_next": "Send revised quote by 2026-04-04",
    "comms_type": "email",
    "contact_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "comms_source": "Gmail",
    "comms_sentiment": "positive",
    "developer_secret": "YOUR_DEVELOPER_SECRET"
}

Code Samples

bash
curl -X POST https://app.zyntrohq.com/apis/v2/public/crm/addCommsHistory \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "YOUR_API_KEY",
    "developer_secret": "YOUR_DEVELOPER_SECRET",
    "org_id": "YOUR_ORG_ID",
    "member_id": "YOUR_MEMBER_ID",
    "contact_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "comms_type": "call",
    "comms_data": "15-minute discovery call. Discussed pain points with current CRM.",
    "comms_source": "Phone",
    "comms_sentiment": "positive"
  }'
Tip: Logging external communications helps SI build a complete engagement timeline. When SI decides whether to send a follow-up or adjust a contact's pipeline stage, it considers all logged interactions — not just those that originated from Zyntro.

Response

200 Communication logged
json
{
    "data": {
        "ch_id": 891,
        "message": "Communication history logged successfully"
    },
    "status": "success"
}
200 Error response
json
{
    "data": [
        "comms_type must be one of: email, sms, call, message"
    ],
    "status": "error"
}

Errors

Code Message Resolution
MISSING_API_KEY API key is required
The `api_key` field is missing.
Include your API key.
INVALID_API_KEY Invalid API key
No active user matches the key.
Verify your key.
IP_NOT_WHITELISTED IP address not whitelisted
The request originated from an IP not in the key's allowed list.
Contact your client to add your IP to the developer key whitelist.
INVALID_DEVELOPER_SECRET Invalid developer_secret
The developer secret does not match any active key.
Verify your developer secret. If lost, have your client revoke and reissue the key.
MISSING_DEVELOPER_SECRET Missing developer_secret
The `developer_secret` field is missing or empty.
Include your developer secret in the request body. This is issued during developer onboarding.
MISSING_FIELDS org_id / member_id / contact_id / comms_type / comms_data is required
A required field is missing.
Include all required fields.
INVALID_TYPE comms_type must be one of: email, sms, call, message
The communication type is not a recognized value.
Use one of the four allowed types.
NOT_FOUND Contact not found in this organization
No contact with that ID exists in the organization.
Verify the contact_id and org_id.
MEMBER_NOT_FOUND Member not found in this organization
The member_id does not belong to any member in the organization.
Use a valid member ID.

Was this article helpful?

NotebookLM Overviews