Building On The Canvas
Flow steps are the building blocks of the canvas. Combine them to create sophisticated customer experiences using all the contact, behavioral, and organizational data in your Inflection account. Branch contacts into different paths, merge them back together, and repeat as needed to deliver the right message at the right time to each recipient.
To edit a journey, it must be unpublished or paused. Published journeys are read-only.
Adding A Step
Open the Add step panel on the right to browse the flow-step palette. To place a step, drag it from the palette onto the canvas, or click it to drop it at the center of the canvas.
Connecting Steps
Drag from a step’s bottom handle to the next step’s top handle to connect them. Branching steps expose one output handle per path, so you can wire each branch to its own next step.
To merge paths, point any branch to a shared forward step — multiple branches can lead into the same step to bring contacts back together. Inflection prevents circular logic, so contacts always move forward through the journey.
Connections cannot cross a nested-journey boundary. To continue a journey after a nested journey, wire the container’s exit handle instead.
Email
Send Email
The Send email step sends an email to journey members. When you add this step to the canvas, select an email from your asset library.
Create and design emails separately in Inflection’s email builder. This step references pre-built email assets, allowing you to reuse templates across multiple journeys.
After selecting an email, configure the following options:
- Change the email asset: Swap to a different email from your library
- Edit the email configuration: Override the email’s subject line, reply-to address, from address, and sender name
- Communications limits: Choose to ignore or apply global sending limits
- Link parameters: Override default UTM or tracking parameters
Learn more about creating emails: Emails
Send Internal Email Alert
The Send internal email alert step sends email notifications to your team members. Use this step to notify colleagues when contacts reach specific points in a journey.
When you add this step to the canvas, select an email template and enter the recipient email address. Enter a static email address that remains the same for all contacts who reach this step.
Common use cases include:
- Alerting sales owners when contacts reach a high-intent stage
- Notifying customer success teams when users trigger specific behaviors
- Informing marketing teams when contacts complete key milestones
The Send internal email alert step uses email templates from your asset library, allowing you to maintain consistent formatting for internal notifications.
Use this step on low-volume branches or journeys with limited membership. Every journey member who reaches this step triggers an email alert to the configured recipients, which can result in alert fatigue if used on high-volume journeys.
Timing
Add Delay
The Add delay step holds contacts at a point in the journey before moving them forward. Configure the step to:
- Delay by a fixed interval (a number of minutes, hours, or days)
- Delay until a specific time
- Time of day
- Specific date and time
- Time in week (select one or multiple days in the week)
- First day of month
- Last day of month
Delay until a specific time offers an option to schedule according to the recipient’s time zone. Inflection infers recipient time zone based on their country and state values (in default Inflection contact fields).
Branching
Branching steps split one path into multiple paths based on specific criteria. Use branching to create personalized experiences that adapt to contact attributes, behaviors, or data values. Combined with merging and nested journeys, branching lets you create multiple paths, bring them back together, and listen for product- or marketing-triggered actions that route contacts to different parts of the journey — all on a single canvas.
Branch By Filter
The Branch by filter step splits contacts into two paths based on dynamic list criteria. Contacts who meet your filter conditions follow one path, while all others follow a separate path.
This step uses the same audience-building functionality as journey entry filters, enabling you to create precise branching logic based on:
- Person properties: Contact attributes like title, location, or custom fields
- Product events: User actions and behaviors in your product
- Marketing activity: Email engagement, form submissions, or campaign interactions
- Web activity: Page visits, content downloads, or site behavior
- List memberships: Static or dynamic list inclusion
- Salesforce campaign membership: Membership in specific Salesforce campaigns
- Segmentation: Pre-built audience segments
- Account org level grouped properties: Organization-level attributes and aggregated data
Inflection evaluates filters in real time as contacts reach the branch step, ensuring contacts always follow the path that matches their current state.
Select Branch by filter for two-way splits that require concise, detailed filter logic.
After selecting a field, click the data dictionary icon next to the operator dropdown to open Insights from data dictionary. The panel shows how the field is populated and what values it contains. For text fields, click values from the list to add them to your filter. Read more: Data Dictionary
Branch By Token
The Branch by token step splits contacts into multiple paths based on token values. Select any token from your Inflection account, and contacts will follow different branches depending on their token value.
When you add this step to the canvas, select a token from the token library. Inflection adjusts the available branch options based on the token’s output type. For example, a token that outputs a numerical score could be branched into ≤50, between 50 and 75, and >75.
Unlike Branch by filter, Branch by token supports unlimited branches. Each unique token value can follow its own path, enabling highly personalized journeys based on contact attributes, behavioral data, or calculated values.
Select Branch by token for unlimited branching based on the output of a token.
Learn more about creating tokens: Tokens
Branch By Value
The Branch by value step splits contacts into multiple paths based on contact or account field values. Select any field from the contact or account object, and contacts will follow different branches depending on their field value.
This step evaluates the direct value stored in contact or account fields. For example, branching by the Industry field on an account might create separate paths for Technology, Healthcare, Financial Services, and Retail.
Branch by value supports unlimited branches. Each unique field value can follow its own path, making it ideal for creating personalized experiences based on firmographic or demographic data.
Integrations
Run Outbound Webhook
The Run outbound webhook step calls third-party services as part of the journey. Use this step to trigger actions in external systems when contacts reach specific points in their journey.
Configure the webhook by providing the endpoint URL, request method, headers, and payload. Inflection sends the webhook request when each contact reaches the step, enabling real-time integrations with your tech stack.
Common use cases include notifying sales teams in Slack when target accounts reach high-intent stages, updating records, or triggering custom workflows in external systems.
Read Custom Forms to learn more about sending and receiving calls from other systems in Inflection.
Lists
Add To Static List And Remove From Static List
Use the Add to static list step to add contacts to a static list, and the Remove from static list step to remove contacts from a static list. When you add either step to the canvas, select the static list to update.
Data
Update Value
The Update value step writes data to a contact field. Choose a contact field to update, then set a static value or select a token to populate the field.
Salesforce
Add To Salesforce Campaign
The Add to Salesforce Campaign step adds contacts to a Salesforce campaign. Select the Salesforce campaign to add contacts to and select the campaign member status.
You can also configure the step to add contacts to a Salesforce campaign dynamically. If the Salesforce campaign ID is saved to the contact, select Get ID from a contact field. This is a scale-friendly way to process forms and other events that you might want to store in a Salesforce campaign.
Wait For Salesforce Sync
The Wait for Salesforce Sync step pauses a journey until the next Salesforce sync run completes. Use this step when downstream actions in your journey depend on data that has been written back to Salesforce.
When a contact reaches the Wait for Salesforce Sync step:
- The journey registers a callback with the Salesforce sync service, requesting notification when the next sync run completes.
- The contact is held at this step while the sync runs on its normal schedule.
- Once the Salesforce sync run finishes and all pending data has been written, the sync service notifies the journey.
- The journey marks the step as complete and moves the contact to the next step.
This step does not trigger an additional sync run. It waits for the next regularly scheduled sync to complete. This preserves your Salesforce API limits and respects existing sync intervals.
Use the Wait for Salesforce Sync step when your journey performs an action that changes contact data, and a later step depends on that data being reflected in Salesforce.
Example 1: Update value → Wait for Salesforce Sync → Run outbound webhook
You update a contact field in Inflection (for example, setting a lifecycle stage), and a downstream webhook calls an external system that reads from Salesforce. Without the wait step, the webhook fires before the updated value has synced.
- Update value — Set the contact’s lifecycle stage
- Wait for Salesforce Sync — Pause until data syncs to Salesforce
- Run outbound webhook — Call an external system that relies on Salesforce data
Example 2: Inclusion list → Wait for Salesforce Sync → Add to Salesforce Campaign
A contact becomes eligible for the Salesforce inclusion list through a value change, meaning they will be created as a lead or contact in Salesforce on the next sync. You want to add them to a Salesforce campaign, but the contact doesn’t exist in Salesforce yet.
- Update value — Make the contact eligible for the inclusion list
- Wait for Salesforce Sync — Pause until the contact is created in Salesforce
- Add to Salesforce Campaign — Add the newly created Salesforce record to a campaign
Structure
Nested Journey
The Nested journey step creates a container for multiple steps with unique exit criteria. Use nested journeys to listen for specific behaviors or milestones and route contacts to different parts of the journey when those conditions are met.
As contacts progress through steps inside a nested journey, Inflection evaluates them against the nested journey’s exit criteria. When a contact meets the exit criteria, they skip the remaining steps in the nested journey and continue on the defined exit path. This enables responsive journeys that adapt to contact behavior in real time, such as moving activated users out of an onboarding sequence or routing event registrants away from promotional emails.
Connections cannot cross a nested-journey boundary. To continue the journey after a nested journey, wire the container’s exit handle to the next step.