System Events for WhatsApp Campaigns
Once your WhatsApp channel is integrated and active, Meiro automatically logs key system events associated with WhatsApp communication. These events provide valuable insights into message delivery status, user behavior, and subscription management. All events listed below can be found in Data Library > Events > Meiro WhatsApp.
Available WhatsApp System Events
WhatsApp Campaign Sent
The event WhatsApp Campaign Sent is triggered when a campaign message is successfully sent through the WhatsApp channel to the recipient’s phone number.
Event Type: wa_campaign_sent
Autoload: Enabled
Retention: Not set by default, but can be customized.
This event is useful for tracking outbound message activity, monitoring send performance, and initiating subsequent actions or workflows within Meiro.
Example Payload:
{
"activation_id": number, // required, ID of the activation (campaign execution)
"campaign": { // required object
"id": "uuid", // required string, unique campaign ID
"name": "string" // required string, campaign name
},
"event_time": "datetime", // required string, ISO 8601 timestamp when the message was sent
"message_id": "string", // required string, unique identifier of the message
"phone_number": "string", // required string, recipient's phone number in E.164 format
"sender": { // required object
"id": "string", // required string, WhatsApp Business Account ID
"name": "string" // required string, display name of the sender
},
"type": "wa_campaign_sent", // required string, fixed value for this event type
"wa_template_params": { // optional object
"body_params": [ "string" ], // optional array, parameters used in the message body
"button_params": [ [ "string" ] ], // optional array, nested parameters for buttons
"header_params": [ "string" ] // optional array, parameters for header, if used
}
}
Event example:
{
"activation_id": 0,
"campaign": {
"id": "d4af8c2b-f80b-47a2-920f-6daca191609d",
"name": "Milestone Celebration Message"
},
"event_time": "2025-08-13T15:22:39Z",
"message_id": "6e74de07-8b37-4bfb-9863-9e59b3d59ae5-0",
"phone_number": "+420792775888",
"sender": {
"id": "677802452089546",
"name": "test"
},
"type": "wa_campaign_sent",
"wa_template_params": {
"body_params": [
"{{mx_lifetime_amount_spent}}"
],
"button_params": [
{
"url": "de0997bc13b613709a58b8f70987a756"
}
],
"header_params": [
{
"text": "Tonya Griffin"
}
]
}
}
WhatsApp Campaign Seen
The event WhatsApp Campaign Seen is triggered when the recipient opens or views a WhatsApp message sent through a campaign. This helps measure actual visibility and user engagement beyond delivery.
Event Type: wa_campaign_seen
Autoload: Enabled
Retention: Not set by default, but can be customized.
Use this event to analyze message view rates and to define engagement-based audience segments.
Event Structure:
{
"activation_id": number, // required, ID of the activation (campaign execution)
"campaign": { // required object
"id": "uuid", // required string, unique campaign ID
"name": "string" // required string, campaign name
},
"event_time": "datetime", // required string, ISO 8601 timestamp when the message was seen
"message_id": "string", // required string, unique identifier of the message
"phone_number": "string", // required string, recipient's phone number in E.164 format
"sender": { // required object
"id": "string", // required string, WhatsApp Business Account ID
"name": "string" // required string, display name of the sender
},
"type": "wa_campaign_seen", // required string, fixed value for this event type
"wa_template_params": { // optional object
"body_params": [ "string" ], // optional array, parameters used in the message body
"button_params": [ { "url": "string" } ], // optional array, button parameters (e.g. URLs)
"header_params": [ { "text": "string" } ] // optional array, header parameters if used
}
}
Event Example:
{
"activation_id": 0,
"campaign": {
"id": "d4af8c2b-f80b-47a2-920f-6daca191609d",
"name": "Milestone Celebration Message"
},
"event_time": "2025-08-13T15:23:08Z",
"message_id": "6e74de07-8b37-4bfb-9863-9e59b3d59ae5-0",
"phone_number": "+420792775888",
"sender": {
"id": "677802452089546",
"name": "test"
},
"type": "wa_campaign_seen",
"wa_template_params": {
"body_params": [
"{{mx_lifetime_amount_spent}}"
],
"button_params": [
{
"url": "de0997bc13b613709a58b8f70987a756"
}
],
"header_params": [
{
"text": "Tonya Griffin"
}
]
}
}
Learn more: See Notes & Limitations on “Seen” Status Reporting to understand why some messages may not generate a wa_campaign_seen
event.
WhatsApp Campaign Delivered
The event WhatsApp Campaign Delivered is triggered when a message sent via the WhatsApp channel is successfully delivered to the recipient's phone number.
Event Type: wa_campaign_delivered
Autoload: Enabled
Retention: Not set by default, but can be customized.
This event is useful for tracking delivery performance, analyzing engagement, and triggering follow-up actions in Meiro.
Event structure:
{
"activation_id": number, // required, ID of the activation (campaign execution)
"campaign": { // required object
"id": "uuid", // required string, unique campaign ID
"name": "string" // required string, campaign name
},
"event_time": "datetime", // required string, ISO 8601 timestamp when the message was delivered
"message_id": "string", // required string, unique identifier of the message
"phone_number": "string", // required string, recipient's phone number in E.164 format
"sender": { // required object
"id": "string", // required string, WhatsApp Business Account ID
"name": "string" // required string, display name of the sender
},
"type": "wa_campaign_delivered", // required string, fixed value for this event type
"wa_template_params": { // optional object
"body_params": [ "string" ], // optional array, parameters used in the message body
"button_params": [ [ "string" ] ], // optional array, nested parameters for buttons
"header_params": [ "string" ] // optional array or null, parameters for header if used
}
}
Event example:
{
"activation_id": 1140,
"campaign": {
"id": "29048819-6ca1-4f7e-9bff-c12742909f68",
"name": "default test"
},
"event_time": "2025-07-24T07:05:05Z",
"message_id": "c6686bfa-3b49-4c32-b158-c224c9ebf9e7-0",
"phone_number": "+420792775888",
"sender": {
"id": "668858762973438",
"name": "MeiroQA"
},
"type": "wa_campaign_delivered",
"wa_template_params": {
"body_params": [
"{{customer_db_name | default: \"there\"}}"
],
"button_params": [
[
"{{customer_db_name | default: \"there\"}}"
]
],
"header_params": null
}
}
WhatsApp Campaign Undelivered
The event WhatsApp Campaign Undelivered is logged when a campaign message fails to reach the recipient via the WhatsApp channel. This can occur due to issues like invalid numbers, user opt-outs, or malformed templates.
Event Type: wa_campaign_undelivered
Autoload: Enabled
Retention: Not set by default, but can be customized.
Use this event to monitor delivery failures and troubleshoot issues such as formatting errors or compliance rejections from WhatsApp.
Event Structure:
{
"activation_id": number, // required, ID of the activation (campaign execution)
"campaign": { // required object
"id": "uuid", // required string, unique campaign ID
"name": "string" // required string, campaign name
},
"event_time": "datetime", // required string, ISO 8601 timestamp when the delivery failure occurred
"message_id": "string", // required string, unique identifier of the message
"phone_number": "string", // required string, recipient's phone number in E.164 format
"reason": "string", // required string, reason for the undelivered status (e.g., "[100] Invalid parameter")
"sender": { // required object
"id": "string", // required string, WhatsApp Business Account ID
"name": "string" // required string, display name of the sender
},
"type": "wa_campaign_undelivered", // required string, fixed value for this event type
"wa_template_params": { // optional object
"body_params": [ "string" ], // optional array, parameters used in the message body
"button_params": [ array|null ], // optional array, button parameters (e.g., URLs) or null if not used
"header_params": [ "string" ] // optional array, header parameters if used
}
}
Event Example:
{
"activation_id": 18,
"campaign": {
"id": "f1b8e7b3-4c78-4326-9e43-a9274e2ec9f3",
"name": "WA-63_2"
},
"event_time": "2025-07-24T12:25:31Z",
"message_id": "654d1363-322f-4763-9941-73005e471bed-0",
"phone_number": "+420792775888",
"reason": "[100] Invalid parameter",
"sender": {
"id": "668858762973438",
"name": "test"
},
"type": "wa_campaign_undelivered",
"wa_template_params": {
"body_params": [
"{{mx_geo_country}}",
"{{mw_undelivered_comp_last.campaign_name | default: \"default value\"}}"
],
"button_params": [
null,
[
"{{mx_geo_city}}"
]
],
"header_params": [
"{{bank_cs_survey_response.date}}"
]
}
}
WhatsApp Subscribed
The event WhatsApp Subscribed is triggered when a user opts in to receive messages via the WhatsApp channel. This typically happens through sources such as website modals, sign-up forms, or other touchpoints where users give explicit consent.
Event Type: wa_subscribed
Autoload: Enabled
Retention: Not set by default, but can be customized.
This event is critical for maintaining compliance with WhatsApp opt-in policies and tracking when users become eligible for communication via the channel.
Event Structure:
{
"event_time": "datetime", // required string, ISO 8601 timestamp when the user opted in
"phone_number": "string", // required string, recipient's phone number in E.164 format
"subscription_source": "string", // required string, source of the opt-in (e.g., "website modal", "form signup")
"type": "wa_subscribed" // required string, fixed value for this event type
}
Event Example:
{
"event_time": "2025-08-13T11:44:38.205Z",
"phone_number": "+420792775888",
"subscription_source": "website modal",
"type": "wa_subscribed"
}
WhatsApp Unsubscribed
The WhatsApp Unsubscribed event is triggered when a user opts out of receiving WhatsApp messages. This typically happens through user-initiated actions, such as replying with "unsubscribe" or clicking an opt-out button.
Event Type: wa_unsubscribed
Autoload: Enabled
Retention: Not set by default, but can be customized.
This event is essential for managing user preferences and respecting consent across your WhatsApp communications.
Event Structure:
{
"campaign": { // required object, campaign details
"id": "string", // required string, campaign ID (UUID)
"name": "string" // required string, campaign name
},
"event_time": "datetime", // required string, ISO 8601 timestamp when the unsubscribe occurred
"message_id": "string", // required string, unique message identifier
"phone_number": "string", // required string, recipient's phone number in E.164 format
"sender": { // required object, WhatsApp Business Account details
"id": "string", // required string, sender (WABA) ID
"name": "string" // required string, sender display name
},
"type": "wa_unsubscribed", // required string, fixed value for this event type
"unsubscribe_source": "string", // required string, how the user unsubscribed (e.g., "WA reply: unsubscribe", "link")
"wa_template_params": { // optional object, contains personalized parameters used in the template
"body_params": [ "string" ], // optional array of strings, parameters used in the message body
"button_params": [ array|null ], // optional array or null, button-related parameters
"header_params": [ "string" ] // optional array of strings, parameters used in the header
}
}
Event Example:
{
"campaign": {
"id": "d7144b2e-e213-4a61-ac00-799bd1dcec53",
"name": "Test campaign"
},
"event_time": "2025-07-24T13:02:46Z",
"message_id": "3caed9a5-c39a-4da8-88b0-1b0e3cf785bb-0",
"phone_number": "+420792775888",
"sender": {
"id": "668858762973438",
"name": "MeiroQA"
},
"type": "wa_unsubscribed",
"unsubscribe_source": "WA reply: unsubscribe",
"wa_template_params": {
"body_params": [
"wow {{customer_db_name}} hello"
],
"button_params": [
null
],
"header_params": [
"lads"
]
}
}
WhatsApp Subscription Imported
The event WhatsApp Subscription Imported is triggered when consent or block status for a phone number in the WhatsApp channel is updated based on imported data.
Event Type: wa_subscription_import
Retention: Not set by default, but can be customized.
This event is useful for bulk updating subscription statuses in Meiro, such as during initial data migration or regular synchronization with external systems.
Event structure:
{
"blocked": false, // optional boolean, true if the user has opted out of receiving WhatsApp messages
"consent": true, // optional boolean, true if the user has given consent to receive messages
"event_time": "datetime", // required string, ISO 8601 timestamp when the subscription status was updated
"phone_number": "string", // required string, phone number in E.164 format with '+' prefix
"type": "wa_subscription_import" // required string, fixed value for this event type
}
Event Example:
{
"blocked": false,
"consent": true,
"event_time": "2025-02-27T11:28:06Z",
"phone_number": "+48572575811",
"type": "wa_subscription_import"
}
WhatsApp Blocked
The wa_blocked event is triggered when a message is rejected due to an invalid or blocked number (e.g., [302] Invalid number). This typically means the recipient cannot receive WhatsApp messages, either because the number doesn't exist on WhatsApp or because it's blacklisted.
Event Type: wa_blocked
Retention: Not set by default, but can be customized.
Autoload: Enabled
Event structure:
{
"activation_id": 0, // required number, ID of the activation (campaign execution)
"campaign": { // required object
"id": "string", // required string, UUID of the campaign
"name": "string" // required string, name of the campaign
},
"event_time": "datetime", // required string, ISO 8601 timestamp when the block occurred
"message_id": "string", // required string, unique identifier of the attempted message
"phone_number": "string", // required string, phone number in E.164 format with '+' prefix
"reason": "string", // required string, reason for the block (e.g., "[302] Invalid number")
"sender": { // required object
"id": "string", // required string, WhatsApp Business Account ID
"name": "string" // required string, display name of the sender
},
"type": "wa_blocked" // required string, fixed value for this event type
}
Event example:
{
"activation_id": 28,
"campaign": {
"id": "55f6704d-4c29-4b36-8161-31c48e9d34e7",
"name": "Welcome Campaign"
},
"event_time": "2025-07-10T13:41:40Z",
"message_id": "88f6704d-4c29-4b36-8161-31c48e9d34e7",
"phone_number": "+4207927758744",
"reason": "[302] Invalid number",
"sender": {
"id": "668858762973438",
"name": "MeiroQA"
},
"type": "wa_blocked"
}
Where to Find These Events
To view and explore these events:
-
Go to Data Library > Events
-
Use filter Data Source = Meiro WhatsApp
-
Click Show Raw Payload to inspect event structure
Notes & Limitations on “Seen” Status Reporting
Sometimes, a message sent on WhatsApp may be read by the recipient but still not appear as “seen” in Meiro reports. This behavior is due to how WhatsApp sends status updates for message delivery and reads.
Common scenarios:
-
Delivered skipped → Seen directly
Suppose the recipient is already in the chat when your message arrives. In that case, WhatsApp may skip the “delivered” status entirely and mark the message as read immediately — without sending all intermediate updates. -
Multiple unread messages are opened at once
If the recipient has several unread messages and opens them all together, WhatsApp may send the “seen” update only for the last message in the sequence, skipping earlier ones.
Impact on reporting
Because of these behaviors, the “seen” count in campaign reports might be slightly lower than the actual number of recipients who viewed your message. The message was still read, but WhatsApp did not send the “seen” status update for every individual message.
No Comments