ObertObert
CampaignsApprovals

Approve Message

Approve a pending message (optionally with edits). When ``body.send_now`` is False (default), the lead is parked in ``status=scheduled`` if the current moment falls outside the campaign's working hours. When True, the lead fires on the next worker tick regardless. The frontend probes ``/approvals/{id}/send-window`` first and only sets ``send_now`` if the user explicitly chose to override.

POST
/api/campaigns/approvals/{approval_id}/approve
AuthorizationBearer <token>

In: header

Path Parameters

approval_idstring

Header Parameters

x-tenant-id?string|null
message?string|null
send_now?boolean
Defaultfalse

Response Body

application/json

application/json

curl -X POST "https://api.obert.io/api/campaigns/approvals/string/approve" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string",
  "tenant_id": "string",
  "campaign_id": "string",
  "campaign_lead_id": "string",
  "node_id": "string",
  "generated_message": "string",
  "ai_prompt": "string",
  "lead_context": {},
  "status": "pending",
  "approved_message": "string",
  "reviewed_by": "string",
  "reviewed_at": "2019-08-24T14:15:22Z",
  "created_at": "2019-08-24T14:15:22Z",
  "campaign_name": "string",
  "lead_name": "string",
  "lead_headline": "string",
  "lead_company": "string",
  "lead_profile_picture_url": "string",
  "lead_linkedin_url": "string",
  "sender_name": "string",
  "sender_profile_picture_url": "string",
  "icp_score": 0,
  "icp_tier": "string",
  "personalization_reasoning": "string",
  "personalization_score": 0,
  "citations": [
    {}
  ],
  "versions": []
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}