Iterable Cross-Channel Marketing: Email, SMS, and Push Working Together
Email alone is no longer enough to reliably reach and engage a modern consumer audience. Inbox competition is intense, mobile app engagement has fragmented attention across channels, and customer expectations for coherent, timely communication have increased dramatically.
Iterable was built for this environment. It is a channel-agnostic messaging platform designed to orchestrate coordinated journeys across email, SMS, push notifications, in-app messages, and more — from a single workflow canvas. For high-growth brands with active mobile app users and multi-channel audiences, this architecture creates real competitive advantage.
This guide covers how to build effective cross-channel journeys in Iterable, how to manage channel preferences and frequency, and how to measure what’s actually working.
Iterable’s Channel-Agnostic Architecture
Unlike email-first platforms that add SMS and push as bolt-on capabilities, Iterable was designed from the start as a multi-channel orchestration engine. This architectural difference has practical consequences:
- All channels are configured within the same Workflow Studio — there is no separate tool for SMS campaigns or push campaigns
- User profiles in Iterable contain subscription status and preferences across all channels simultaneously
- Event data that triggers a workflow can be responded to via whichever channel is most appropriate, based on the user’s context and preferences
- Analytics are unified — you can see the contribution of each channel within a single journey rather than analysing email, SMS, and push in separate dashboards
Iterable natively supports:
- Email (marketing and transactional)
- SMS and MMS
- Web push notifications
- Mobile push notifications (iOS and Android, via Iterable’s mobile SDK)
- In-app messages (shown within a mobile app)
- Direct mail (via integration with direct mail API services)
Building a Cross-Channel Workflow in Iterable
Iterable’s Workflow Studio is a drag-and-drop canvas where you assemble the logic of a cross-channel journey. Every workflow has an entry trigger (an event, a list entry, or an API call) and is composed of message nodes, filter nodes, delay nodes, and experiment nodes.
Workflow Structure for a Cross-Channel Onboarding Journey
A mobile app brand’s user onboarding journey demonstrates how the channels work together:
Entry trigger: Custom event user_signed_up fires via API when a user creates an account.
Step 1 — Email (immediate): Welcome email. Delivered to the email address captured at signup. Content: brand introduction, key app features, getting started guide.
Step 2 — Delay (2 hours): Allow the user time to explore the app organically before the next touch.
Step 3 — Filter node: Has the user completed the first key activation event in the app (e.g., profile_created or first_search)? If yes, skip to Step 6. If no, continue to Step 4.
Step 4 — Push notification: “Don’t forget to set up your profile — it only takes 2 minutes.” Short, actionable, with a deep link directly to the profile setup screen in the app.
Step 5 — Delay (24 hours): Allow time for the push to register and the user to act.
Step 6 — Filter node: Has the activation event now occurred? If yes, route to active user track. If no, continue.
Step 7 — In-app message: Shown the next time the user opens the app. A contextual prompt offering a walkthrough or quick start guide.
Step 8 — Delay (72 hours from signup).
Step 9 — Filter node: Still no activation event? Route to email. User activated? Route to engagement track.
Step 10 — Email: A value-focused email explaining what the app does for users like them. Case studies, user stories, key benefits.
This kind of coordinated, behaviour-responsive journey is only possible because all four channels (email, push, in-app, and the filter logic) live in the same workflow canvas in Iterable.
Coordinating Email, SMS, and Push for the Same Journey
The key challenge in cross-channel orchestration is not the technical configuration — Iterable makes that relatively straightforward — it is the strategic question of which channel to use at each touchpoint, and why.
A useful framework for channel selection:
Email is best for:
- Longer-form content (product education, newsletters, detailed announcements)
- Non-time-sensitive communication where the recipient can engage on their own schedule
- Onboarding sequences that walk through complex concepts
- Transactional confirmation (orders, account changes)
SMS is best for:
- High-urgency, time-sensitive messages (a sale ending in 2 hours, a flash deal, a delivery update)
- Short, action-oriented messages with a single CTA
- Users who don’t reliably open email (SMS open rates are significantly higher than email)
- Re-engagement attempts with lapsed email users
Push notifications are best for:
- Real-time alerts for app users (new message, new match, order status update)
- Re-engaging users who haven’t opened the app recently
- Contextual prompts tied to app activity (completing a setup step, returning to a saved item)
In-app messages are best for:
- Contextual prompts shown within an active app session
- Feature announcements or education for users who are already engaged
- Upsell or upgrade prompts at high-intent moments within the app
In Iterable, channel selection is configured within the workflow at each message node. You simply choose the channel, then configure the message content for that channel.
Channel Preference Management
Sending a message on a channel a user hasn’t consented to, or on a channel they prefer not to receive marketing on, is both a compliance risk and a relationship-damaging experience.
Iterable’s user profile stores subscription status for each channel. These subscription statuses are set programmatically (via API or SDK) when a user explicitly opts in or out, and they persist across all workflows and campaigns.
Building a Preference Centre
A preference centre in Iterable allows users to control which channels and message types they receive from you. This is implemented as a web page (hosted externally, with preference updates sent to Iterable via API) or as an in-app preference screen (in mobile apps).
When a user updates their preferences in the preference centre, Iterable’s API call updates their subscription status in real time. All active workflows and campaigns respect the updated subscription status — if a user has opted out of SMS, the next time a workflow reaches an SMS node, Iterable will skip that step for that user.
Frequency Capping Across Channels
Iterable supports message frequency capping at the channel level and the workflow level. This prevents a user from being over-messaged when they are simultaneously enrolled in multiple workflows or campaigns.
Configuration options include:
- Maximum messages per user per channel per day (e.g., no more than 1 SMS per user per 24 hours)
- Quiet hours (no push notifications between 10pm and 8am in the user’s timezone)
- Global send limits (a hard cap on total messages per user across all channels per week)
Frequency capping is one of the most important settings to get right early. A cross-channel programme without frequency caps can quickly become an overwhelming experience for users who are active across multiple touchpoints.
Analytics for Cross-Channel Performance
Iterable’s analytics provide per-channel and per-workflow performance data. Key metrics:
Workflow-level: Total entries, exits, and goal conversions. What percentage of users who entered the workflow achieved the defined goal (a purchase, an activation event, a subscription upgrade)?
Per-message-node: Send count, delivery rate, open rate (email and push), click rate, unsubscribes, and conversions. Compare performance across channels for equivalent touchpoints in the same workflow.
Channel comparison: For journeys that route users to different channels (e.g., SMS for high-urgency, email for follow-up), compare conversion rates and engagement by channel path.
A/B testing via experiment nodes: Iterable’s experiment node splits workflow traffic between two or more paths, enabling controlled tests of channel combinations, message content, or timing. Results are visible in the workflow analytics dashboard.
Iterable’s cross-channel architecture enables a quality of customer communication that single-channel or channel-bolted-on platforms simply cannot match. The key to making it work is not just the technical configuration — it is the strategic design of which channel delivers which message at which moment in the user journey.
At Excelohunt, we design and build Iterable cross-channel programmes for high-growth brands — from initial journey architecture through to ongoing optimisation. If you want to move beyond single-channel email and start orchestrating genuinely coordinated user journeys, we can help.
Related Excelohunt Services
Looking to implement these strategies with expert support?
- Iterable — learn how we implement this for clients
- Email Automations — learn how we implement this for clients Get a free audit →
Want Us to Implement This for Your Brand?
Get a free email audit and see exactly where you're losing revenue.
Get Your Free Audit