> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hightouch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Salesforce Marketing Cloud integration with AI Decisioning

> Connect Salesforce Marketing Cloud to AI Decisioning so agents can deliver personalized emails, SMS, push notifications, and in-app messages through your existing SFMC Triggered Sends and Journeys.

## Before you begin

* [Prepare data for AID](https://docs.hightouch.com/ai-decisioning/prepare-data.md)

## Overview

Hightouch's AI Decisioning (AID) helps you deliver real-time, personalized messages based on live customer context and predictions. By connecting AID with Salesforce Marketing Cloud (SFMC), you can:

* Automatically trigger messages from AID Agents via SFMC Triggered Sends or Journeys

* Personalize SFMC templates using dynamic variables from Hightouch—no custom code required

* Centralize targeting and decision logic in Hightouch, while using SFMC to handle message delivery

## 1. Set up SFMC as a destination

> [!NOTE]
>
> Already configured SFMC? Even if you've previously set SFMC up as a
> destination, you'll still need to apply the specific permissions and scopes
> outlined below.

### Why these permissions matter

To send messages through SFMC using AID, Hightouch needs access to certain channels, content, and user data. These permissions allow Hightouch to:

* Trigger messages via Triggered Send and Journey Builder

* Read and update subscriber data

* Access and personalize email, SMS, push, and in-app templates

* Read Content Builder assets to list and preview your email templates

### Connect SFMC and grant permissions

**In SFMC:**

1. [Create an installed package in SFMC](https://docs.hightouch.com/destinations/sfmc.md#create-installed-package-in-sfmc) until you reach **Set Server-to-Server Properties**.

2. Under **Channels**, enable the permissions for each message type you want Hightouch to use (read, write, send, publish, or post).

   ![Add component](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/installed-package-permissions.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=1bce8ec5e5deb6fa47f096eb033720b6)

3. Under **Assets**, select **Documents and Images: Read**.

4. Select **Save**.

**In Hightouch:**

5. Continue setting up the SFMC destination until you reach the [Custom Scopes](https://docs.hightouch.com/destinations/sfmc.md#custom-scopes) step.

6. Under **Advanced permissions > Custom Scopes**, paste in the following:

`email_read email_write email_send documents_and_images_read accounts_read data_extensions_read data_extensions_write journeys_read journeys_write journeys_aspr journeys_execute list_and_subscribers_write list_and_subscribers_read push_read push_write push_send`

7. Select **Test Connection** to verify that setup is complete.

## 2. Add channels in AI Decisioning

Once SFMC is set up as a destination, you can add **channels**. Channels define how Hightouch sends messages to SFMC—via Triggered Sends or Journeys.

### Set up a channel

1. Go to **AI Decisioning > Configuration > Channels**.

2. Select **Add channel**.

   ![Add channel button](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-add-channel.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=4227015404ba1f8c3f2f4440e7dbb4cc)

3. Choose a channel type: **Email**, **SMS**, **Push**, or **In-App**.

4. Select **Salesforce Marketing Cloud** as the destination.

5. Select a [sync type](#sync-type-comparison):
   * **Triggered send** – sends a 1:1 message in real time
   * **Journey entry** – sends as part of a journey workflow
   * **Data extension (advanced)** – batch sends managed within SFMC

6. For **Triggered send** channels, choose an **identifier** that matches the Subscriber Key field in SFMC (for example, email or user ID). Hightouch sets the identifier automatically for Journey and Data extension channels.

7. Select **Add channel**, then **Save changes**.

   ![New channel modal](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-add-channel-sfmc.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c1345b0509ec781d14e1e18f7aadf5dc)

### Sync type comparison

The **Sync Type** determines how Hightouch sends messages through SFMC:

| Channel | Triggered send | Journey | Data extension |
| - | :-: | :-: | :-: |
| Email | ✅ | ✅ | ✅ |
| SMS | ❌ | ✅ | ✅ |
| Push | ✅ | ✅ | ✅ |
| In-App | ❌ | ✅ | ✅ |

| Sync type | Best for | Setup notes |
| - | - | - |
| **Triggered send** | Real-time, event-based sends tied to a single user action | For **email** Triggered Sends, select a **send classification** from your SFMC account — for example, a Commercial classification for marketing (users can opt out) or a Transactional one for system notifications (users can't). SFMC maps these to its Marketing and Operational types. |
| **Journey entry** | Automated, multi-step campaigns (for example, onboarding, retargeting) | Select the **Synced user columns** (for example, email, name, product interest) you want to sync. These fields are available inside the journey's Data Extension for personalization or decision splits. |
| **Data extension (advanced)** | Batch sends, scheduled campaigns, and advanced setups where you need full control over delivery logic | A [Data Extension](https://help.salesforce.com/s/articleView?id=mktg.mc_es_data_extension_data_relationships_classic.htm\&type=5) is a table in SFMC that stores subscriber or message data. When you choose this sync type, Hightouch writes data directly to a Data Extension, and you manage the send logic (timing, audience filters, scheduling) within SFMC. This gives you the most flexibility but requires more setup on the SFMC side. Choose **Insert** to append new rows, or **Mirror** to keep the Data Extension in sync with your warehouse. Mirror mode may need to be enabled for your workspace — [contact Hightouch](#pylon-chat) if you don't see it. |

## 3. Add messages

After you add channels in AI Decisioning, you can add **messages** to your agents. Each message connects an agent's decision to a specific template in SFMC.

For full details on message configuration, variants, and tags, see [Messages](https://docs.hightouch.com/ai-decisioning/messages.md).

### Add a message from SFMC

1. Go to **AI Decisioning > Agents** and select your agent.
2. Open the **Messages** tab.
3. Select **Add messages**, then select **Add messages individually**.
4. Select your configured SFMC **channel and destination** tile (for example, **Email - Salesforce Marketing Cloud**).
5. Select the appropriate **template** or [event identifier](https://help.salesforce.com/s/articleView?id=mktg.mc_jb_create_journey_specific_entry_event.htm\&type=5) from SFMC.
6. Enter a **message name** and select **Add messages**.

   ![Add message from SFMC](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/add-message-sfmc.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c9dfa670d713b003af88cb01a005ba1e)

You can repeat this process for any channel and sync type. Continue the setup process in the channel-specific sections below:

* [Send emails via Triggered Send](#send-emails-via-triggered-send)
* [Send emails via Journey](#send-emails-via-journey)
* [Send emails via Data Extension](#send-emails-via-data-extension)
* [Send SMS via Journey](#send-sms-text-messages-via-journey)
* [Send SMS via Data Extension](#send-sms-text-messages-via-data-extension)
* [Send push (outbound) via Triggered Send](#send-push-outbound-notifications-via-triggered-send)
* [Send push (app inbox) via Triggered Send](#send-push-app-inbox-notifications-via-triggered-send)
* [Send push via Journey](#send-push-notifications-via-journey)
* [Send push via Data Extension](#send-push-notifications-via-data-extension)
* [Send in-app via Journey](#send-in-app-notifications-via-journey)
* [Send in-app via Data Extension](#send-in-app-notifications-via-data-extension)

### Test a message

1. Open the message and go to the **Content** tab.
2. Under **Optimized content**, confirm your variants are configured. If your message uses [dynamic variables](#use-variables-in-sfmc), set values for testing.
3. In the **Preview** panel, verify the rendered message looks correct.
4. Select **Send test** to send the message to a test user.

   ![Send test](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-send-test.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=5daa41fd330ef196755d49820fb7fc2f)

## 4. Configure SFMC Triggered Sends and Journeys for AID

Before adding a message in Hightouch, you need to configure the corresponding Triggered Send or Journey in SFMC.

### Send emails via Triggered Send

1. [Add a channel](#set-up-a-channel) with the sync type set to **Triggered send**.

   ![Email channel - Triggered Send](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-channel-triggered-send.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=1cf4800a4d64cd7d50b7538ab9fd32c0)

2. [Add a message](#add-a-message-from-sfmc) from your SFMC email template.

   ![Add message](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/add-message-sfmc.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c9dfa670d713b003af88cb01a005ba1e)

3. Close the window that opens and return to the **Messages** tab.

4. Select the link next to **Base content** to go to SFMC.

   ![Base content link](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-base-content-link.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=a827f9a2798b343046caf9023383ce3d)

5. This will prompt you to log in to SFMC and should open the **Email Studio > Interactions** page.

6. Select **Triggered Sends**.

   ![Interactions](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-email-studio.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=56311bf592fb5cd93efe33dd3df94956)

7. Select the send name that corresponds with your newly created message.

8. Select **Start/Restart**.

   ![Start](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-start.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c44c85095f84d53bd2185f0ea8bd4784)

9. Return to **Hightouch** and open your message.

10. In the **Content** tab, [set the variables](#use-variables-in-sfmc) and select **Send test**.

    ![Send test](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-send-test.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=5daa41fd330ef196755d49820fb7fc2f)

### Send emails via Journey

1. [Add a channel](#set-up-a-channel) with the sync type set to **Journey entry**.

   ![Email channel - Journey entry](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-channel-journey.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=3af38a3c5bb16d3a127ad92befe3b442)

2. [Add a message](#add-a-message-from-sfmc) from your SFMC email template.

   ![Add message](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/add-message-sfmc.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c9dfa670d713b003af88cb01a005ba1e)

3. In the **Content** tab, [set the variables](#use-variables-in-sfmc) and select **Send test**.

   ![Send test](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-send-test.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=5daa41fd330ef196755d49820fb7fc2f)

### Send emails via Data Extension

1. [Add a channel](#set-up-a-channel) with the sync type set to **Data extension**.

   ![Email channel - Data Extension](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-channel-data-extension.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=5becc3abfcb789c143b4234220a62a01)

2. Choose **Insert** (append new rows) or **Mirror** (keep in sync with your warehouse).

3. [Add a message](#add-a-message-from-sfmc) from your SFMC email template.

   ![Add message](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/add-message-sfmc.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c9dfa670d713b003af88cb01a005ba1e)

4. In SFMC, configure your send logic (automation, query activity, or triggered automation) to read from the Data Extension that Hightouch populates.

### Send SMS text messages via Journey

1. [Add a channel](#set-up-a-channel) with the sync type set to **Journey entry**.

   ![SMS channel - Journey entry](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-channel-sms-journey.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=6fe9c873afc94f529e1471d017ac80a5)

2. [Add a message](#add-a-message-from-sfmc) from your SFMC SMS template.

   ![Add message](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/add-message-sfmc.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c9dfa670d713b003af88cb01a005ba1e)

3. In the **Content** tab, [set the variables](#use-variables-in-sfmc) and select **Send test**.

   ![Send test](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-send-test.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=5daa41fd330ef196755d49820fb7fc2f)

### Send SMS text messages via Data Extension

1. [Add a channel](#set-up-a-channel) with the sync type set to **Data extension**.

   ![SMS channel - Data Extension](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-channel-sms-data-extension.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=14fffee1ae9cf0a88a8f4560bfc3af90)

2. Choose **Insert** or **Mirror** mode.

3. [Add a message](#add-a-message-from-sfmc) from your SFMC SMS template.

   ![Add message](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/add-message-sfmc.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c9dfa670d713b003af88cb01a005ba1e)

4. In SFMC, configure your send logic to read from the Data Extension that Hightouch populates.

### Send push (outbound) notifications via Triggered Send

#### Enable the push channel

1. [Add a channel](#set-up-a-channel) with the sync type set to **Triggered send**.

   ![Push channel - Triggered Send](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-channel-push-triggered-send.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=5d4507ab7ef97ed9a195217cc16f056c)

#### Configure your push template in SFMC

**In SFMC:**

2. Go to **Mobile Studio > MobilePush**.

3. Select **Create Message**.

   ![Mobile push](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-new-mobilepush-message.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=46661ac69b00f433a7e9dde184f6b962)

4. Select the **Outbound** template and select **Next**.

5. Name your message and select your app.

6. Select **API Triggered** as the Send Method.

7. Select **Alert** as the Push Method and select **Next**.

   ![API Triggered](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-define-message-properties.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=5277e15a7ddd80925810a0db93fc5b22)

> [!NOTE]
>
> You can only trigger Alert Only or Inbox Only messages, not Alert + Inbox.

8. Create the template for your push alert.

9. **Save** your message.

   ![Save alert](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-save-push-alert.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=857d4d533325bb606ce97add82cc87ff)

10. Select **Send** in the top right-hand corner.

11. An activation window should pop up with an API key. Copy this API key to make it easier to find the template in Hightouch in a later step.

    ![Activate](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-activate-push-alert.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=b9928ff60cdbd4ffc66008564abfa04d)

#### Add a message in Hightouch

**In Hightouch:**

12. [Add a message](#add-a-message-from-sfmc) from your SFMC push template.

    ![Add message](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/add-message-sfmc.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c9dfa670d713b003af88cb01a005ba1e)

#### Preview content

Hightouch automatically creates the variables for push notification title, subtitle, and body. The values you supply here are used directly in the push notification without any need for code snippets in the template. If these are left blank, Hightouch uses the default values in the template.

> [!WARNING]
>
> Hightouch uses the override capabilities in the API. If even one variable has
> a value supplied, the default values in the template for **all** variables get
> overridden. Make sure to supply at least the default value for all variables,
> even if you only want AID to vary one.

#### Send tests

13. To test push notifications, paste the contact key you use in your SFMC contacts.

    ![Send test](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-send-test.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=5daa41fd330ef196755d49820fb7fc2f)

14. Personalization strings can be supplied directly in the values for the variables without any need for code snippets in the template.

![Personalization strings](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-personalization-strings.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=85c867e526a22ca0180d48f9659f3dfe)

![Personalization strings demo](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-personalization-strings-demo.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=56d46497e827bfd3856dda36f0879171)

### Send push (app inbox) notifications via Triggered Send

#### Enable the push channel

1. [Add a channel](#set-up-a-channel) with the sync type set to **Triggered send**.

   ![Push channel - Triggered Send](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-channel-push-triggered-send.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=5d4507ab7ef97ed9a195217cc16f056c)

#### Configure your push template in SFMC

**In SFMC:**

2. Go to **Mobile Studio > MobilePush**.

3. Select **Create Message**.

   ![Mobile push](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-new-mobilepush-message.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=46661ac69b00f433a7e9dde184f6b962)

4. Select the **Inbox** template and select **Next**.

5. Name your message and select your app.

6. Select **API Triggered** as the Send Method.

7. Select **Alert** as the Push Method and select **Next**.

   ![Define message](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-define-message-properties.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=5277e15a7ddd80925810a0db93fc5b22)

> [!NOTE]
>
> You can only trigger Alert Only or Inbox Only messages, not Alert + Inbox.

8. Create the template for your push alert.

9. **Save** your message.

   ![Save alert](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-save-push-alert.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=857d4d533325bb606ce97add82cc87ff)

10. Select **Send** in the top right-hand corner.

11. An activation window should pop up with an API key. Copy this API key to make it easier to find the template in Hightouch in a later step.

    ![Activate](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-activate-push-alert.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=b9928ff60cdbd4ffc66008564abfa04d)

#### Add a message in Hightouch

**In Hightouch:**

12. [Add a message](#add-a-message-from-sfmc) from your SFMC push template.

    ![Add message](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/add-message-sfmc.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c9dfa670d713b003af88cb01a005ba1e)

### Send push notifications via Journey

1. [Add a channel](#set-up-a-channel) with the sync type set to **Journey entry**.

   ![Push channel - Journey entry](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-channel-push-journey.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=ee6c0660373bc0384c197a362038acec)

2. [Add a message](#add-a-message-from-sfmc) from your SFMC push template.

   ![Add message](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/add-message-sfmc.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c9dfa670d713b003af88cb01a005ba1e)

3. In the **Content** tab, [set the variables](#use-variables-in-sfmc) and select **Send test**.

   ![Send test](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-send-test.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=5daa41fd330ef196755d49820fb7fc2f)

### Send push notifications via Data Extension

1. [Add a channel](#set-up-a-channel) with the sync type set to **Data extension**.

   ![Push channel - Data Extension](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-channel-push-data-extension.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=6722988937bd0c63ef74f17221dd490c)

2. Choose **Insert** or **Mirror** mode.

3. [Add a message](#add-a-message-from-sfmc) from your SFMC push template.

   ![Add message](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/add-message-sfmc.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c9dfa670d713b003af88cb01a005ba1e)

4. In SFMC, configure your send logic to read from the Data Extension that Hightouch populates.

### Send in-app notifications via Journey

#### Enable the in-app channel and add a message

1. [Add a channel](#set-up-a-channel) with the sync type set to **Journey entry**.

   ![In-App channel - Journey entry](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-channel-app-journey.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=aa40249035f190ec7ed8b5c7005a5095)

2. [Add a message](#add-a-message-from-sfmc) from your SFMC in-app template.

   ![Add message](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/add-message-sfmc.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c9dfa670d713b003af88cb01a005ba1e)

#### Link your message to an SFMC Journey

In these next steps, you will link your newly created message to an associated Journey in SFMC.

**In Hightouch:**

3. Go to the **Content** tab within your message to add the variables you would like Hightouch to control.

**In SFMC:**

4. Go to **Journey Builder > Journey Builder**.

5. Select **Create New Journey**.

   ![Create journey](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-create-new-journey.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=ac9ec354946791d45c9143a08f9c4d14)

6. Select **Multi-Step Journey**.

7. Select **API Event** as the entry source. Drag it onto the Journey Builder.

   ![API Event](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-api-event-entry-source.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=474a3bb9437947cbf7430f8b9c82bc4e)

8. Select the grey **API Event** icon in the Journey Builder. This will open a list of API Events.

9. Select the message name you chose when adding the message in Hightouch.

> [!NOTE]
>
> Hightouch automatically creates the required Data Extension with the event so
> you don't have to set that up.

![Select](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-select-ht-action-name.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c40261e00a864bb0ad88ad9bddb717d2)

10. Select **Done**.

11. Next, drag **In-App Message** to the Journey Builder.

    ![Drag message](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-drag-message-journey-builder.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=7093e5728d4bb282ee129d8aa3402183)

12. Select the grey **In-App Message** icon in the Journey Builder.

13. **Select** (or create) your desired in-app message template.

14. In the **In-App Message Activity Summary**, edit the required settings for **Message Configuration** and **Display Trigger**. Optionally, configure **Display Options** and **Advanced Options** as desired. See [SFMC documentation](https://help.salesforce.com/s/articleView?id=mktg.mc_jb_configure_inapp_in_journey_builder.htm\&type=5) for more details.

    ![Activity summary](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-app-message-activity-summary.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=05158b1a40d0b0342283ccb48b2f6ba8)

15. Optional: If you would like Hightouch to control aspects of the In-App Message, follow the instructions for [using variables in SFMC templates](#use-variables-in-sfmc).

    * Paste the variable code snippets from Hightouch into SFMC:
      * Select a message in **Message Definition**
      * Select **Edit Selected Message**

    ![Message definition](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-message-definition.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=e7476e7be28ded848d82180c689ac525)

16. Paste the copied code snippets from Hightouch into the **Content** tab that opens.

    ![Code snippet](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-paste-code-snippet.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=846ca0c0cd6fa75611257fd6160d0353)

17. **Save** your changes.

18. Optional: To continuously test sends, click the **Gear icon > Journey Settings** and select re-entry any time.

19. **Activate** your journey.

    ![Activate](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-activate-journey.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=369f9e64a6cc930a32c65229ab09f5ec)

**In Hightouch:**

20. Return to **Hightouch** and refresh the **Content** tab within your message.
21. Preview your content to ensure everything is accurate.
22. You can now **Send test** to subscribers.

    ![Send test](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-send-test.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=5daa41fd330ef196755d49820fb7fc2f)

### Send in-app notifications via Data Extension

1. [Add a channel](#set-up-a-channel) with the sync type set to **Data extension**.

   ![In-App channel - Data Extension](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-channel-app-data-extension.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=06c7f2c671f0d5433023b0b76d7c1451)

2. Choose **Insert** or **Mirror** mode.

3. [Add a message](#add-a-message-from-sfmc) from your SFMC in-app template.

   ![Add message](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/add-message-sfmc.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=c9dfa670d713b003af88cb01a005ba1e)

4. In SFMC, configure your send logic to read from the Data Extension that Hightouch populates.

## Use variables in SFMC

Hightouch variables allow you to personalize SFMC messages using live warehouse data, any variable you've defined within the message such as subject line variations, or different content blocks.

### Access variables

1. Open a message in Hightouch and go to the **Content** tab.
2. Under **Optimized content**, expand a content type (for example, **subject** or **body**) and add your variants.
3. Select the `...` menu on a content type and select **Copy code snippet** to get the variable code.
4. Paste the code into your SFMC template. These snippets render with real values for each user when the message is sent.

![Copy code snippet](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/ai-decisioning/sfmc/aid-sfmc-copy-code.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=00946a6d344b4f919f6644056d6f04fc)

### Important notes

* **Triggered Sends**: Variables are fully supported.
* **Journeys**: Variables are available via Data Extension fields synced by Hightouch.

## Troubleshooting

| Issue | Likely cause | Resolution |
| - | - | - |
| Message fails to send | API errors or misconfigured destination | Check Hightouch logs for API errors. |
| Test user not receiving messages | Identifier mismatch | Verify the identifier matches a valid Subscriber Key in SFMC. |
| Triggered Send not firing | Send not started | Confirm the Triggered Send is in **Running** status in Email Studio. |
| Journey sends not triggering | Journey not activated or entry event misconfigured | Confirm the Journey is activated and the API entry event is configured. |
| Variables not rendering | Incorrect syntax or missing field mapping | Double-check variable syntax from **Copy code snippet** and field mapping. |
| `Could not get email templates`, or a `403` with `errorcode 20002` | The installed package doesn't grant `documents_and_images_read` | In SFMC, add **Assets > Documents and Images: Read** to the installed package. |

## Next steps

* [Messages](https://docs.hightouch.com/ai-decisioning/messages.md) to create and manage the message variants each agent sends through SFMC.
* [QA guide](https://docs.hightouch.com/ai-decisioning/qa-guide.md) to validate messages before you launch.
* [Agents](https://docs.hightouch.com/ai-decisioning/agents.md) to configure the agents that decide which messages to send.
* [Insights](https://docs.hightouch.com/ai-decisioning/insights.md) to measure how your agents and messages perform.
