Skip to main content

Salesforce Marketing Cloud - Journey Builder activity

It's easy to trigger Atomic Action Flows from within the Salesforce Marketing Cloud Journey Builder using our custom Start Atomic Action Flow activity.

The activity can be configured to target a specific user and include customization data by mapping Salesforce data to Atomic variables.

Note that you'll need an Atomic account to use the Atomic SFMC Journey Builder plugin. If you're not an existing Atomic customer, visit atomic.io to learn more or contact our sales team sales@atomic.io.

Installing the package

To use Salesforce Marketing Cloud with Atomic, you'll need to install the package in SFMC.

The first step is to provide some contact information and agree to Salesforce's terms and conditions in Salesforce AppExchange. Once that's complete, you'll be redirected back to this documentation page.

Next, follow these steps configure the package in Salesforce Marketing Cloud:

  1. In Setup > Platform Tools > Apps > Installed Packages, choose New.
  2. Make a name for the Atomic package and save.
  3. Copy the JWT Signing Secret somewhere safe - you’ll use this when configuring Connectors on Atomic cards back in the Workbench.
  4. Choose Add component then Journey Builder Activity
  5. Make a name for the component, for example Trigger Atomic
  6. Choose Messages from the category options and paste the following into the Endpoint URL input: https://sfmc.plugins.atomic.io/ then Save.
  7. Switch to the Access tab and either License 'All current and future users', or selected users, so these folks can see the new Atomic activity step in Journey Builder.

Congratulations - the package is now installed. Check that the setup was successful by opening Journey Builder and confirming you can see the Atomic custom action in the actions / Messages tray on the left side.

You're now ready to configure the integration.

Configuring the integration

Before configuring the integration, you'll need to contact Atomic support (support@atomic.io) so we can enable the integration within your Atomic organization. Once you've completed the configuration, you can start mapping and handling variables to customize your Action Cards.

Configuring the integration in the Atomic Workbench

In order for the Atomic platform to communicate securely with Salesforce, you'll need to set up the integration. This is a one-time setup required for each Marketing Cloud environment you wish to send cards from.

You'll need:

  • The package Signing Secret from the previous step
  • administrator access within the Atomic workbench
  1. Open the workbench and navigate to Configuration > Integrations > Salesforce
  2. Click on Add integration
  3. Enter an appropriate configuration name, for example 'Salesforce Production Instance'
  4. Paste in the Signing Secret
  5. Click Save

Connecting your card template and Journey

This section must be completed once for each card you wish to send from SFMC. In the Workbench, open the Card Template you wish to send from SFMC.

  1. Navigate to the Connector triggers section in the Triggers tab.
  2. Click on Add connector trigger.
  3. Select the Type Salesforce Marketing Cloud Journey Step
  4. Select the Configuration you created in the previous section.
  5. Give it a name and description.
  6. Finally, click Save - you're now ready to set up the mapping in SFMC

Configuring your SFMC Journey

This step tells SFMC Journey Builder when during your Journey you want to send an Atomic card, to whom, and which data to include in your card.

Create a new Multi-Step Journey or open an existing one, make sure you're viewing a Draft version.

  1. Navigate to the Messages dropdown in the left-hand Activities panel.

  2. Drag and drop the Start Atomic Action Flow activity into your Journey.

  3. Click on the Activity & log in using your atomic workbench credentials. Note: if logging in via SSO, you must close the activity once you've logged in, then re-open it before continuing with configuration.

  4. Select the org/environment which contains your Action Card.

  5. From the dropdown, select your Card Template / Action Flow. Note: if your it isn't visible in the dropdown, make sure you completed the section Connecting your Card Template.

  6. Add a mapping for the Target user id. See the Data Bindings section on what format to use.

  7. Add mappings for any variables. See the Data Bindings section for formats and the Variable and User id mappings section for how data will be handled in Atomic.

  8. Address any Journey validations.

    Note: you can safely ignore a recommendation titled 'Missing Message Activity', this is a bug in the SFMC Journey Builder.

  9. Save

You're now ready to Activate your Journey.

Variable and User id mappings

The type of your Atomic variable, for example String, Number, has an impact on what data can be sent from SFMC. SFMC sends all data as Strings and Atomic parses them into the desired type under the hood.

There are a couple of exceptions to be aware of.

  • Date variables must be sent in the ISO8601 format. SFMC Dates stored in Data Extensions for example, are not in this format so must be mapped to String variables. Atomic may add support for this to be done under the hood in future - please contact us if this is important for your use case.
  • List variables must be mapped to a JSON format, for example: ["foo", "bar"] or ["first item", "{{Contact.Attribute.my_extension.user_name}}"].

You must provide a mapping for variables marked as 'Required' in Atomic.

Data Bindings

SFMC uses Data Bindings to include Salesforce data in requests made to Atomic.

The format used in data bindings looks like the following: {{foo.bar.baz}}. Properties which contain spaces must be quoted, for example {{Contact.Attribute."My Data Extension"."My Field"}}. See the SFMC Data Bindings documentation for more information.

The Data Extension format is {{Contact.Attribute.<DataExtensionName>.<YourFieldName>}}. For example a Data Extension with the name my_extension and a column user_id would become {{Contact.Attribute.my_extension.user_id}}.

The API Request format is {{Event.<API-Event-UUID>}}.