Skip to content

Connect messaging channels

Origamy sends messages through channels — Email, SMS, WhatsApp, Push, Slack, In-app, and Webhook. Each channel is powered by a provider you connect once per workspace: either with a single click (OAuth, where the provider supports it) or by pasting credentials from the provider’s console.

A few things are true for every provider on this page:

  • Credentials are encrypted at rest and pushed to your data plane within seconds of saving — no redeploy, no waiting.
  • Right after you connect, Origamy probes the provider with your real credentials and tells you immediately if something is wrong, instead of letting the first production send fail.
  • You can connect several providers per channel and change the default at any time under Channels.

To connect anything below, go to Channels in the dashboard, pick the channel, and choose Connect provider.

The fastest connection in the product — no Slack app to create, no token to copy.

  1. In Channels → Slack → Connect provider, choose Slack.

  2. Click Add to Slack. A Slack window opens asking you to pick your Slack workspace and approve the Origamy bot.

  3. Approve. The window closes, the dashboard shows Slack workspace authorized, and you’re done. Optionally set a Default channel (like #alerts) for messages that don’t specify one.

The bot can post to any public channel right away. For private channels, invite it first with /invite @Origamy.

Connect any one of these — Origamy renders the message; your provider delivers it.

Provider You’ll need Where to find it
SendGrid API key, default from address Settings → API Keys (needs Mail Send permission). The from address must be a verified sender or authenticated domain.
Cloudflare Email Account ID, API token, default from address Cloudflare dashboard → Account Home (ID) and My Profile → API Tokens.
Postmark Server token, message stream Servers → API Tokens; stream defaults to outbound.
Mailgun API key, sending domain, region (us/eu) Settings → API Keys. Region must match where your domain is hosted.

You’ll need your Account SID and Auth Token (both on the Twilio Console home page) and a default sender: either an SMS-capable Twilio number in E.164 format (+15551234567) or a Messaging Service SID (MG…) if you use one.

Two ways to send WhatsApp messages:

Same Account SID and Auth Token as SMS, plus your WhatsApp-enabled number in Twilio’s whatsapp:+15551234567 format. Quickest if you already use Twilio; Twilio’s WhatsApp sandbox also works for testing.

Connect one provider per kind of device — they work side by side, and each send goes to every device the person registered. See Push notifications for registering devices and customizing notifications.

Provider Delivers to You’ll need
Firebase (FCM) Android apps, and iOS apps that use Firebase Firebase project ID + a service-account JSON key (Project Settings → Service accounts → Generate new private key).
Apple (APNs) iOS apps An APNs Auth Key (.p8), its Key ID, your Team ID, the app bundle ID, and the environment (sandbox/production).
Web Push Chrome, Firefox, Safari, Edge A contact email. Leave the keys blank and Origamy generates a VAPID key pair; your site subscribes with its public key.
OneSignal Whatever your OneSignal app reaches App ID + REST API key (Settings → Keys & IDs). People are addressed by OneSignal external_id.

Point a channel at any HTTPS endpoint you run: set the URL, the method, and an optional signing secret Origamy uses to sign each delivery so your endpoint can verify it came from us.

Every send reads the recipient’s address from their profile:

Channel Read from
Email The email trait. It must contain an @.
SMS, WhatsApp The phone number traits set under Settings → Phone numbers (below).
Slack (to a person) The slack_user_id trait.

If a profile has no address for the channel, that person is skipped and the send log records no <channel> address on profile. If the profile holds an address that can’t be used, the send log records invalid <channel> address on profile. Nothing reaches the provider in either case. Audience counts and dry runs skip the same people, so the count you see before sending matches what goes out.

Settings → Phone numbers controls how texts and WhatsApp messages find each person’s number:

  • Phone number traits. Only the traits listed here are read, in order, and the first one holding a valid number is used. The default is phone. A trait like work_phone is never texted unless you add it. The panel suggests traits in your data that look like phone numbers.
  • Country traits. A number written without its country code (0803 123 4567) is read in the person’s own country. Origamy takes the country from the first of these traits that holds one, written as an ISO code (NG or NGA), a calling code (234), a locale (en-NG) or a country name in English (Nigeria). The defaults are country, country_code and address.country.
  • Fallback country. Used only for a number with no country code when the person’s own country is unknown. It is None by default. If you serve several countries, leave it on None. Those numbers are then reported as invalid instead of being read in the wrong country.

New data arriving in these traits is stored in international (E.164) format, such as +2348031234567, however it was typed. A number that can’t be read is kept exactly as it came, and sends skip it. To convert numbers you already have, use Numbers already stored → Check stored numbers. It counts what would change. Fix then rewrites those profiles. It never touches numbers it can’t read.

Opt-outs match either way: a STOP reply opts out the person whether their profile holds the number in E.164 or as it was typed.

  • The channel shows Connected with the provider name; sends from broadcasts, journeys, and the API route through it immediately.
  • Each channel has one default provider; connect more and switch defaults under Channels without touching your messages.
  • Rotate credentials any time by editing the provider — the update reaches the data plane in seconds.