For Agents
Manage Heyy contacts, broadcasts, WhatsApp messaging, automations, and webhooks across an omnichannel inbox using Bearer JWT authentication.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Heyy API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Heyy API.
Create, update, and delete contacts and attach custom attributes via /contacts/{contactId}/attributes
Run broadcast campaigns by creating a broadcast, adding recipients, and triggering POST /{channelId}/broadcasts/{broadcastId}/start
Send WhatsApp messages from a connected channel via POST /{channelId}/whatsapp_messages/send
GET STARTED
Use for: I need to add a new contact and tag them with attribute source=campaign-spring, Send a WhatsApp message to contact 1234 from channel WA-001, Create a broadcast on the WA-001 channel with template welcome_v3 and start it now, List all contacts that have label vip
Not supported: Does not handle voice calls, SMS without WhatsApp, or social media publishing — use for omnichannel messaging, broadcasts, and contact management only.
The Heyy API drives an omnichannel messaging platform that unifies WhatsApp, web chat, and other conversational channels. Across 37 endpoints, agents manage contacts and their attributes, run broadcast campaigns with recipient lists and scheduled starts, send WhatsApp messages, configure webhooks for incoming events, manage labels and custom attributes, trigger automations, and query chats and channels. Authentication uses a Bearer JWT issued from the Heyy console.
Configure webhooks to receive inbound message and delivery events with create, update, and delete operations
Trigger named automations through POST /automations/{automationId}/trigger to run multi-step flows on demand
Manage chats and channels — list active chats, update chat state, and inspect connected channels
Maintain shared labels and message templates that broadcasts and chat agents can reuse
Patterns agents use Heyy API for, with concrete tasks.
★ WhatsApp Broadcast Campaigns
Marketing teams build a recipient list, create a broadcast on a WhatsApp channel via POST /{channelId}/broadcasts, attach contacts with POST /{channelId}/broadcasts/{broadcastId}/recipients, and start delivery with POST /{channelId}/broadcasts/{broadcastId}/start. The API tracks recipients separately so you can pause, resume, or audit who received a message without re-creating the broadcast.
Create a broadcast on channel WA-001 with template welcome_v3, add 500 contacts via the recipients endpoint, then call POST /{channelId}/broadcasts/{broadcastId}/start.
Conversational CRM Sync
Sync contacts and their attributes between Heyy and an internal CRM by polling GET /contacts and pushing updates with PUT /contacts/{contactId} and POST /contacts/{contactId}/attributes. Labels keep segmentation consistent across the inbox and your CRM, so support agents see the same context as marketing automations.
For each new CRM lead, call POST /contacts with name and phone, then POST /contacts/{contactId}/attributes to set source=crm-import.
Inbound Event Streaming
Operators configure webhooks via POST /webhooks to push every inbound message, delivery receipt, and chat status change into their own infrastructure in real time. This avoids polling /chats and enables low-latency follow-ups such as routing a high-intent message to a human agent within seconds.
Call POST /webhooks with target_url=https://example.com/heyy and events=[message_in,delivered,read], then verify the webhook is active via GET /webhooks.
AI Agent Conversational Operations
Through Jentic, an AI agent can search 'send a WhatsApp message' and receive Heyy's send schema, including the channelId path parameter. Jentic's vault holds the JWT, so the agent can drive multi-channel conversations — send, monitor delivery, trigger follow-up automations — without seeing the credential.
Search Jentic for 'send a whatsapp message', load the schema for POST /{channelId}/whatsapp_messages/send, and execute with channelId=WA-001 and contact phone.
37 endpoints — the heyy api drives an omnichannel messaging platform that unifies whatsapp, web chat, and other conversational channels.
METHOD
PATH
DESCRIPTION
/contacts
Create a contact
/{channelId}/whatsapp_messages/send
Send a WhatsApp message on a channel
/{channelId}/broadcasts
Create a broadcast on a channel
/{channelId}/broadcasts/{broadcastId}/recipients
Add recipients to a broadcast
/{channelId}/broadcasts/{broadcastId}/start
Start a broadcast
/webhooks
Create a webhook subscription for inbound events
/automations/{automationId}/trigger
Trigger a configured automation
/contacts
Create a contact
/{channelId}/whatsapp_messages/send
Send a WhatsApp message on a channel
/{channelId}/broadcasts
Create a broadcast on a channel
/{channelId}/broadcasts/{broadcastId}/recipients
Add recipients to a broadcast
/{channelId}/broadcasts/{broadcastId}/start
Start a broadcast
Three things that make agents converge on Jentic-routed access.
Credential isolation
Heyy Bearer JWTs are stored encrypted in the Jentic vault. Agents call Heyy via Jentic and the Authorization header is injected per call, so the raw JWT never enters the agent's context.
Intent-based discovery
Agents search by intent (e.g., 'send a whatsapp message' or 'create a broadcast') and Jentic returns the matching Heyy operation with its input schema, including the channelId path parameter.
Time to first call
Direct Heyy integration: 1-2 days for JWT handling, channel routing, and the create-add-start broadcast pattern. Through Jentic: under 1 hour — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
Specific to using Heyy API through Jentic.
What authentication does the Heyy API use?
Heyy uses Bearer JWT authentication. Generate the token from the Heyy console and pass it in the Authorization: Bearer <token> header. Through Jentic, the JWT is stored in the encrypted vault and injected at execution time.
Can I send a WhatsApp message via the Heyy API?
Yes. POST /{channelId}/whatsapp_messages/send accepts the contact phone, message body, and optional template references for the named WhatsApp channel. Replace {channelId} with the connected channel id you can read from GET /channels.
How do I run a broadcast campaign through Jentic?
Run pip install jentic, search for 'create a whatsapp broadcast', and chain three calls: POST /{channelId}/broadcasts to create, POST /{channelId}/broadcasts/{broadcastId}/recipients to attach contacts, then POST /{channelId}/broadcasts/{broadcastId}/start to begin delivery. Jentic resolves the JWT and channelId per call.
What are the rate limits for the Heyy API?
Rate limits are set per Heyy plan and channel — WhatsApp itself imposes per-template and per-second messaging limits enforced by Meta. The API returns HTTP 429 when exceeded; back off and pace broadcasts using the recipients endpoint to stay under the channel quota.
How do I get notified when a contact replies?
Configure a webhook via POST /webhooks with target_url and an events list including message_in. Heyy will push inbound message events to that URL, removing the need to poll /chats.
Can I trigger an automation against a specific contact?
Yes. POST /automations/{automationId}/trigger fires a configured automation flow for a contact, useful for ad-hoc onboarding kicks or escalation paths from another system.
/webhooks
Create a webhook subscription for inbound events
/automations/{automationId}/trigger
Trigger a configured automation