For Agents
Create, read, update, archive, search, and upsert HubSpot CRM communication engagement records for channels like WhatsApp, LinkedIn, and SMS, with batch endpoints for high-volume logging.
Get started with Communications in minutes using your preferred integration method.
# Add to your MCP client config (Claude Desktop, Cursor, Windsurf)
{
"jentic": {
"url": "https://api.jentic.com/mcp",
"auth": "oauth"
}
}
# Then ask your agent:
"log a whatsapp message in hubspot"
# → Jentic returns the GET /events tool with parameter schema, agent executes.What an agent can do with Communications API.
Log communication engagements with channel type, message body, direction, and timestamp
Batch upsert communications by an external message id to avoid duplicates from retried webhooks
Search communications by contact, channel, or date range using filter groups
Retrieve a communication record with its associated contacts and companies in one call
GET STARTED
Use for: I need to log a WhatsApp message in HubSpot CRM, Retrieve a communication record by its engagement ID, Search for all LinkedIn messages with a contact in the last 30 days, Update the body of an existing communication record
Not supported: Does not send messages, manage live inbox conversations, or log calls or emails — use only for HubSpot CRM communication engagement records on non-email, non-call channels.
The HubSpot CRM Communications API manages communication engagement records — log entries representing channel-specific messages such as WhatsApp, LinkedIn, or SMS conversations associated with contacts and companies. It exposes the standard CRM v3 object pattern with batch read, create, update, archive, search, and upsert against the communications object. Records carry channel type, body, direction, and timestamp, providing a unified CRM activity timeline for non-email, non-call channels.
Update communication properties (body, channel) after the record is created
Archive communication records in batch when removing from active CRM views
Page through all communications for export or activity reporting
Patterns agents use Communications API for, with concrete tasks.
★ Multi-Channel Activity Logging
When a sales rep messages a contact on WhatsApp or LinkedIn from an external tool, log the message as a communication engagement in HubSpot so the activity appears on the contact timeline. Batch create handles up to 100 communications per request, suitable for daily reconciliation jobs.
POST 50 communication records to /crm/v3/objects/communications/batch/create with hs_communication_channel_type, hs_communication_body, and contact associations from the messaging tool.
Cross-Channel Activity Search
Search the communications object for all non-email, non-call activity with a specific contact in the last 30 days, returning channel and timestamp. This powers a unified activity view across LinkedIn, WhatsApp, and SMS.
POST /crm/v3/objects/communications/search with filterGroups for contact id and hs_timestamp in the last 30 days, returning hs_communication_channel_type and hs_communication_body.
Idempotent Message Sync
Use batch upsert with an external messaging system id as the idempotency key so retried webhooks from the messaging provider do not create duplicate communication engagements. Critical for high-volume channels where the provider retries on network failures.
POST to /crm/v3/objects/communications/batch/upsert with idProperty set to external_message_id and 100 message payloads from the provider's queue.
AI Agent Conversation Summarisation
An AI agent reads communication threads on a contact, generates a rolling summary, and posts the summary back as a note. Jentic exposes the search and update operations with typed schemas, so the agent can stitch a multi-channel conversation history without consulting docs.
Search communications for a contact in the last 7 days, concatenate hs_communication_body, generate a summary, and PATCH the contact with the summary note.
11 endpoints — the hubspot crm communications api manages communication engagement records — log entries representing channel-specific messages such as whatsapp, linkedin, or sms conversations associated with contacts and companies.
METHOD
PATH
DESCRIPTION
/crm/v3/objects/communications/batch/create
Create communication records in batch
/crm/v3/objects/communications/batch/upsert
Idempotent upsert by external id
/crm/v3/objects/communications/batch/read
Read communications in batch by ID
/crm/v3/objects/communications/batch/update
Update communication properties in batch
/crm/v3/objects/communications/search
Search communications by filter groups
/crm/v3/objects/communications/{communicationId}
Retrieve a single communication
/crm/v3/objects/communications
List communications with pagination
/crm/v3/objects/communications/batch/create
Create communication records in batch
/crm/v3/objects/communications/batch/upsert
Idempotent upsert by external id
/crm/v3/objects/communications/batch/read
Read communications in batch by ID
/crm/v3/objects/communications/batch/update
Update communication properties in batch
/crm/v3/objects/communications/search
Search communications by filter groups
Three things that make agents converge on Jentic-routed access.
Credential isolation
HubSpot OAuth and private app tokens are encrypted in the Jentic vault. Scoped tokens are injected at execution — raw credentials never appear in agent prompts or logs.
Intent-based discovery
Agents search Jentic by intent (e.g. 'log a whatsapp message in hubspot') and Jentic returns the matching communications operation with its typed input schema, so the agent calls the right endpoint without doc lookup.
Time to first call
Direct integration: 1-2 days for OAuth, idempotent upsert, and channel-type mapping. Through Jentic: under 1 hour — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
Calls
Logs telephony engagements that complement the non-call communications object.
Use Calls when the agent is logging voice conversations rather than text-based channels.
Conversations Inbox Messages
Manages live messages in the HubSpot conversations inbox.
Use Conversations when the agent needs to read or post live inbox messages; use Communications for logged historical engagement records.
Twilio
Twilio sends and receives SMS and WhatsApp messages without HubSpot CRM linkage.
Choose Twilio when the agent must send a message; use HubSpot Communications to log that message into the CRM activity timeline.
Specific to using Communications API through Jentic.
What authentication does the HubSpot Communications API use?
It supports OAuth 2.0 (oauth2 and oauth2_legacy) and HubSpot private app tokens. Through Jentic, tokens are stored encrypted in the vault and a scoped token is injected per request, keeping raw credentials out of the agent context.
Which channels does the HubSpot Communications API support?
The communications object covers non-email, non-call channels — WhatsApp, LinkedIn, SMS, and other custom channels. Channel type is stored in the hs_communication_channel_type property. Use the Calls API for telephony engagements and the Emails API for email.
What are the rate limits for the HubSpot Communications API?
Standard CRM v3 limits apply — 100 requests per 10 seconds for OAuth apps and 110 per 10 seconds for private apps. Use /crm/v3/objects/communications/batch/upsert (up to 100 records per call) for high-volume messaging sync.
How do I log a WhatsApp message through Jentic?
Run the Jentic search "log whatsapp message in hubspot" to find POST /crm/v3/objects/communications/batch/create, load the schema, and execute with hs_communication_channel_type set to WHATS_APP and the contact association. Jentic handles authentication.
Is the HubSpot Communications API free?
Access is included with any HubSpot account that has Sales Hub or Service Hub. There is no per-call HubSpot fee beyond the underlying tier subscription.
Can I associate a communication with multiple contacts?
Yes — pass an associations array on create, or use the CRM Associations API afterwards, to link a single communication to multiple contacts and companies. The single-record GET supports an associations parameter to return linked IDs in one call.
/crm/v3/objects/communications/{communicationId}
Retrieve a single communication
/crm/v3/objects/communications
List communications with pagination