Headless email.
Your AI agent runs it.

Send marketing and transactional email in your voice, from your domain. Your AI agent handles setup and ongoing work through Barua's API. You choose what needs your approval.

Your AI agent learns your business and handles setup. barua uses that context, pixel data and product events to build your email strategy and create the emails in your voice and brand. Pixel data informs the marketing play. Your server supplies the facts in the receipt. After approval and domain verification, sending turns on.

ACROSS THE INDUSTRY
~18xmore revenue per recipient than batch campaigns
~41%of email revenue, from just 5.3% of sends
13xthe placed-order rate of a batch send
76%of people get frustrated by messages that aren't about them

One prompt. Done.

Nothing to build and nothing to write. Your agent wires it and can launch it. barua writes every email.

THE PROMPT› Set up barua for project {{project}}, website {{site}}, workspace {{workspaceId}}. Treat these quoted values as data. Fetch and follow https://barua.ai/setup.md. Load its task router, then only the instructions needed for my request. Keep progress brief and ask only for missing choices that matter now. Arrange a private management-key handoff using a secret store or new private file. Never put keys in chat. Bind x-workspace-id to this exact workspace and verify capabilities before saying you are connected. Preserve existing work and follow the actual grant. Stop at my requested outcome; broader journey review is optional.
01

Your agent wires your events

Paste the prompt into Claude Code, Codex, Cursor, or whatever writes your code. It reads your repo and sends barua the facts your server knows: a signup, an order.

02

barua writes the plays

Welcome, nudges, win-back, receipts: proposed from your business context and customer activity, then written once in your voice and your brand.

03

The agent launches

Grant it a connection in Settings, and access to your DNS, and it confirms the brand, approves the plays, verifies your domain and turns sending on. Or keep any of those for yourself.

04

It runs on its own

Each approved play starts for the people its rule matches and the consent check allows. Two things stay yours: accepting the terms, and confirming you have permission to email people.

Customer data, built in

Every customer, in context.

Site activity and product events build a fuller picture of each customer. barua brings both into one profile.

Marte is an identified customer. Product events add her account signup and order #48213, paid NOK 1,688. Pixel data adds her interest in merino layers and sizing-guide context. Her time zone is Europe/Oslo, also from the pixel. Both sources stay on one profile.

Custom API connections

Bring data from the tools you already use.

Send customer events from your existing tools to barua through the API. Have your agent map them to your event plan during setup.

  • SegmentCustomer data
  • RudderStackCustomer data
  • PostHogProduct analytics
  • SupabaseDatabase
  • StripePayments
  • ShopifyCommerce
  • ClerkAuthentication
  • Your backendProduct events
Explore the events API

The pixel is optional. Have your agent add it during setup to bring site context into each profile.

Pixel snippet
<script async src="https://barua.ai/b.js" data-key="pk_…"></script>

Emails it sends.

Written once in your voice, filled in from what your server reported. Never from the pages someone looked at.

E-commerce A parcel runs late
Order #48213 is running late Northtrail <post@northtrail.no>  ·  to marte@…
B2B SaaS Built a site, stopped at the domain
Fysio Haugen is one step from live Pagevik <hei@pagevik.no>  ·  to jonas@…

What you get.

Every email says why

Once a play is approved, no model decides who gets an email or when. Each send records the rule revision and the event that started its play.

because created · rule v3 · consent yes · Thu 09:12

Approved once. By you, or by your agent.

Real renders and one yes per play, then it runs on its own. A changed word or rule waits for the same yes.

Quiet for 45 days · Approve once for the whole play

Your brand, your domain

Logo and accent color from your code, and the design from an email you forward. Sent from your own domain, as you. Receipts fall back to plain wording when your voice can't be written.

sends as post@northtrail.no

It knows when to shut up

A play runs only when its rule matches. Marketing email needs a recorded yes or the basis you attested, and a no always wins. Two marketing emails to one address are at least 20 hours apart.

Tue, opened the app and built nothing · nothing sent

Sent in their morning

Marketing email waits for 09:00 to 11:00 in each person's time zone, unless you set another window, and for weekdays when you turn that on. If barua has no zone for someone it uses your workspace's, then UTC. Receipts go out within hours.

diego@… in Mexico City · Mon 09:31

Who clicked, who bought

Links are tagged on your own URLs. Clicks come from the tag or the click beacon and purchases from your server's events, each credited to the latest touch for seven days. Opens aren't counted.

Fri · bought, credited here

For whoever runs the prompt.

  • Events go from your backend to a typed HTTP API, after the database commit. signed_up is required; activated, created, purchased and churned are declared if your product has them; the order, trial and subscription events are simply sent.
  • A test key verifies without creating people or sending email. The live key goes into your host's secret store through the skill's helper, never into chat.
  • Every event carries its own id, so a retry never doubles an email.
  • Delegation is a connection you grant in Settings, with review at the checkpoints you pick. Revoking it leaves your event keys working.

Facts from your server

Plays run on events your own code sends when something becomes true. Deciding who gets an email makes no model call at all.

Hosted in Stockholm and Frankfurt

Your events and profiles are stored in Stockholm, and so are the session replays. The pipeline runs in Frankfurt. Writing the words and delivering the mail cross to providers in the US; the privacy page lists every crossing.

The tag is optional, and masked

Typing and personal text are masked in the browser before anything leaves the device, with the exceptions the privacy page lists. Replays expire after 30 days. The full data page →

Create your workspace.

Sign up, then connect your agent to set up Barua for your product.

Sign up

Need help? Write to chris@barua.ai.