To let an assistant use these tools, grant Product configuration on the consent screen, or just
Lifecycle events under its Fine-tune. The scope is lifecycle.
Read tools work with Read only or Read & write access; write tools only with
Read & write.
Your assistant doesn't see these tools straight away. It finds them with search_tools or
describe_tools, and runs one with use_tool, passing its name and
arguments. Most assistants do this for you: just ask for what you want.
What your assistant is told about this group
What happens automatically at key moments for a policy or application, such as a quote being issued or a renewal coming up. Each event has actions, such as send_message (a message to the customer) and notify_team (an alert to your team). Events tied to a date (a renewal, say) or to a spell of inactivity have timing you can set. You can send a test, and see what was sent in the activity feed. Changes take effect when the next release is published; until then the events in the live release keep running.
The descriptions below are the ones your assistant reads, so they're written for it. When a connection covers more than one
organisation, the assistant passes org (the organisation's slug, from list_orgs) to say which one.
list_lifecycle_events
Read List lifecycle events
A product's lifecycle events with their actions, plus the events you can still add. Changes take effect when the product's next release is published.
Arguments
| Field | Type | Description |
|---|---|---|
| product_id required | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
create_lifecycle_event
Write Add a lifecycle event
Configure a lifecycle event on a product (see list_lifecycle_events meta.addable for available keys). Add actions to it with create_lifecycle_action.
Arguments
| Field | Type | Description |
|---|---|---|
| product_id required | string | |
| event_key required | string | e.g. quote.issued, policy.anniversary |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
update_lifecycle_event_timing
Write Update lifecycle event timing
When date-based events fire. lead_time_days: how many days BEFORE the date (a renewal, say) the event fires. after_days: for events about inactivity, how many days without activity before it fires. Only the values you pass change.
Arguments
| Field | Type | Description |
|---|---|---|
| id required | string | Lifecycle event id |
| lead_time_days | integer | |
| after_days | integer | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
delete_lifecycle_event
Write Remove a lifecycle event
Remove a configured lifecycle event. Refused while it still has actions: delete those first.
Arguments
| Field | Type | Description |
|---|---|---|
| id required | string | Lifecycle event id |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
test_lifecycle_event
Write Send a lifecycle event test
Send a sample render of an event's message actions to a real inbox (and phone for SMS) so it can be checked without waiting for a customer event.
Arguments
| Field | Type | Description |
|---|---|---|
| id required | string | Lifecycle event id |
| string | Defaults to the authorizing user's email | |
| phone | string | Needed for SMS actions |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
create_lifecycle_action
Write Add a lifecycle action
Add an action to a lifecycle event: send_message (email/sms/whatsapp to the customer, optionally with pinned document attachments and a reply agent), notify_team (internal alert), webhook (POST to an outbound webhook connection), call_endpoint (call a custom integration endpoint: connection_id + endpoint_id) or pas_sync (policy sync events only). Webhook and endpoint calls reach another system: confirm first.
Arguments
| Field | Type | Description |
|---|---|---|
| lifecycle_event_id required | string | |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
| action_type required | string |
One of: "send_message", "notify_team", "webhook", "call_endpoint", "pas_sync"
|
| enabled | boolean | |
| channel | string |
send_message only
One of: "email", "sms", "whatsapp"
|
| template_key | string | Built-in message template key, or a custom message template's id (WhatsApp: template friendly_name) |
| offset_seconds | integer | Delay AFTER the event fires (0 = immediately) |
| agent_id | string | Choosing a reply agent IS enabling replies |
| sending_agent_id | string | |
| email_template_key | string | Built-in email chrome (email channel only; beats email_template_id) |
| email_template_id | string | Custom email design id (email channel only) |
| document_version_ids | array of string | Document versions to attach (email only; must belong to the product: see get_document versions) |
| recipient_scope | string |
notify_team only
One of: "team", "members"
|
| recipient_user_ids | array of string | notify_team with scope=members |
| connection_id | string | webhook: an outbound webhook connection; pas_sync: the PAS connection; call_endpoint: the definition's managed connection (managed_connection.id on get_integration_definition) |
| endpoint_id | string | call_endpoint only: the custom integration endpoint to call |
| purpose | string |
send_message only: what the message is for. Omit to follow the event's default (chasers are marketing, policy, payment and claim messages essential). essential: a service message they get even after saying no to service messages. first_party_marketing: only sent with their marketing consent.
One of: "service", "essential", "first_party_marketing"
|
| required_basis | string |
send_message only: consent = only people who gave their consent for this (a soft opt-in isn't enough). Omit to follow the consent policy.
One of: "consent"
|
| consent_fallback | string |
send_message only: send on this channel instead when the message's own isn't allowed for the person (same purpose and basis rule there). Omit to not send.
One of: "email", "sms"
|
update_lifecycle_action
Write Update a lifecycle action
Replace a lifecycle action's settings. Pass ALL the settings for its type: any message field you leave out is cleared, as on the dashboard form. Changes to the documents it attaches are recorded in the activity log, before and after.
Arguments
| Field | Type | Description |
|---|---|---|
| id required | string | Action id |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
| action_type | string |
One of: "send_message", "notify_team", "webhook", "call_endpoint", "pas_sync"
|
| enabled | boolean | |
| channel | string |
send_message only
One of: "email", "sms", "whatsapp"
|
| template_key | string | Built-in message template key, or a custom message template's id (WhatsApp: template friendly_name) |
| offset_seconds | integer | Delay AFTER the event fires (0 = immediately) |
| agent_id | string | Choosing a reply agent IS enabling replies |
| sending_agent_id | string | |
| email_template_key | string | Built-in email chrome (email channel only; beats email_template_id) |
| email_template_id | string | Custom email design id (email channel only) |
| document_version_ids | array of string | Document versions to attach (email only; must belong to the product: see get_document versions) |
| recipient_scope | string |
notify_team only
One of: "team", "members"
|
| recipient_user_ids | array of string | notify_team with scope=members |
| connection_id | string | webhook: an outbound webhook connection; pas_sync: the PAS connection; call_endpoint: the definition's managed connection (managed_connection.id on get_integration_definition) |
| endpoint_id | string | call_endpoint only: the custom integration endpoint to call |
| purpose | string |
send_message only: what the message is for. Omit to follow the event's default (chasers are marketing, policy, payment and claim messages essential). essential: a service message they get even after saying no to service messages. first_party_marketing: only sent with their marketing consent.
One of: "service", "essential", "first_party_marketing"
|
| required_basis | string |
send_message only: consent = only people who gave their consent for this (a soft opt-in isn't enough). Omit to follow the consent policy.
One of: "consent"
|
| consent_fallback | string |
send_message only: send on this channel instead when the message's own isn't allowed for the person (same purpose and basis rule there). Omit to not send.
One of: "email", "sms"
|
delete_lifecycle_action
Write Remove a lifecycle action
Remove an action from a lifecycle event. Required actions (e.g. compliance floors) can't be removed.
Arguments
| Field | Type | Description |
|---|---|---|
| id required | string | Action id |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |
list_lifecycle_event_logs
Read List lifecycle event logs
Read-only activity feed of what happened when a product's lifecycle events fired: delivered, skipped (with reason) or failed (with error), newest first.
Arguments
| Field | Type | Description |
|---|---|---|
| product_id required | string | |
| status | string |
One of: "dispatched", "delivered", "skipped", "failed"
|
| event_key | string | |
| from | string | ISO date (YYYY-MM-DD) |
| to | string | ISO date (YYYY-MM-DD) |
| limit | integer | Max rows, default 50, cap 200 |
| org | string | Organisation slug: required when this authorization covers more than one organisation (see list_orgs) |