Account

Hold a tool for approval

account_add_approval_rule · Changes data · Markdown

Makes a tool wait for a person's approval: every call, or calls over a limit, approved by an email, a channel or a team's managers.

$0.001 a call

From your agent’s balance. A call that fails costs nothing.

An example

From now on, any credit note over 500 euros needs my OK first.

Your agent callsaccount_add_approval_rule$0.001 a call

The example business is Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff. The reply is the one the tool really gives.

With these arguments
{
  "tool": "invoices_create_credit_note",
  "argument": "amount",
  "over": 500,
  "approver_email": "henrik.voss@hansenvoss.example"
}
What comes back
{
  "rule": {
    "rule_id": 4101,
    "tool": "invoices_create_credit_note",
    "argument": "amount",
    "over": "500",
    "values": null,
    "approver": "henrik.voss@hansenvoss.example",
    "approver_team": null,
    "approvers": null,
    "two_people_over": null,
    "created_at": "2026-10-14T08:00:00+00:00"
  }
}

Use it when

Some actions should never happen without a person saying yes: big refunds, credit notes, deletions, mass emails.

What it does

Make a tool wait for a person: every call of it, those whose argument is over a number (like invoices_create_credit_note when amount is over 500), or those whose argument is one of some values (like connect_call when method is POST, PUT, PATCH or DELETE). A held call answers approval_required with an approval_id and asks the approver; when they approve, call again with the same arguments and the approval (header X-Conecto-Approval, or _meta.approvalId over MCP), once. The approver is an email, a saved channel, or a team (its managers, or everyone in it); each approver gets a link of their own, and the person whose call it is never approves it. With two_people_over, calls whose argument is over it need two people. Bills like Xero's bill approval: purchasing_create_bill with argument total holds bills over an amount, tax included; a rule on purchasing_pay_bill also holds batches with such a payment. Removing a rule is the owner's, on their account page, when the account has an owner email. $0.001.

What comes back

rule: its rule_id, tool, argument and threshold, approver (and approver_team), the amount over which two people approve, and when it was made. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
toolRequiredstring1 to 80 characters.
argumentstringAn argument of the tool (or total, for purchasing_create_bill). Up to 60 characters.
overnumberCalls with argument over this are held.
valuesarray of stringsCalls with argument equal to one of these (any case) are held. 1 to 20 items.
approver_emailstringUp to 254 characters.
approver_channelstringA saved notify channel. Up to 80 characters.
approver_teamstringA team (account_list_teams). Up to 80 characters.
approversstringWho in approver_team approves. One of: managers,everyone. Default: managers.
two_people_overnumberCalls whose argument is over this need two people; higher than over.

The call

Over MCP, call account_add_approval_rule on https://api.conecto.chat/mcp/account. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/account_add_approval_rule \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tool":"invoices_create_credit_note","argument":"amount","over":500,"approver_email":"henrik.voss@hansenvoss.example"}'

When it refuses

A refused call costs nothing and says what to do next.

CodeWhenWhat to do
not_found404No tool has that name, or no saved channel has that name.GET /v1/tools lists the tools; notify_list_channels lists the channels.
invalid_input400Not exactly one approver was named, argument came without over (or the other way round), the tool has no such argument, or two_people_over is not above over or came with a channel.Name one approver, give argument and over together, and two_people_over above over with an email or a team.
payment_required_for_outbound402The balance is still free credit, which cannot email people outside the business.Top up once (POST /v1/topups); after that email to outsiders works.
new_recipient_limit429The business has emailed as many new addresses today as it may.Send to these people tomorrow. Replies and people who wrote first are not limited.
sending_paused403Email from the business is paused after bounces, complaints or emails refused as cold outreach.Tell the owner; Conecto reviews the pause before sending resumes.
suppressed422An address bounced, complained or unsubscribed before.Remove the addresses the message lists and send again.
found_by_lookup422An address was found or checked with Conecto's lookups; a Conecto inbox never writes to it first.Write from the business's own mailbox (google_mail_send or m365_mail_send).
cold_email422The email looks like cold outreach, a pitch or a request to people who never wrote to the business, so it wasn't sent. The third within 7 days pauses the account's email.Email only people who wrote first or asked to hear from the business.
check_unavailable503The check an email to someone new goes through couldn't run just now.Try again in a minute.

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md