Skip to content

Launch checklist

Work through this checklist before you publish your first journey through Iterable. Each item is a statement to confirm, with the place to confirm it. When every item is checked, your data, your Iterable connection, and your journey are ready to send. To track the checklist with your team, copy the lists into your launch ticket.

For Klaviyo, finish Create a Klaviyo sending profile until the profile shows Ready to send. For Customer.io, finish Create a Customer.io sending profile until the email profile shows Verified. The customer data, consent, and ownership checks below still apply.

  • Your API key passes Test your connection.
  • Your data source passes the Check your work section of its source guide: your test person appears on Users, and their events appear in Events > Custom events.
  • Your Iterable connection is set up. See Connect Iterable.
  • You have a test person: a user ID that isn’t a real customer, and an email address you can open.
  • The journey you’re launching exists as a draft. To create one, open Journeys in the left sidebar and select Add journey. In the New journey dialog, choose a starting point under Start from, such as Blank journey, and select Create journey. These docs don’t cover journey building step by step. Ask your JustAI team to help your marketing team build and proof the first journey.

Owners: Engineering Data

  • You know your organization slug and the environment you’re launching in. The account menu at the bottom of the left sidebar shows <Organization> / <Environment> under your name.
  • An API key with status active exists for that environment in Settings > API keys. The key is stored only on your servers or in your data tool.
  • Your test person’s profile has the attributes you expect. Search for the user ID on Users and open the profile, or read it with the Profiles API.
  • Every person you plan to email has an email trait, and it’s the address your Iterable project knows them by.
  • Identify and Track send the same userId for each person, as a string with no extra spaces.
  • Each event your journey uses appears in Events > Custom events with the exact name, including case. On the event’s page, Recent events shows your test user ID.
  • Events that start or move journeys carry a non-empty userId and stay under 128 KB.
  • Your source sends only identify calls to the Identify API and only track calls to the Track API, one JSON object per request.
  • Your source retries 429 responses, 5xx responses, and timeouts with backoff, and it sends the same body and messageId on each retry.
  • If you use Amazon S3 file import, your JustAI team confirmed the initial load. A test person on Users matches your source row, and the delivery’s row count matches your source query.

See Send customer events for the event checks and Errors and retries for the retry rules.

Owners: Marketing

  • Your Iterable project is an email-based or hybrid project in Iterable’s US data center.
  • The connection is in the environment you’re launching in. No other JustAI connection, in any environment, uses the same Iterable project. Check Settings > Integrations in each environment.
  • The connection’s API key step reads “Key saved”. The key is a server-side key with full read and write access.
  • The Content data feed step reads Data feed #<id>. In Iterable, the Authorization token field of JustAI content feed holds the most recent feed token you generated in JustAI.
  • The System webhook step reads Webhook #<id> and doesn’t say “needs the JustAI secret key” or “is disabled in Iterable”.
  • In Iterable, the system webhook reports these events for each channel you send:
    • Email: Triggered send, Send skip, Bounce, Open, Click, and Unsubscribe
    • SMS: Send, Send skip, Bounce, and Click
    • Push: Send, Send skip, Bounce, and Open
    • Web push: Send, if you send web push
  • Only JustAI uses the system webhook, and its Authentication setting in Iterable is None.

See Add your Iterable project, Set up the content data feed, and Events to enable.

Owners: Marketing

  • Each sending profile your journey uses, for every channel, shows Verified in the connection’s Sending profiles table.
  • In Iterable, Ignore Frequency Cap is on under Delivery settings for each JustAI · <profile name> campaign.
  • In Iterable, each JustAI · <profile name> template, including the copy inside the campaign, keeps these settings:
    • JustAI content feed is attached, and data feed caching is off.
    • The subject and body still read from the feed. In an email template, the subject reads [[{ justai.subject }]], and the HTML body contains [[{ justai.body }]]. In an SMS or push template, the message reads [[{ justai.body }]].
    • Email templates keep the unsubscribe link.
    • The sender and message type match the sending profile.
  • The profile’s From email, sender name, reply-to address, and message type are the ones this journey should send from. The profile page shows the Name and From email. To check the rest, open the Template link under Iterable details on the profile page. You can’t change a profile after you create it, so to change any of these, create a new sending profile.

See Keep the campaign and template intact and Turn on Ignore Frequency Cap.

