Approvals
Agents in Harmony can read freely from the systems you connect, but they ask before they change anything outside Harmony: creating a record, updating one, or sending a message. They also stop for a person's review wherever a workstream's approval policy says so. You answer in the chat where the work is happening, and every answer is recorded.
Answer an approval card
When an agent wants to write to a connected system, its reply shows a card before anything is written.
- Read the card. It names the connector, what the agent wants to do, and a badge for the kind of change: Creates data, Modifies data or Sends message.
- Choose one:
- Allow once runs this write. Later writes in the same reply don't ask again.
- Always allow runs it and stops asking for writes to that connection.
- Decline stops the agent. Nothing is written.
- The card then shows what happened: Approved, Declined, Cancelled if the reply was stopped first, or Timed out if nobody answered in time. A timed-out write was not made; ask again to retry.
Answer the card in the chat where the reply ran. A preview of the same card elsewhere can't take an answer. For how each connector's approvals can be set, see Approving connector writes.
Review work before it is released
Some work waits for a review before it is released: a draft output, a report to publish, or a set of external actions. The card in the chat says which, with Human review required, Publish review required or Action review required.
- Read what the agent produced. For long work, choose Open review to see it in full.
- Add a Review note if you like. It is kept with your decision.
- Choose Approve to release the work, or Reject to send it back for changes.
Live Canvas boards can require approval before they are published; the board then shows a banner with Approve and Reject.
The Actions queue
Actions lists external writes that runs have proposed and that are waiting for a person, across the workspace. Each item shows what is pending, for example External actions pending review; choose Review actions to open it, preview the changes and release them. Choose Refresh to update the list. When nothing is waiting, the page says "No pending actions".
How strict a workstream is
Each workstream has its own approval policy. To change it, open the workstream's settings and find Human approval (HITL).
| Setting | What it does |
|---|---|
| Strictness preset | Standard: one approver and the core checkpoints. Strict: two approvers and a spend threshold. Custom: you set each checkpoint yourself. |
| Default approval stages | Who must approve, in which order, and how many approvals each stage needs. Each stage needs at least as many distinct approvers as approvals it requires. |
| Default execution checkpoints | Where runs in this workstream stop for review. |
| Live Canvas board approval | Require approval before canvas publish. |
The people who can approve are the workstream's approvers. See Roles.
Skipping connector approvals for yourself
In Profile → App settings, under Connector approvals, you can turn on Skip connector write approvals. When it is on, agents working for you write to every connected system without showing the approval card. Leave it off unless you are sure: approving one connector at a time from chat, with Always allow, is usually enough.
What is recorded
Every approval, rejection and timeout is kept with the work. Admins can find them in Audit & History, and the person who answered appears as the actor.
FAQs
Do agents ask before reading data? No. Reading from connected systems doesn't need approval. Writing to them does.
What does Always allow change? It stops the approval card for writes to that connection. Ask an admin if you want approvals back on for it.
What happens if I don't answer? The card times out and nothing is written. Ask the agent again when you are ready.
Can someone else approve for me? A card in chat is answered by the person the agent is working for. Reviews set by a workstream's approval stages go to that workstream's approvers.
Does approving cost anything? No. Approval doesn't change what work costs. See Usage limits.