Create a rules-of-engagement policy
Creates a rules-of-engagement policy, checked against the catalog; nothing uses it until a sequence names it.
It is not the default (is_default: false) until you make it one with POST /v2/sequencer/policies/{id}/default.
Rules are checked against GET /v2/sequencer/policies/catalog: every condition, action and outcome must exist, its parameters must match, and each action must fit the rule’s scopes (block, warn and require_approval run at enrollment; skip_step, pause and finish before a step). A rule set that fails returns 400 with every problem listed in errors. A condition group nests at most 3 levels and holds at most 30 conditions. Rules sent without an id are given one.
Only the team owner or an admin can create policies. A name already used on the team returns 409. Acts as user_id. Preview the rules with POST /v2/sequencer/policies/preview first. Counts against the Sequencer writes rate limit.
Recommended order
- Read Get the rules-of-engagement catalog for the conditions, actions and outcomes you can use.
- Measure the scenarios with Preview a draft rule set.
- Create the policy.
- Point sequences at it by setting
policywith Update a sequence, or make it the default with Make a policy the team default.
Good to know
- Only the team owner or an admin can create policies.
block,warnandrequire_approvalrun atenrollmentonly;skip_step,pauseandfinishrun before a step only.- An invalid rule set returns 400 with every problem listed in
errors, each naming the rule it belongs to. - Policy names are unique on the team. Reusing one returns 409.
Authorizations
Team-scoped API key generated in the Salesfinity dashboard under Settings → Connections → API & Webhooks. A missing or invalid key returns HTTP 403.
Headers
Makes this write safe to retry. Send a unique value, such as a UUID, and send the same value again when you retry the same request. A retry with the same key and the same request (method, path including the query string, and JSON body) returns the original successful response without acting twice. The same key with a different body or path returns 409, and so does a retry while the first request is still running; that one is safe to repeat after a moment. A request that fails frees its key, so a retry runs the write again: after a 5xx on a create, confirm with a GET before retrying. Keys are kept for 24 hours and are scoped to your team.
Body
Unique on the team. Must not be empty.
120The team member authoring the policy. Must be an active member of the team, and the team owner or an admin.
2000Scenarios, evaluated in order. Up to 100.
100Reactions. Up to 50.
50Whole hours, 1 to 168. How old a contact's stored CRM data may be before a CRM-backed rule refreshes it. Defaults to 24.
1 <= x <= 168Response
The created policy.
A rules-of-engagement policy.
24-character hexadecimal id.
"507f1f77bcf86cd799439011"
Team id.
Unique on the team.
The policy every sequence that names none of its own runs under. Exactly one per team.
How old a contact's stored CRM data may be, in hours, before a CRM-backed rule refreshes it.
Scenarios, in evaluation order.
Reactions.
Only on GET /v2/sequencer/policies: sequences running under this policy. The default also counts every sequence that names no policy.
Who created it. Absent on the default policy the team started with.
Who changed it last.