Documentation

No-code actions

The actions an agent can trigger without writing code — write to a database, send an email, collect payment, transfer a call.

An agent doesn't just respond: it can act. betool provides a set of ready-to-use actions that an agent node calls when relevant — without a single line of code.

Writing to a database

From a betool database (Applications → Databases), an agent can:

  • Create a row — record a lead, a request, an appointment.
  • Update a row — change a status, fill in a field.
  • Claim a row (claim_row) — an atomic "compare-and-set" operation: a field only moves from the expected value to the new value if it still holds the expected value. Only one caller wins the claim: the same task is processed only once, even if several executions are running in parallel (exactly-once). Available on betool no-code databases.

claim_row is the building block of a reliable task queue: a watcher detects new rows to process, claims them one by one, and no one processes the same row twice.

Bulk import

To seed a database, a 3-step assistant (file, columns, result) imports an xlsx / csv file, with column mapping. Handy for loading a history or a contact list.

Sending an email

The email.send tool lets an agent send an email (report, confirmation, follow-up) from one of the organization's connected email accounts. Combined with the Schedule channel, it is the basis of a recurring report.

With the Stripe integration, an agent can:

  • Generate a payment link with Stripe Checkout (stripe.create_payment_link).
  • Verify the payment (stripe.check_payment) before confirming an action.

Typical use: have an appointment prepaid before placing it on the calendar.

Transferring a call

On the Telephony channel, an agent can transfer the ongoing call to another number (phone_gateway.transfer_call tool, SIP REFER) — for example, routing a VIP caller to a direct line. The target number is expected in E.164 format; the transfer is issued after the agent's reply has finished.

Why it is safe

  • Sending an email is idempotent: in the event of a redeployment or a retry of the same turn, the message is not sent twice.
  • The Stripe payment link uses your organization's Stripe key: you are the one collecting, and the payment is verified (stripe.check_payment) before triggering the action.
  • claim_row makes it possible to guarantee that a task from a database queue is processed only once.