Not every tool call should run automatically. When a workflow writes to a production CRM, sends a customer-facing email, or executes a database query, you may want a human to review and approve before it goes through. Tool approvals give you that checkpoint. You declare which tools need approval in your job definition. When the model (or your code) calls one of those tools, the run pauses, notifies you, and waits for a decision. Approve to continue; reject to stop that tool call.Documentation Index
Fetch the complete documentation index at: https://docs.useterse.ai/llms.txt
Use this file to discover all available pages before exploring further.
Configuring tool approvals
List the tool names that require approval intoolApprovals:
toolApprovals is typed against the tools exposed by your declared skills, so your editor autocompletes the exact tool names. An empty array means no tools require approval; omitting the field entirely has the same effect.
Approval in development vs. production
The approval experience adapts to your environment:Local development (terse test)
When you test locally, approval requests appear as interactive prompts in your terminal:
Y to approve or n to reject. The run resumes immediately in the same terminal session.
Production (deployed workflows)
In production, Terse delivers approval requests through your configured notification channels and handles them in the app:| Channel | Experience |
|---|---|
| Slack | Interactive message with Approve and Reject buttons so you can decide without leaving Slack |
| Notification with a link to the run in the Terse app | |
| In-app | Pending approvals appear in the Notifications page with approve/reject actions |
When to use tool approvals
Tool approvals add latency because the run waits for a human. Use them deliberately. Good candidates are write operations to production CRMs during early development, customer-facing messages (emails, Slack DMs to external contacts), database mutations (especially deletes), and any workflow where compliance requires a human checkpoint. Skip them for read-only operations like queries and enrichment lookups, internal notifications to team Slack channels or dashboards, workflows that have been validated and are running reliably, and high-volume operations where per-run approval isn’t practical. A common pattern is to start with approvals enabled during development and the first few production runs, then remove them once the workflow behaves correctly.Notification configuration
Terse delivers approval requests through the notification settings on your Notifications page. To receive them, make sure:- You’ve added a notification destination. Open the Notifications page, switch to the Destination tab, and add a Slack workspace or confirm your email.
- You’ve enabled approval requests. On the same page, open the Notification Types tab and include “Approval requests” in the “Notify me about” action types.
Where to go next
Activity & observability
Monitor runs, inspect failures, and review the full action trace.
Skills & integrations
Control which integrations the model can use.
