conduyt_create_batch_operation
Queues one bulk action (enroll, delete, tag, assign, set source, or set status) across many contacts, processed in the background with progress tracking and cancel support.
Instructions
Queue a Run Batch: ONE task applied to many contacts, logged with progress and cancel (no undo). Tasks: enroll (automationId of a published workflow), delete (the #73 engine: cleanup runs, contacts with an upcoming appointment are kept), add_tag / remove_tag (params.tagId), assign (params.userId — one rep) or a round-robin pool (params.userIds, 2–50 reps rotated in order; a rep who is no longer an active member is skipped), set_source (params.source — OVERWRITES the lead source), set_status (params.status — one of the account's lead statuses; a lead with a won deal keeps its status). Pick the contacts ONE way: contactIds (up to 50,000), filterPayload (universal filters), or filter + expectedTotal — the same filter you would give conduyt_list_contacts plus the meta.total it returned; the server re-counts and refuses with 409 expected_total_mismatch when the set moved, then freezes the matching ids (max 50,000). The run is processed in the background; poll conduyt_get_batch_operation. Requires the admin or owner role and an active subscription.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | A name for the run (shown on the Run Batch page) | |
| filter | No | The contact list filter parameters, exactly as for conduyt_list_contacts; at least one non-empty value | |
| params | No | Task arguments: { tagId } | { userId } | { userIds: [...] } | { source } | { status }; none for enroll and delete | |
| comment | No | Why this run (stored with it) | |
| operation | Yes | The task | |
| contactIds | No | Explicit contacts | |
| automationId | No | enroll only: the published workflow | |
| expectedTotal | No | With filter: the total the list showed for it (meta.total) | |
| filterPayload | No | Universal filter rules (the Smart View filter shape) |