Buddy

Tell Buddy what happened. Let the follow-up write itself.

Hard-coding every "send this message when that happens" ties your marketing to your release cycle. Send Buddy an event like trial_started or order_paid, and your team decides what happens next, in Buddy.

POST /api/v1/events
Authorization: Bearer YOUR_KEY
Content-Type: application/json
Idempotency-Key: YOUR_UNIQUE_EVENT_ID
 
{ "name": "trial_started",
"phone": "+49 151 2345 6789",
"properties": {
"plan": "growth",
"trial_days": 14 } }
 
202 Accepted · 1 automation matched
Automation · Trial onboarding
When: trial_started
Send: welcome
Day 3: tip
Event received
trial_started
Tag added
plan: growth
Welcome sent
Read in 4 minutes
Technology fromMeta
Built on the official WhatsApp Business Platform
Inside Events
Custom eventsPropertiesAutomation triggersTags from eventsSegmentsEvent historyBatchingEvent log

Your product knows the moment. Your messages should too.

Trials start, carts stall and payments fail inside your product. If every follow-up needs a code change, most never get built. Events hand those moments to Buddy, where your team can act on them without you.

Today

Every follow-up is a ticket.

  • Marketing asks for a new trigger, you add it to the backlog.
  • Message copy hard-coded in your codebase.
  • No way to test a new follow-up without a deploy.
  • Customer moments lost because nobody wired them up.
  • Each change means another release.
With Events

Send the event once. Your team does the rest.

  • You send events; marketing builds the journeys.
  • Copy lives in Buddy, editable any time.
  • New follow-ups switched on without a deploy.
  • Every meaningful moment available as a trigger.
  • Your codebase stays about your product.

Send, match, act.

Events are small JSON payloads. Buddy matches them to a subscriber and to any automation listening for them.

1

Send an event

Post the event name, who it's about and any properties, from your backend or a job queue.

{ "name": "order_paid",
"phone": "+1 415 555 0142",
"properties": { "total": 84 } }
2

Buddy matches it

The event lands on the subscriber's timeline, can set tags from its properties, and starts any automation that's listening.

order_paidTimeline
total > 50Tag: big-spender
AutomationThank-you
3

Your team acts

Marketing uses the event as a trigger or segment rule in Buddy, and changes the journey whenever they like.

When: order_paid
Send: thank-you
Wait 14 days
Send: ready for a refill?

Everything inside Events.

How your product's moments become WhatsApp journeys your team controls.

Any event you name, with the properties you choose.

trial_started, cart_abandoned, class_booked, payment_failed: name events after what happens in your product, and attach the details your messages need.

"

Events only start messages for people who opted in. The rest are kept on the timeline and never messaged.

Automation triggers

Any event can start an automation in Buddy, no code change needed.

Properties in messages

Use event properties like order total or plan name inside the message.

Tags from events

Set or remove tags based on an event or its properties.

Segments from events

Build audiences like "paid in the last 30 days" or "trial ends this week".

Subscriber timeline

Every event appears on the person's profile next to their messages.

Batching

Send many events in one request when you're importing history or catching up.

Safe retries

Send an event ID and duplicates are ignored, so retries are safe.

Event log

See every event Buddy received, when, and what it triggered.

From stores too

Connected stores send their own events, like order_paid from Shopify, into the same pipeline.

What events change for your team.

Marketing changes journeys without a deploy.

Once an event reaches Buddy, the follow-up is theirs to design, edit and test. You stop shipping copy changes.

Automation triggersNo-code journeysEvent log
Trial onboarding · edited today
When: trial_started
Send: welcome
Wait 3 days
If no login: nudge
A customer checking their banking app on a phone next to a laptop
{ "name": "payment_failed",
"properties": { "plan": "Growth" } }

Messages that know the details.

Event properties flow into templates, so the payment-failed message names the plan and the order message names the product.

Segments built from what people do.

Events become segment rules, so your team can reach everyone whose trial ends this week, or who paid twice, without asking you for a query.

Segment · Trial ends this week
Event trial_started 11 to 14 days ago
No event subscription_started
Matches now58

Events teams send first.

trial_started

Welcome, tips on day three, a nudge before it ends.

SaaS

cart_abandoned

One reminder an hour later with the cart link.

Commerce

payment_failed

A friendly heads-up with a link to update the card.

Subscriptions

class_booked

Confirmation now, reminder the day before.

Booking and education

milestone_reached

Celebrate a first sale, 100th order or course finished.

Platforms

Three things people ask about Events.

Will events message people who didn't opt in?

No. Events are stored on the timeline for everyone, but automations only message subscribers with an active opt-in.

What if I send the same event twice?

Include an event ID and Buddy ignores duplicates, so retries from your queue are safe.

Do I have to define events in advance?

No. Send any event name and it becomes available as a trigger and segment rule in Buddy.

Questions about Events.

Anything else, ask Sarah.She reads every message and writes back herself.
Ask a question
What does an event look like?

A name, who it's about (a phone number or your own user ID), and optional properties, sent as JSON to the events endpoint.

How fast does an automation react?

Within seconds of the event arriving, if the subscriber matches and has opted in.

Can I send historical events?

Yes. Batch them in one request to build up timelines and segments. Historical events don't trigger automations unless you ask them to.

Can store integrations send events too?

Yes. Connected stores send events like order_paid into the same pipeline, so your team can use them the same way.

How do I get access?

Join the waitlist and tell us what you're building. We'll set up your workspace with test and live keys and help with your first integration.

Hand the follow-up to the people who write it.

Join the waitlist and send your first event the day you get keys.

Two people reviewing work together at a laptop
Event
trial_started
Matched
Trial onboarding
Sent
Welcome
Replied
"Thanks!"