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

# Set up email and SMS

> Connect a provider, pick who sends, turn on the events. Three screens, once.

OPENSUBS PLATFORM

15 min

The platform never sends from its own servers: your providers do, from accounts you own. Connect and route them under **Settings > Integrations**, then turn on events under **Settings > Notifications** (also part of [Configure your store](https://docs.opensubs.com/platform-v2/live-for-new-orders/configure-your-store.md)).

**1. Connect your providers**

* Open **Settings > Integrations**. Under **Notification providers**, three can connect: **Klaviyo** (flows for email and SMS), **SendGrid** (email), **Twilio** (SMS). Helpdesk and analytics are covered in [Set up Gorgias](https://docs.opensubs.com/platform-v2/run/set-up-gorgias.md) and [Set up analytics and monitoring](https://docs.opensubs.com/platform-v2/run/set-up-analytics-and-monitoring.md).
* Click **Connect** on each one you use; credentials, settings, and the test live in its modal (**Manage**, once connected). Fill SendGrid's **From email** and **From name** before testing; enter your own number on Twilio. Klaviyo's **Test connection** sends a test *event*, not a message.
* On SendGrid, also click **Set up via API** under its event webhook to record opens, clicks, bounces, and blocks on the subscriber's **Notifications** table (greyed out until SendGrid is connected).

> [!TIP]
>
> **Checkpoint:** every provider shows its green Connected badge, and each test arrived.

![Settings > Integrations: the three providers connected, with the Notification routing card below.](https://mintcdn.com/opensubs-docs/T6NpYT9MdOxqnOk5/images/platform-v2/run/16-integrations.png?fit=max\&auto=format\&n=T6NpYT9MdOxqnOk5\&q=85\&s=77fdcb2d8bda5b26afa1fea24928e3d0)

**2. Route the two channels**

* Under **Notification routing**, pick the **Email notifications** and **SMS notifications** routes, then click **Save** in the bar at the top.
* SendGrid and Twilio send only once connected *and* selected.
* Klaviyo always receives events once connected, and live flows send regardless of the routes; a live flow plus an active SendGrid route means two emails for one event, so hold each event in one place.

> [!TIP]
>
> **Checkpoint:** one route per channel, saved, no event in two senders.

![The Notification routing card: one email route, one SMS route.](https://mintcdn.com/opensubs-docs/T6NpYT9MdOxqnOk5/images/platform-v2/run/17-notification-routing.png?fit=max\&auto=format\&n=T6NpYT9MdOxqnOk5\&q=85\&s=f2d775a7f771d7bd00050adbfc215bcd)

**3. Wire Twilio's webhooks**

* Using Twilio? Pick a **Messaging Service** or **From number** in its modal; two URLs show under **Webhooks: paste into your Twilio Messaging Service**.
* Paste both into Twilio. **Incoming messages** makes the reply commands work (SKIP, PAUSE, RESUME, CANCEL, STOP/START); **Delivery status callback** is a backup, but paste it anyway.
* Edit the automatic replies on the **SMS replies** page of the Notifications hub.

> [!TIP]
>
> **Checkpoint:** both URLs pasted into the Messaging Service or number the modal saved.

![The Manage Twilio modal: credentials, the two webhook URLs to paste into Twilio, and the test send.](https://mintcdn.com/opensubs-docs/T6NpYT9MdOxqnOk5/images/platform-v2/run/22-twilio-modal.png?fit=max\&auto=format\&n=T6NpYT9MdOxqnOk5\&q=85\&s=018e6aa67e66fa643b800bff708fab4f)

**4. Turn on the events**

* Open **Settings > Notifications**. A new install starts with every lifecycle event off.
* The **Email** page lists each event with a switch and a template picker; the **SMS texts** page lists each text with a switch and an editable message.
* The switches appear only while SendGrid is connected and govern only SendGrid; a Klaviyo event sends when its flow is live in Klaviyo.
* First time on Klaviyo, click **Set up templates & flows**; flows arrive as drafts. Set the ones you rely on live in Klaviyo (**View created flows & templates** shows each status).
* **Portal login code** and **Login link** have no working off switch; on Klaviyo, though, a draft flow sends nothing, login codes included.

> [!TIP]
>
> **Checkpoint:** the events you need are on: switches here, live flows in Klaviyo.

> [!NOTE]
>
> **When something goes quiet later**, the fixes live in [When emails don't arrive](https://docs.opensubs.com/platform-v2/run/when-emails-dont-arrive.md) and [When texts don't arrive](https://docs.opensubs.com/platform-v2/run/when-texts-dont-arrive.md).

> [!NOTE]
>
> **The templates and flows update with one click.** When newer versions ship, click **Update to latest** on the provider's card (an **Update available** badge appears): SendGrid templates get a new active version (the old stays in version history) and Klaviyo flows keep their live-or-draft status. Customized content gets replaced: re-apply your edits after.

![A provider card with an update waiting: the Update available badge and the Update to latest button.](https://mintcdn.com/opensubs-docs/T6NpYT9MdOxqnOk5/images/platform-v2/run/39-update-to-latest.png?fit=max\&auto=format\&n=T6NpYT9MdOxqnOk5\&q=85\&s=a7ac59fc1eb367e4c1779ee4d95b48e4)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.