Add leads to campaign
add_leadsAdd recipients to a draft or incomplete campaign through the suppression-safe bulk importer. Returns removed counts for recipients not added and their reasons. Adding to an active campaign pauses it and requires signed-in human confirmation before recipients enter the sequence. The campaign-wide maximum is 5,000 unique recipients. dry_run: true returns an advisory estimate as of evaluated_at, reserves nothing, and may differ from a later execution plan. Pass each person’s location from find_leads or enrich in leads[].location (at most 200 characters). Active area rules leave new people with no location out; removed.no_location is included in removed.do_not_contact, not added again to total.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| leads | No | ||
| dry_run | No | ||
| campaign_id | Yes | ||
| idempotency_key | Yes | A payment_required refusal means services are stopped for unpaid billing; direct the owner to the billing link in the error. Campaigns stay paused after payment until restarted. Optional for search and enrichment tools: supply one so a retry returns the original result without paying again; if that call failed with provider_unavailable, rate_limited or insufficient_credits (after a top-up), a retry runs it once more after its cooldown (30 s, or a longer retry_after_seconds; insufficient_credits as soon as the balance covers it), unless its provider may already have done the work. Required for tools that create an external side effect; reuse the same value after a timeout or an approval. A stored failure comes back with details.replayed: true; with retry_after_seconds, retry the same value after that. | |
| confirmation_token | No | ||
| finalize_incomplete | No |