Skip to content
AptoAir
Automation & flow builder

Drag blocks. Draw a line. It runs forever.

A visual builder where a customer message, a webhook, an Instagram comment or a new order starts a journey — and message, condition, AI, notify and HTTP blocks decide what happens next. No code, and no waiting for a developer.
Visual builderNo codeRuns 24/7
Automation · Order support
Message received
keyword: order
AI agent
answers from your docs
Condition
is it resolved?
Send WhatsApp
thank-you note
Notify agent
hand to a human
Drag any block. No code anywhere.

The work you are doing by hand right now

Someone messages “price”, you send the price list. An order ships, you copy the tracking number over. A new enquiry arrives at midnight and sits until morning. Each is a small task; together they are somebody's whole day. A flow does them the same way every time, instantly, whether or not anyone is at their desk.

Entry points

Nine ways a journey can start

A flow begins with a trigger. Some are conversational — a keyword, a comment on your Instagram post, a message on your website widget. Others are systems talking to each other — a webhook from your own software, or an event from your connected store.

  • WhatsApp message matching keywords you choose, or catching everything
  • Instagram direct message, or a comment on one of your posts
  • Facebook Messenger message
  • Website chat message
  • A webhook from your own systems, with values pulled out of the payload
  • A new order, an abandoned cart or a new customer from your store
Automation · Order support
Message received
keyword: order
AI agent
answers from your docs
Condition
is it resolved?
Send WhatsApp
thank-you note
Notify agent
hand to a human
Drag any block. No code anywhere.
Matching

Keywords that are not brittle

Exact keywords work, but so do patterns that capture values out of a message, a catch-all for anything unmatched, and exclusions for words that should never trigger this flow. Because keyword triggers are scoped per channel, the same word can mean different things on WhatsApp and Instagram without clashing.

  • Exact keywords, or a wildcard that catches everything
  • Patterns that extract values from a message into variables
  • Exclusion words that stop a flow firing
  • The same keyword can be reused across different channels
Blocks

Send, decide, escalate or call your own API

Between the trigger and the end, you place blocks. Send a message on any channel. Branch on what the customer said, which channel they used, the time of day or a value from your own systems. Hand to the AI agent. Notify a teammate. Or call your own API and use its response in the next message.

  • Send WhatsApp — text, image, video, document, location, buttons or list menus
  • Send on Instagram, Messenger or website chat
  • Condition blocks that branch on message content, channel, date, time or any variable
  • AI agent block, with its own brief, model and knowledge
  • Notify a specific teammate, or round-robin across the team
  • HTTP request to your own systems, with the response usable downstream
A flow you could build in ten minutes

Message contains “price” → AI answers from your price list →

if the customer asks for a person → notify the sales team on WhatsApp →

otherwise → send the brochure PDF and tag the contact “interested”.

Personalisation

Variables everywhere

Any message can pull in the contact's name, phone, email, company or any custom field you have defined, plus values captured by the trigger or returned by an HTTP call. Type two braces and pick from the list — you do not need to remember the names.

  • Contact fields and your own custom fields
  • Values captured from the triggering message
  • Order number, tracking link and totals on store-triggered flows
  • Anything your own API returned earlier in the flow
Confidence

See what ran, and what it did

Every run is recorded step by step, with the outcome of each block. When something does not fire the way you expected, you can look at the actual execution rather than guessing — including the exact reason a message was not delivered.

  • Per-run history showing each block and its result
  • Honest failure reasons, including WhatsApp's 24-hour window
  • Turn a flow off without deleting it
  • Duplicate a flow to try a variation safely
Step by step

Building your first flow

Most teams start with an out-of-hours reply, then a welcome message, then order updates.

  1. 1

    Pick a trigger

    Start with “WhatsApp message” and either a keyword like “hi” or a catch-all so nothing is missed.

  2. 2

    Add a reply

    Send a short welcome that sets expectations — who you are and when a human is around.

  3. 3

    Add the AI

    Drop in the AI agent block, give it a brief and upload your FAQ, so most questions never reach your team.

  4. 4

    Add an escape hatch

    Branch on “talk to a person” and notify a teammate, so nobody gets stuck talking to a machine.

  5. 5

    Turn it on and test

    Message your own number. Watch the run history. Adjust and repeat — changes take effect immediately.

Questions

Frequently asked

No. Everything is drag, drop and fill in a form. The HTTP request block exists for teams that do have a developer and want to call their own systems, but nothing else requires it.
Keyword triggers are matched per channel, and a conversation already inside a flow is not hijacked by another one. Exclusion keywords let you keep overlapping flows apart deliberately.
Yes — the notify block messages a teammate, and a send block can address any number you specify. Those messages are filed into that recipient's own conversation, not the customer's.
Only with an approved template, because that is Meta's rule. If a free-form message cannot be sent, the run history records exactly that rather than failing silently.

Start answering customers properly

Connect your WhatsApp number and send your first automated reply today. 15 days free, no card needed.

No credit cardCancel anytimeYour data stays yours