External Approval Channels
This guide walks through setting up approval notifications so your team can approve or reject payments from wherever they already work. This is the setup walkthrough. For the concepts (when to use approval workflows, trigger conditions, patterns), see Approval workflows. For the channel API reference (endpoints, request shapes), see Notification channels.Prerequisites
An active organization with at least one agent
An approval trigger: a configured workflow or a policy rule that requires approval (Securing
Agents)
Admin or Owner role in your organization
What You’ll Build
By the end of this guide, your approval flow will look like this:Step 1: Set Up an Approval Workflow
If you haven’t already, create an approval workflow that triggers on the conditions you care about. For multi-review, sequential, or specifically assigned approvals, configure a custom workflow. A policy rule that requires approval without a matching custom workflow still creates a one-review request for an organization Owner, Admin, or Manager in Alerts & Approvals.1
Create the workflow
Go to Policies in the dashboard. Create a new Approval Workflow with:
2
Verify it triggers
Request a payment above your threshold and confirm that Conto marks it as waiting for review.
Keep the returned payment request ID and check its customer-facing status before taking another
payment action.
Step 2: Add a Notification Channel
1
Go to Settings > Channels
Click Add Channel and choose your platform.
2
Configure the channel
Fill in the platform-specific fields.For Slack:
- Bot Token:
xoxb-...(from your Slack app) - Channel ID:
C0123456789
- Recipients:
cfo@company.com, finance@company.com
- Bot Token: from @BotFather
- Chat ID: your group chat ID
3
Select events
At minimum, enable
approval.requested. Consider also enabling:approval.escalatedfor time-sensitive visibilityapproval.expiredso nothing falls through the crackspayment.executedonWEBHOOKchannels if your verifier needs to mark invoices as paid
4
Test it
Click the test button. You should receive a sample notification on your platform.
Step 3: Test the Full Flow
1
Trigger a payment that needs approval
Use the SDK or dashboard to request a payment above your approval threshold.
2
Check your channel
Within a few seconds, you should receive a notification on your configured channel with payment details and Approve/Reject buttons.
3
Approve or reject
Complete the approval from the email confirmation page or the Conto dashboard. When the final
required approval is recorded, a Conto-managed wallet submits the payment automatically. The
approval review then links directly to the chain explorer receipt. If custody execution cannot
be completed, the approval remains recorded and the review shows that automatic execution needs
attention instead of presenting a receipt. External and smart-contract wallets continue through
their manual execution and confirmation flow.
4
Verify the audit log
Go to Audit Logs in the dashboard. You should see the approval decision with the channel recorded (e.g.,
SLACK, EMAIL).Multiple Channels
You can configure multiple channels simultaneously. When an approval request is created, notifications are sent to all active channels that subscribe to theapproval.requested event. The first approver to act from any channel resolves the request.
Notification channels deliver independently. If one channel is unavailable, other configured
channels can still deliver. Temporary delivery failures are retried.
Webhook Integration for Custom Systems
If you already have your own approval system, use the Webhook channel type to receive approval requests and hand the final decision off to an authenticated Conto approver./api/approvals/action only processes payment-approval decision tokens. GET ?token=... never
records a decision directly; it redirects to a hosted confirmation page first so mail scanners and
link previews cannot approve or reject a request by accident. POST accepts only APPROVE and
REJECT tokens from approval notifications. Store-order approval emails and auto-pay disable
links use their own hosted action flows.Troubleshooting
Notifications not arriving
Notifications not arriving
- Check that the channel is active (toggle is on) in Settings > Channels
- Review the delivery notice shown for the channel
- Verify your bot token or credentials are correct
- For Slack, confirm the bot is invited to the target channel
- For Telegram, confirm the webhook URL is set correctly
Token expired or already used
Token expired or already used
Action tokens are one-time use and expire with the approval request. If the approval request has already been resolved (by another approver or from the dashboard), the token is no longer valid.
Next Steps
Channel Reference
Full configuration reference for all channel types
Policy Testing
Test your approval workflows before going to production