Owners: Marketing

  • The journey sends through your Iterable connection and its verified sending profiles. To check, open the journey, select Settings in its header, and review the Delivery section of Journey settings.
  • The journey’s Starts when entry uses the event, attribute change, or segment you planned. For Event triggered, the event name matches the name your source sends.
  • The people in your audience have an email address on their profile. People without one can’t receive Iterable sends.
  • The journey’s Exit conditions say when people leave, for example after a time limit or when a conversion event arrives.
  • You chose the conversion event that measures the journey, and it appears in Events > Custom events. You set it as the journey’s key metric after you publish.
  • You sent an email proof and reviewed the rendered message, its personalization, and its footer in your inbox. To send one, select Send proofs in the journey’s header to send every message to one reviewer, or open an email step and select Send proof.
  • If the journey sends SMS or push, you sent a test text or test push from each of those sending profiles. Journey proofs for those channels don’t go through Iterable.

See Use the profile in a journey and What events do in JustAI.

Owners: Marketing Engineering

  • An organization admin saved your company’s Mailing address in Settings > Delivery. It appears in the footer of every email.
  • You decided at kickoff whether to send consent decisions to JustAI, and your JustAI team confirmed whether your organization requires email consent, and for which regions.
  • If you decided to send consent to JustAI, your engineering team confirms that Identify calls include the consent array. Each call includes traits.email for email decisions or traits.phone for SMS decisions, unless the profile already has that address. JustAI skips a decision when the profile has no address.
  • If you send consent to JustAI and run a preference center, its withdrawals reach JustAI as consent decisions with "status": "withdrawn".
  • If your JustAI team confirmed that your organization requires email consent, your engineering team confirms that consent decisions were sent for your launch audience. JustAI skips people without consent, and their runs show Not sent with “Marketing consent is missing.”
  • You reviewed the people who are suppressed in JustAI. On Users, select Add filter > Subscription > Suppressed to list them.
  • Each email sending profile has the Iterable message type that matches this journey’s subscription category, so Iterable applies the right subscription preferences.
  • You confirmed how unsubscribe decisions are synchronized between Iterable, JustAI, and your system of record. You tested with an address you control and verified the subscription state in Iterable and the suppression or consent state in JustAI. Iterable applies its subscription preferences to the email it sends.

See Identity and consent for the consent fields.

Owners: Marketing Engineering JustAI team

  • A launch owner on your marketing team approves the content and the audience, and publishes the journey.
  • A data owner watches your source for rejected requests: failed deliveries for the destination in Segment, the Live Events tab in RudderStack, sync alerts in Hightouch, or, for a backend that calls the APIs directly, alerts on the signals in Monitor your integration.
  • Your Iterable admin, the person with permission to manage API keys, data feeds, system webhooks, campaigns, and templates in your Iterable project, owns the Iterable API key, the content data feed, the system webhook, and JustAI’s campaigns and templates.
  • Each credential has an owner who knows how to rotate it. See Credentials.
  • If you use Amazon S3 file import, you agreed the delivery schedule, monitoring, and freshness target with your JustAI team. You follow the retention and recovery procedure confirmed for your import.
  • Your JustAI team knows your launch date and the journey you’re launching.
  1. Open the journey and select Publish.

    Only events that JustAI receives after you publish start the journey. After you publish a journey, wait about a minute before you send a test event. Events that arrive in the first moments after publishing can miss the journey.

  2. Start a run for your test person, for example by sending one test event with the journey’s event name and your test user ID. To trace the event itself, follow Confirm that an event reaches a journey. Then find the run.

    Open the journey from Journeys. A published journey opens on its Live view, with Recent runs beside it. Enter your test user ID in Email or user ID, press Enter, and select the run. The run shows each step your test person reached. An email that JustAI didn’t send shows Not sent with the reason. If no run appears, see An event was accepted, but the journey didn’t start.

  3. After the test email arrives in your inbox, select Analytics in the journey’s header.

    The email step shows Sent, which confirms that Iterable reports sends to JustAI through the system webhook. If the step shows no sends, open your Iterable connection and check its System webhook step. See Integrations shows Configured, but sends and opens don’t arrive. To make this check before customers receive the journey, publish it first with an entry that only your team matches, such as a segment of internal test people. Widen the entry and publish again after the check passes.

  4. On the journey’s analytics, open Measurement and choose your conversion event as the Key metric.

  5. After the first live sends to customers, watch the journey’s analytics.

    Each email step shows Sent, Delivered, Opened, and Clicked. Iterable doesn’t report deliveries, so JustAI counts a send as delivered unless Iterable reports a bounce.

  6. If a number looks wrong or a send doesn’t happen, find the symptom in Troubleshooting. If the fix there doesn’t work, contact your JustAI team.

Run this checklist again for each new journey or sending profile.