Skip to content

How approvals work

The core idea: Dash drafts, you ship. Routine writes default to Ask, so Dash shows the exact action in Slack, Teams, or the web before it runs. Irreversible destructive operations default to Off and cannot run until an authorized person deliberately enables them.

  • Sending an email
  • Posting in a public channel
  • Writing to your CRM (creating a deal, updating a contact, changing a stage)
  • Charging or refunding through Stripe
  • Posting on social
  • Creating or editing calendar events on someone else’s calendar
  • Anything else that touches the world outside your private DM with Dash

Dash keeps irreversible destructive operations disabled by default, including permanent record deletion, purge, repository deletion, branch deletion, and force-push. These tools do not produce an approval card while they are Off because Dash cannot call them at all.

Routine reversible edits remain at Ask. For example, deleting spreadsheet rows or removing a label pauses for approval rather than being classified as a destructive operation.

  • Reading data from a tool you have connected
  • Drafting a message, document, or summary that lands in your DM with Dash for review
  • Internal calculations, queries, and analysis
  • Posting back to the same channel you asked Dash from, when Dash is just answering you in thread

The rule of thumb for default settings: if the result only lives in your conversation with Dash, no approval is needed. If it changes another system, Dash either asks first or remains Off when the operation is destructive.

When Dash needs your approval, it posts a card in the same Slack thread or Teams chat. Above the card you see the agent’s own preview of what it’s about to do (the draft email, the row it’s about to write). The card names the pending tool call, shows a summary of what the action will do (for example, the target repo and file path for a git push), and gives you three buttons:

For GitHub operations, the card identifies the exact repository and pull request number with a clickable link, so you know precisely which PR is being merged, commented on, or updated before you approve.

  • Approve — run this one action now.
  • Always approve this tool — run it now AND stop asking for this tool in the future. Useful once you trust Dash on a low-stakes tool (like reading a spreadsheet). You can undo this later from the Tools page or by asking Dash to set the tool back to Ask.
  • Deny — cancel this action. Dash goes on with the rest of the turn without it.

If you want to change the wording of a draft first, tell Dash in the thread — “make it shorter” or “swap the link” — and Dash re-drafts, then re-asks.

For scheduled tasks, the card also shows a summary of what the task is asked to do, so you have context even though there is no conversation thread behind the run. Secrets in the action inputs are redacted; long values are truncated.

Any teammate with access to the connection can approve or deny a pending action, not just the person who asked. The approval card is visible to everyone in the thread; when someone clicks Approve or Deny, Dash checks whether that person has usable access to the tool. If they do, the decision goes through. If they don’t, Dash tells them why and the card stays pending.

When a workspace admin has set designated approvers for a tool, only those named people (who also have access) can approve. Anyone else who clicks the button is told who to ask.

Either way, the action still runs as the person who originally asked Dash to do it. Their own access is re-checked at execution time, so approving someone else’s action never widens what actually runs.

Always approve this tool goes further: it takes effect only if you’re the one who connected the tool (or a workspace admin). If you’re neither, the one-time approval still runs, but the “always” setting won’t stick — Dash will tell you to ask an admin.

People authorized to manage a connection can change its controls from the Dash dashboard at app.dashpup.ai. Two independent layers govern each connection:

  • Connection access scope. Set the connection to workspace so everyone may use it, or private so only the connector and invited teammates may use it. New Gmail and Outlook connections start private.
  • Per-tool run mode. For any specific operation on a connection, set its mode to ask (pause for approval), auto (run without asking), or off (block the operation entirely).

These are the levers that let admins say “Dash may never post on social” or “Dash must ask before touching this integration.” An explicit run-mode choice overrides the code default for that connection, and Dash checks the effective setting again when the operation runs.