A bot is a principal like a person or a coding agent. It has its own scoped access, shows up on the board as an assignee, and never needs your subscription token. You can register a bot, sign its webhook, assign it issues and have it answer approvals.
Connect
In the bot’s own app, add Overlane as a connector (remote MCP) and approve the Overlane sign-in screen. The bot then lists and calls the MCP tools. Overlane never asks for a ChatGPT, Grok or other vendor token.
Register a bot for assignment and approvals
A team registers a bot with a name, a platform (chatgpt-dots, grok-bot, slack, teams or generic) and a public HTTPS webhook URL. The signing secret is shown once, at registration and at rotation. Overlane signs every delivery to the webhook with it.
Routes live under /v1/tenants/{tenantId}/bots, including rotate-key and redeliver. A task is assigned to a bot with .../tasks/{taskId}/assign, and the bot’s own thread (or task:<taskId> by default) receives the question when an approval is needed.
Approvals
A bot that can only call tools uses the harness_approval tool: request an approval with a question, list approvals, or answer one with the decision someone gave in the bot’s own thread. Webhooks are the other path. Deliveries are idempotent by request ID, so a replayed or reordered delivery does not duplicate anything.
| Code | Meaning |
|---|---|
approval_pending |
The approval has not been answered |
approval_denied |
It was answered no |
approval_resolved |
It was already answered |
self_approval |
The requester tried to answer its own request |
bot_revoked |
The bot was revoked |
An actor can never answer its own approval. See Dry-run and approvals.