Triggers
Bahasha triggers use Zapier instant REST Hooks. A live subscription is created when a Zap is enabled and removed when that Zap is disabled.
Trigger testing uses static sample records. Historical WhatsApp events are not replayed. Enable the Zap, then produce a new event to test the live workflow.
New WhatsApp Message Received
Runs when the selected Bahasha WhatsApp number receives a new message. Select a specific business phone number when configuring the trigger.
Inbound media is persisted before Bahasha delivers the trigger, so
media.url points to a usable Bahasha-hosted file when the Zap starts.
Messages can include:
- Text and captions.
- Images, video, audio, and documents.
- Button, list, and flow responses.
- Reply-to message identifiers.
- The customer’s WhatsApp profile name when provided by Meta.
Message Status Updated
Runs when a message sent through the selected number changes status. Filter the trigger to one or more statuses, or leave the status filter empty to receive every transition.
Supported statuses are:
sentdeliveredreadfailed
Failed status events include available Meta failure codes and descriptions.
Custom Workflow Trigger
Runs when an organization-defined workflow trigger is called by an AI
assistant or manually from Bahasha. User-defined values are delivered under
params. Conversation metadata is delivered separately under context so it
cannot collide with trigger parameters:
{
"context": {
"chat_id": "507f1f77bcf86cd799439011",
"phone_number_id": "123456789"
},
"params": {
"customer_email": "[email protected]"
}
}For manual calls without a conversation, both context values are null.
Bahasha injects these identifiers programmatically; they are not fields the AI
assistant or customer supplies.
Trigger fields
| Field | Description |
|---|---|
id | Stable Bahasha event identifier |
event_type | message.received or message.status_updated |
occurred_at | ISO-8601 event timestamp |
business_phone_number_id | Meta ID for the selected Bahasha number |
business_phone_number | Display phone number |
customer_phone_number | Customer WhatsApp number |
customer_name | WhatsApp profile name, when available |
message_id | Meta wamid message identifier |
message_type | Text, image, video, audio, document, interactive, or another Meta type |
text | Extracted message text or caption |
reply_to_message_id | Message being replied to, when present |
interactive_reply | Button, list, or flow response details |
media | Media ID, Bahasha URL, MIME type, caption, and filename |
status | Current delivery status on a status event |
failure | Failure code, title, message, and details when delivery fails |
Delivery behavior
Bahasha publishes an event only after the message or status has been persisted.
Temporary delivery failures are retried four times with exponential backoff.
Delivery is at least once, and the stable event id allows Zapier to identify
retries.