Bulk: Execute (live)
bulk_executeBulk create or update LACRM contacts from CSV via a rate-limited background worker. Returns a run_id immediately and supports async delivery of results.
Instructions
Execute a bulk create/update by launching a detached background worker that paces calls at ~1 request/second (LACRM's agreement). Returns a run_id immediately.
SAFETY: this performs LIVE writes. It re-validates first and refuses to run if validation fails. You must pass confirm=true to proceed (omitting it returns the validation only). Always show the user a bulk_validate_csv preview and obtain explicit approval before passing confirm=true.
ASYNC COMPLETION (optional): pass channel + requestor_email + identifier (and request_summary) and the finished result - including the report delivered as an editable Google Sheet - is posted back on the originating channel automatically when the run completes; no polling needed. Without them, poll bulk_run_status as before.
Update mode uses per-field merge strategies (see fields[].strategy); an absent column is left unchanged. Provide the CSV as csv_content or csv_path.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Update-mode merge fields. | |
| channel | No | Async completion: originating channel (googlechat | gmail | asana). With requestor_email + identifier, the finished result is delivered automatically on that channel. | |
| confirm | No | Must be true to perform live writes. | |
| csv_path | No | ||
| operation | Yes | ||
| identifier | No | Async completion: channel-native message identifier (gmail message id | asana task gid | gchat space), case-exact. | |
| key_column | No | Identity column (required for update mode). | |
| csv_content | No | ||
| interval_ms | No | Min ms between calls (default 1000; do not go below 1000). | |
| create_config | No | Create-mode field mapping (required for create mode). | |
| address_config | No | Update-mode address mapping (append-if-absent). | |
| request_summary | No | Async completion: 1-3 sentence plain-language restatement of what was asked (composed at fire time). | |
| requestor_email | No | Async completion: email address of the requesting user. | |
| create_if_missing | No | Update mode: create a contact when the key is not found. |