Approvals

When approval is on, a write tool does not touch LinkedIn: it stores the exact action and returns { status: "pending_approval", action }. A person approves or rejects it in the dashboard, and exactly what was approved runs.

How it works

  1. The agent calls a write tool (a post, a comment, a DM, an invitation…).
  2. Finchreach stores the operation, the account and the input, and hashes them. Identical pending proposals are deduplicated, so a retried tool call does not queue the same DM twice.
  3. You review it under Approvals and approve or reject it. The key that proposed an action cannot approve it.
  4. On approval the stored payload is re-hashed and run, so what runs is exactly what you saw.

Approval is set per account, then per API key, then per workspace: the first one that is set wins.

Action statuses

An action is one of: pending_approval, approved, rejected, executed, failed, expired. A proposal expires after 7 days if nobody approves it.

Following an action from the agent

Call linkedin_get_action with the actionId from the write result. Once run, the action carries its result. Over HTTP, use the actions endpoints in the API reference.

A queued write
{
  "status": "pending_approval",
  "action": { "id": "…", "operation": "send_dm", "status": "pending_approval", "expiresAt": "…" }
}

Updated · Markdown version