Technical Guide: Examples of Active Campaign Triggers via the ActiveCampaign API September 30, 2026 18:28 Updated Summary Request Catalog by Template Type Basic Text Template (Without Any Variables) Text Template with Dynamic Variables Template with Media in the Header (Image, Video, or PDF Document) Template with Dynamic URL Button (CTA / Call-To-Action) Template with Carousel Trigger with Context Variables (contextVariables) and Contact Extras SummaryThis article presents practical examples of requests for sending active triggers via the ActiveCampaign API in Blip, detailing the exact structure required for each type of template.Before you begin Have access to and valid credentials for consuming the Blip/ActiveCampaign APIs. Have templates properly approved by Meta. Have the flow names, IDs, and/or parameters (flowId, stateId, masterState, and messageTemplate). Request Catalog by Template Type1. Basic Text Template (Without Any Variables) When to use: 100% static templates (e.g., generic notices, fixed greetings). What changes in the JSON: The messageParams block in the audience is empty or has no keys, and the messageParams array inside message must be sent completely empty ([]). { "id": "{{$guid}}", "to": "postmaster@activecampaign.msging.net", "method": "set", "uri": "/campaign/full", "type": "application/vnd.iris.activecampaign.full-campaign+json", "resource": { "campaign": { "name": "Disparo_Texto_Estatico", "campaignType": "Individual", "flowId": "{{flowId}}", "stateId": "welcome", "masterState": "IdDoBot@msging.net", "channelType": "WhatsApp" }, "audience": { "recipient": "55+DDD+Numero" }, "message": { "messageTemplate": "nomeDoTemplate", "messageTemplateLanguage": "pt_BR", "messageParams": [], "channelType": "WhatsApp" } } }2. Text Template with Dynamic Variables When to use: Templates with variables in the text body (e.g., Olá {{1}}, seu agendamento é dia {{2}}). What changes in the JSON: String numeric keys ("1", "2") are used in the audience's messageParams, along with the corresponding numbers in the message's messageParams list. { "id": "{{$guid}}", "to": "postmaster@activecampaign.msging.net", "method": "set", "uri": "/campaign/full", "type": "application/vnd.iris.activecampaign.full-campaign+json", "resource": { "campaign": { "name": "Disparo_Texto_Variaveis", "campaignType": "Individual", "flowId": "{{flowId}}", "stateId": "welcome", "masterState": "IdDobot@msging.net", "channelType": "WhatsApp" }, "audience": { "recipient": "55+DDD+Numero", "messageParams": { "1": "Valor1", "2": "Valor2" } }, "message": { "messageTemplate": "nomeDoTemplate", "messageTemplateLanguage": "pt_BR", "messageParams": ["1", "2"], "channelType": "WhatsApp" } } }3. Template with Media in the Header (Image, Video, or PDF Document) When to use: Templates registered with Meta with a media Header. What changes in the JSON: The public media URL is REQUIRED in position "1" of messageParams. The body text variables use the following positions ("2", "3", etc.). Tip for PDF Documents: There is no filename property in /campaign/full. WhatsApp determines the file name displayed on the phone screen from the end of the URL (e.g., .../Contrato_de_Adesao.pdf) or from the Content-Disposition header on the server.{ "id": "{{$guid}}", "to": "postmaster@activecampaign.msging.net", "method": "set", "uri": "/campaign/full", "type": "application/vnd.iris.activecampaign.full-campaign+json", "resource": { "campaign": { "name": "Disparo_Header_Midia", "campaignType": "Individual", "flowId": "38d2645b-89f3-42a4-a37a-d433771c8633", "stateId": "welcome", "masterState": "IdDoBot@msging.net", "channelType": "WhatsApp" }, "audience": { "recipient": "55+DDD+Numero", "messageParams": { "1": "https://meuservidor.com.br/arquivos/Contrato_de_Adesao.pdf", "2": "Paula" } }, "message": { "messageTemplate": "nomeDoTemplate", "messageTemplateLanguage": "pt_BR", "messageParams": ["1", "2"], "channelType": "WhatsApp" } } }4. Template with Dynamic URL Button (CTA / Call-To-Action) When to use: Templates with an "Access Website" button configured with a variable at the end of the link. What changes in the JSON: The parameter corresponding to the button must contain only the URL suffix/add-on, in plain text (without [https://www.dominio.com/](https://www.dominio.com/) and without %3F or %3D encoding). { "id": "{{$guid}}", "to": "postmaster@activecampaign.msging.net", "method": "set", "uri": "/campaign/full", "type": "application/vnd.iris.activecampaign.full-campaign+json", "resource": { "campaign": { "name": "Disparo_Botao_URL_Dinamica", "campaignType": "Individual", "flowId": "{{flowId}}", "stateId": "welcome", "masterState": "IdDoBot@msging.net", "channelType": "WhatsApp" }, "audience": { "recipient": "55+DDD+Numero", "messageParams": { "1": "Paula", "2": "watch?v=MNzAf9CQEo4" } }, "message": { "messageTemplate": "nomeDoTemplate", "messageTemplateLanguage": "pt_BR", "messageParams": ["1", "2"], "channelType": "WhatsApp" } } }5. Template with Carousel When to use: Templates with horizontally navigable cards on WhatsApp. What changes in the JSON: The dynamic variables for each card (images and button text) use identification keys in the parameters. { "id": "{{$guid}}", "to": "postmaster@activecampaign.msging.net", "method": "set", "uri": "/campaign/full", "type": "application/vnd.iris.activecampaign.full-campaign+json", "resource": { "campaign": { "name": "Disparo_Carrossel", "campaignType": "Individual", "flowId": "{{flowId}}", "stateId": "welcome", "masterState": "IdDoBot@msging.net", "channelType": "WhatsApp" }, "audience": { "recipient": "55+DDD+Numero", "messageParams": { "url1": "url1", "name1": "name1", "url2": "url2", "name2": "name2" } }, "message": { "messageTemplate": "nomeDoTemplate", "messageTemplateLanguage": "pt_BR", "messageParams": ["url1", "name1", "url2", "name2"], "channelType": "WhatsApp" } } } 6. Trigger with Context Variables (contextVariables) and Contact Extras When to use: When you need to send customer data that does not appear in the WhatsApp message text, but must be saved to the contact in Blip Builder for use in scripts or bot exit conditions. What changes in the JSON: The contextVariables block is added (accessible in Builder via {{context.nomeVar}}) and/or custom alphanumeric keys are added to messageParams, which are automatically saved in contact.extras. { "id": "{{$guid}}", "to": "postmaster@activecampaign.msging.net", "method": "set", "uri": "/campaign/full", "type": "application/vnd.iris.activecampaign.full-campaign+json", "resource": { "campaign": { "name": "Disparo_Com_Contexto_Invisivel", "campaignType": "Individual", "flowId": "{{flowId}}", "stateId": "welcome", "masterState": "IdDoBot@msging.net", "channelType": "WhatsApp" }, "audience": { "recipient": "55+DDD+Numero", "messageParams": { "1": "Paula", "extras_carteira": "VIP_GOLD" }, "contextVariables": { "cpf": "123456789", "protocolo_atendimento": "123456" } }, "message": { "messageTemplate": "nomeDoTemplate", "messageTemplateLanguage": "pt_BR", "messageParams": ["1"], "channelType": "WhatsApp" } } } Quick summary to help with decision-making: Template Type Position in audience.messageParams Position in message.messageParams Notes Text Without Variables Empty {} [] Do not pass additional parameters to avoid Error #132000. Text with Variables "1": "Valor" ["1"] The number of parameters must match the message template exactly. Media in Header "1": "[https://link.com/file.png](https://link.com/file.png)" ["1"] The URL is ALWAYS parameter "1". The PDF name comes from the URL. Dynamic URL Button "2": "sufixo?id=123" ["1", "2"] Send only the suffix in plain text without %3F / %3D. Context Variables Separate contextVariables object N/A (not included in the template) Use it to send data to Builder without exposing it in the user's message text. Need more help? Explore our content on Blip Academy or Blip Community, watch tutorials on our YouTube channel, or get your questions answered through our support channel 😃 Related articles How to Send Notifications via the ActiveCampaign API on WhatsApp and RCS How to configure the new WhatsApp message parameters in Blip How to customize the service template Sending Active Messages with BSUID Active Message Sending Failures: Where to Find Them and What They Mean