Create Alert Run
create_alert_runCreate a run that tells each record's OWNER something, over Slack. This is the tool for 'let the reps know about their accounts that X', 'alert the owners of these contacts'. It does nothing until dispatched, and it WRITES NOTHING TO THE CRM -- no field changes, no tasks, no records. ONE MESSAGE PER OWNER, NOT PER RECORD. Forty contacts held by three reps is three messages, each naming how many of their records it concerns. So write the message to a person about their records, not to a record. SAY WHAT THE READER SHOULD DO, NOT WHAT HAPPENED. A message is written when the plan is composed and sends when the alert step runs, so a sentence in the past tense claims an outcome the plan cannot know -- four composed plans in a row told reps that duplicates "were merged" when a deduplication run only QUEUES groups for a person to merge afterwards, and that ownership "was reassigned" by a step that declines entirely when no routing is configured. NAME THE RECORDS AND THE NEXT ACTION INSTEAD. "Your Texas contacts have been through a cleanup -- review the duplicate groups waiting for you" is true when it is written, true when it sends, and survives a step declining or matching nothing; the future tense is no safer, since what a person does with a review queue is not the plan's to promise. IT CANNOT BE UNDONE. A sent message cannot be recalled, so a plan containing this step reverses everything else and says this one stays. IT NEEDS SLACK AND OWNER MAPPINGS. A tenant with no Slack connection sends nothing and the run fails; an owner with no Slack mapping is reported per record rather than skipped quietly, and a run that reaches nobody fails rather than reporting success.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | A name for the run, shown in the Runs tab. It sends a Slack message to the owners of the records in scope. | |
| message | Yes | What each record's owner is told, sent to them over Slack as written. Required and must not be blank. | |
| filter_spec | No | Which records this run covers, as a filter tree. Omit for the whole object. It DESCRIBES a population and is resolved when the run is DISPATCHED, so write what you mean -- the CRO at Skypoint is `account_name is Skypoint AND title contains CRO` -- and never look a record up to write one. You need no ids and no counts. Call list_filterable_fields first, for the field names and operators only. | |
| object_type | Yes | Which CRM object the run targets: contact, account or lead. | |
| connection_id | Yes | The CRM connection. Required. Call list_crm_connections to get one. |