You’ll need an API key (see Authentication) and Five9 admin credentials. Export both:
1
Find your action in the catalog
The catalog is the public registry of platforms, services, and actions you can use in flows. No authentication required. Start from the platform and drill down:The last call lists actions like:Each action’s
parameters describe what a task must pass, and output_schema describes what it returns. This flow uses two actions: five9__configuration_service__create_list and five9__configuration_service__add_to_list.2
Create a credential
A credential stores the secrets a task uses to reach an external platform. You supply the platform, the authentication method and the material — there is no service to pick, because one credential serves every compatible Five9 service:GetDialed verifies the material against Five9 and discovers which Five9 Domain it belongs to, so the create doubles as a liveness check — a You can re-check a saved credential at any time — after a rotation, for instance:A passing test returns
400 means the credentials could not be verified and nothing was stored. The response is the created credential; note its id:{"success": true, ...} with the measured latency. A failing one returns success: false and an error code such as AUTH_FAILED — fix the credentials before continuing.3
Author the definition
A flow definition declares inputs, then steps that run in order. Each step contains one or more tasks; every task names the catalog action it runs (Two kinds of expression are doing the work here:
platform_id, service_id, action_id) and the credential it runs with.This definition has two steps. Step 1 creates a Five9 list named after the trigger input. Step 2 adds a contact to it — and gets the list name from step 1’s output, not from the input:Chaining follows the pattern
{{<step_id>.<task_id>.output.<field>}}. When a step has exactly one task, the shorthand {{<step_id>.output.<field>}} also works — that’s what’s used above. See Expressions for the full context reference.Expressions are validated when you create or update a definition — a malformed one is rejected immediately with a 422 and an expression_errors list, so you never discover a typo at runtime.The response includes the new definition’s id (e.g. def_a1b2c3d4).4
Activate it
Only definitions with
"status": "active" can be triggered. The example above sets that at creation, so you’re done.If you’d rather iterate on a draft first, omit status (new definitions default to draft) and activate later with PUT /flows/definitions/{id} — a full replacement, so resend the whole body with "status": "active".5
Trigger it
input_data object, so it produces one execution. To fan the same flow out over many records at once, see Trigger with records.6
Inspect the results
Follow the batch until its status reaches Then list its executions and fetch the one execution’s full detail:The execution’s On failure,
completed:result is keyed by step_id, so you can see exactly what each step produced — including the list_name that step 2 consumed:status is failed and error carries the message. See Batches and executions for the full lifecycle.Next steps
Trigger with records
Run this flow once per row of a contact file.
Expressions
The full expression context: inputs, variables, step outputs, defaults.
Execution models
Run tasks immediately, on a schedule, in a time window, or on a signal.
Templates
Start from a pre-built definition instead of a blank page.