📚 Documentation

Get sending in minutes.

Everything you need to build, launch and automate multichannel campaigns — from your first flow to the Campaigns API.

Quickstart

Candly sits on top of AlterEgo© AI Platform, so the only thing you need to start is a free workspace. You can build entirely in the visual editor, or drive everything programmatically through the Campaigns API.

  1. Create a free workspace and verify your sender for at least one channel.
  2. Import or sync your contacts to build an audience.
  3. Open the flow builder and drop in your first channel step.
  4. Hit Launch and watch results stream into the dashboard.
💡

Prefer the API? Grab a key from Settings → API keys and skip straight to the Campaigns API below.

Your first flow

A flow is a campaign journey: an entry point, one or more channel steps, and optional logic like waits and splits. Flows are reusable and run continuously or as a one-off broadcast.

Anatomy of a flow

  • Entry — who enters and when (a segment, an event, or a scheduled time).
  • Channel steps — WhatsApp, SMS, Email, RCS, Viber or Voice messages.
  • Wait — pause for a duration or until a condition is met.
  • Split — branch on behavior (opened, clicked, replied) or attributes.

Audiences

Audiences are built from your customer profiles — attributes (country, plan, language) and events (signed up, purchased, abandoned cart). Define a segment once and reuse it across every flow.

# A segment is just a filter over profiles + events segment "Lapsed shoppers": last_purchase_at before "90 days ago" and marketing_opt_in == true

Channels reference

Each channel shares the same flow primitives but exposes its own message options. Full guides live on the channel pages:

  • WhatsApp — templates, media, up to 3 buttons, two-way replies.
  • SMS — sender IDs, personalization, branded short links.
  • Email — drag-and-drop blocks, dynamic content.
  • RCS — carousels, suggested replies, verified sender.
  • Viber — text, image, video, file + button.
  • Voice — text-to-speech, IVR, voice OTP.

Fallbacks

Attach a fallback channel directly to any rich message. If delivery fails or the message goes unread within your window, Candly automatically re-sends over the fallback — no decision-splitting required.

step whatsapp: template: "spring_sale" fallback: after: "6h" channel: sms text: "Spring sale ends tonight — 20% off: {{short_link}}"

Campaigns API

Trigger flows, manage audiences and send one-off messages over HTTPS. Authenticate with a bearer token from your workspace settings.

POST https://api.candly.ink/v1/flows/spring-sale/trigger Authorization: App YOUR_API_KEY Content-Type: application/json { "recipient": { "phone": "+15551234567" }, "variables": { "first_name": "Maya", "discount": "20%" } }

A 202 Accepted means the recipient has entered the flow. Delivery and engagement events arrive via webhooks.

Webhooks

Subscribe to delivery and engagement events to keep your systems in sync. Candly posts a JSON payload to your endpoint for every state change.

{ "event": "message.delivered", "channel": "whatsapp", "flow": "spring-sale", "recipient": "+15551234567", "timestamp": "2026-03-21T10:00:00Z" }
🔒

Verify the X-Candly-Signature header on every webhook before trusting the payload.

Errors

The API uses conventional HTTP status codes. Errors return a JSON body with a machine-readable code and a human message.

  • 400 — malformed request (check required fields).
  • 401 — missing or invalid API key.
  • 409 — recipient already active in this flow.
  • 429 — rate limited; retry with backoff.

Still stuck? Talk to our team →

Ready to build?

Create a free workspace and run your first multichannel flow in minutes.