Send it — unless they said no.

Email, SMS and push from your app, with the part every team rebuilds already built: preferences, unsubscribes, templates that can't inject, and a log of every send. Your AI can write the template and send the message. It cannot send to someone who opted out.

$15 a month, and it isn't just this app — every Parsons product is on the same subscription. Cancel any time. 200 emails a day included, in-app messages uncapped — and allowances are metered, not enforced. We show you the count; we don't cut you off mid-month.

Works with ClaudeChatGPTCursorthe built-in chat
Real sends. The console, on a phone.
notifications.parsons.ai
The Notifications console: 200 messages sent this month, all delivered, the delivery log by channel, preferences and templates.
The console, for when you want to look. Delivery log, templates, preferences, channels — with chat built in. Every button on it is also a tool your AI can call.
How it works

A template, a send, a preference. Then it's your app's.

01

Write the message once.

A template per channel, with {{var}} placeholders. A variable is content — it renders as text, never as markup, no matter what's in it.

Make an order-ready template: email and SMS, with the customer's name and order number.
Templates 3
EMorder_ready · email{{name}}, {{orderId}}ready
SMorder_ready · sms160 charsready
PUorder_ready · pushready
A missing variable renders a gap. It never breaks the send.
02

Paste one link into your AI.

Your account comes with one private address. Paste it into Claude, ChatGPT or Cursor once, and Notifications's tools are there. No AI of your own? The console has chat built in.

Your connection MCP Hub
https://mcp-hub.parsons.ai/p/prof_••••••••/mcp
ClaudeChatGPTCursorany MCP client
Paste it once. Tools you haven't granted aren't there.
03

Send from your app, or from a sentence.

One call: the user, the template, the variables, the category. It picks the channels the user allows and sends.

Tell Ana her order 4172 is ready.
Tool calls your AI · just now
sendorder_ready · u_ana · ordersemail ✓ · sms ✓
sendorder_ready · u_ben · ordersemail ✓ · sms skipped
Ben said no to SMS. Skipped costs nothing.
04

Let them say no.

Preferences per channel and per category, an unsubscribe link in every email, STOP on every text. Honored at send time, not at the next deploy.

Show me who's opted out of marketing.
Preferences · u_ben prefs
EMEmail · everythingchannelon
EMEmail · marketingcategoryoff
SMSMS · everythingchanneloff
Two switches Ben flipped. Every send checks them.
What you get

The notification layer your app was going to build.

EMEmail · DKIM from your domain200 / day
SMSMS · 2¢ a segmentmetered
PUPush · web + mobileuncapped
01

Three channels, one call

Email, SMS and push behind the same send. The user's preferences decide which ones fire.

EMEmail · marketinguser opted out
EMEmail · orderson
SMSMS · everythingSTOP received
02

Preferences that are honored

Per channel, per category, per user. An unsubscribe is a row, and every send reads it.

Draft the order-ready email, friendly, under 60 words.
Hi {{name}} — order {{orderId}} is ready for pickup. We're open until 6. See you soon!
03

Templates your AI can write

Drafted in a sentence, stored per channel, rendered with variables that can't inject.

2hEMAIL · u_ana · order_readysent
3hEMAIL · u_ben · order_readysent
5hSMS · u_anadelivered
04

A delivery log

Every send, every skip, every bounce — by channel, by user, by template. What went, and why the ones that didn't didn't.

Sent · this month
200
200 delivered · 0 bounced · 4 skipped
05

Allowances, metered not enforced

200 emails a day included. We count; we don't cut you off. The number is here and on the console.

sendmarketing · u_benskipped: opted out
sendorders · u_bensent
06

A skip is free and final

A user who said no doesn't get the message, and the skip isn't metered. Compliance isn't a setting your AI can flip.

What it can't do

It sends your messages. It cannot send one they refused.

  • ×Send to someone who opted outPreferences are checked at send time. STOP and unsubscribe are honored on the next send, every time.
  • ×Let a variable become markupVariables render as text. A user named