confirmations

Request action approval

Transport: call this endpoint with HTTP POST and a JSON request body. Stage an approval-gated action for the public REST API. Call this before outbound LinkedIn/email writes and campaign activation. Personalized campaign enrollment is intentionally excluded: call campaigns.addTargets with personalized_steps so the idempotency receipt is reserved before its internal campaign_enroll_personalized_targets approval is staged. Campaign activation can be staged only while the campaign is draft or paused. Terminal, processing, active, and archived campaign activation is rejected before a confirmation is created or Autopilot is evaluated with CAMPAIGN_INVALID_STATUS_TRANSITION. Automated flow: if the response data includes autopilot.approved=true, immediately retry the gated write with the returned confirmation_id. If Autopilot is not approved, show or store approval_url, wait for browser approval in Zevari, then retry the gated write with the same confirmation_id. For linkedin_send_connection_request payloads, note length is tier-limited before approval: free LinkedIn senders support up to 200 characters; paid/Premium/Sales Navigator senders support up to 300. Over-limit notes return HTTP 400 with ok=false and data.error='connection_note_too_long'. REST clients do not have access to MCP-only chat approval tools.

post/v1/confirmations/requestAction

Request

  • Base URL: https://api.zevari.ai
  • URL: https://api.zevari.ai/v1/confirmations/requestAction
  • Auth: HTTP bearer

Request body

action_type'linkedin_send_message' | 'linkedin_send_inmail' | 'linkedin_send_connection_request' | 'linkedin_cancel_invitation' | 'linkedin_respond_invitation' | 'linkedin_create_post' | 'linkedin_comment_on_post' | 'linkedin_react_to_post' | 'linkedin_react_post_comment' | 'email_send_message' | 'campaign_activate' | 'campaign_update_target_set' | 'campaign_update_step_config' | 'bulk_delete' | 'bulk_export' | 'agents_enrich_email_batch' | 'account_reparent' required

The exact allowlisted action family this confirmation gates. Valid values are LinkedIn/email sends/InMails/posts/comments/reactions, campaign_activate, campaign_update_target_set, campaign_update_step_config, bulk_delete, bulk_export, and agents_enrich_email_batch. For campaign activation, use 'campaign_activate' with payload={campaign_id: <id>}. Personalized enrollment must use campaigns.addTargets, which stages its receipt-bound confirmation internally. Entity saves such as targets_save are not valid action_types and do not need confirmation.

payloadobject required

The COMPLETE action payload. LinkedIn writes are validated at stage time; connection requests accept saved lead/provider/public/profile URL aliases and are stored as canonical provider-ID payloads, while linkedin_comment_on_post/linkedin_react_to_post postId values are resolved to the post's social_id before approval. After approval, execution uses this stored approved payload as the source of truth.

cost_estimate_centsinteger

Estimated external cost in cents (e.g. email enrichment reveals). Shown to the user on the approval page.

Response

Successful Zevari API response.

okboolean required

False when the underlying tool reports an error or a partial failure.

methodstring required

Public API method name.

dataunknown required
request_idstring required

Request correlation ID. Also returned in X-Zevari-Request-Id.

Example response

{
  "method": "campaigns.delete"
}

Changes

No recorded changes to this operation across all 1 revision of this API.