Back to Customer.io in Excel
SheetXAI logo
Customer.io logo
Customer.io · Excel Guide

Trigger a Customer.io Broadcast From a Excel workbook

2026-05-14
5 min read

The Scenario

A marketing manager got sign-off this morning on a one-time re-engagement campaign for 600 lapsed users. Each recipient gets a unique discount code. The user IDs are in column A of an Excel workbook, the discount codes are in column B. Customer.io's broadcast is set up and ready — it just needs to be triggered with the audience list and each person's custom_message variable. The sales window closes in 48 hours.

The bad version:

  • Read the Customer.io documentation for the broadcast trigger API, figure out how to pass a custom audience and per-recipient Liquid variables.
  • Write a script that POSTs each user ID with their custom_message, handle pagination, test against a subset.
  • Run it on the full list, discover that 40 user IDs returned "not found" errors because they were deleted, re-run excluding those rows.

The 48-hour window doesn't have room for a debugging session. The discount codes expire when the window does.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Excel workbook. It reads the audience list and variable data, and through its Customer.io integration can fire the broadcast trigger with per-recipient personalization for every row — in one operation.

Fire my Customer.io re-engagement broadcast for the 600 user IDs in my Excel sheet, injecting each row's custom_message from column B as a Liquid variable in the email

What You Get

  • The broadcast is triggered for each user ID in column A with their unique custom_message from column B passed as a Liquid variable.
  • Column C gets written with "Triggered" for each successful row, or the error detail — "User Not Found," "Invalid ID," "Broadcast Inactive" — for rows that failed.
  • User IDs that don't exist in Customer.io are flagged rather than silently dropped, so you know exactly who was missed.
  • All 600 triggers fire in one operation with a result log you can use to confirm delivery.

What If the Data Is Not Quite Ready

Some user IDs in the workbook are email addresses, not numeric IDs — the broadcast requires IDs

Look up each email in column A of my Excel workbook against Customer.io to find the corresponding user ID, then trigger the re-engagement broadcast for each found user ID with the custom_message from column B as a Liquid variable. Write the resolved user ID to column C and the trigger status to column D.

I want to exclude users who have already made a purchase in the last 30 days — that flag is in column C

Trigger the Customer.io re-engagement broadcast only for rows in my Excel workbook where column C is not "Recent Purchase." Use user_id from column A and custom_message from column B as the personalization variable. Write trigger status to column D.

The audience spans two worksheets — "Segment A" with one message tier and "Segment B" with another

Trigger the Customer.io re-engagement broadcast for all user IDs in column A of the "Segment A" worksheet using custom_message from column B. Then trigger a different Customer.io broadcast for all user IDs in column A of the "Segment B" worksheet using custom_message from column B. Write status to column C on each worksheet.

Validate that discount codes are non-blank, trigger only valid rows, log errors for the rest, and write a summary count in one shot

For each row in my Excel workbook, check that the custom_message in column B is not blank. If it's valid, trigger the Customer.io re-engagement broadcast for the user_id in column A passing the message as the Liquid variable. If column B is blank, mark column C "Skipped — No Message." Write "Triggered" to column C for all successful rows and add a total count at the bottom of column D.

Doing the validation and the trigger in one prompt means the campaign fires clean — no empty personalization variables going out to real people.

Try It

Get the 7-day free trial of SheetXAI and open your audience workbook with user IDs and personalization data, then ask it to fire the Customer.io broadcast before the sales window closes. You can also look at sending transactional emails from a workbook or the full Customer.io overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more