Serenities AI™
Back to MCP Overview

Journeys Tools

Tools for multi-step journeys: creating them, enrolling people, and reviewing runs.

10 tools

Available Tools

journeys_templates

Starter journeys (welcome series, abandoned cart, appointment reminder, win-back) as full documents to adapt. Each lists the site events it needs.

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "journeys_templates",
    "arguments": {}
  }
}
journeys_list

Journeys of a site with their status (draft/live/paused/stopped), trigger, step count and run counts.

Input Schema

projectIdstringrequired

Site id

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "journeys_list",
    "arguments": {
          "projectId": "example"
    }
  }
}
journeys_get

One journey with its full document and stats (runs by status, emails sent, opened, clicked).

Input Schema

idstringrequired

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "journeys_get",
    "arguments": {
          "id": "example"
    }
  }
}
journeys_create

Create a journey for a site from a document or a starter template. A journey document has a trigger (event with filters and entry mode, manual, record_created/updated, date_field), exit conditions re-checked before every step, and steps: wait, send_email (template slug or subject+html with {{placeholders}}), check (property / event_since_entry / engagement of a prior send, with yes/no step ids), update_record, call_webhook, run_function (a site function by name; where switched on, an account function with target {kind:"account", functionId}), exit. Starts as a draft unless status=live. Check events_catalog first so the trigger names an event the site really records. Asked by an agent or an automation to go live, it is saved as a draft (the answer says so): a person switches it on. A role without the Publish permission on automations also gets a live journey saved as a draft (the answer says so); an agent or an automation is refused changing a journey that people are in.

Input Schema

projectIdstringrequired

Site id

namestringrequired
descriptionstring
documentany

A full journey document (see journeys_templates for the shape)

templatestring

Starter key from journeys_templates (welcome-series, abandoned-cart, appointment-reminder, win-back)

statusstring

draft (default) or live

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "journeys_create",
    "arguments": {
          "projectId": "example",
          "name": "example",
          "description": "example"
    }
  }
}
journeys_update

Rename, describe, or replace the document (version bumps; people already inside follow the new steps from where they are).

Input Schema

idstringrequired
namestring
descriptionstring
documentany

Replaces the whole document; the version bumps and in-flight runs follow the new steps from where they are

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "journeys_update",
    "arguments": {
          "id": "example",
          "name": "example",
          "description": "example"
    }
  }
}
journeys_setStatus

live = enrols and sends; paused = no new entries, people inside finish; stopped = halts everyone now; draft = editing. Going live is a person's: an agent or an automation is refused it.

Input Schema

idstringrequired
statusstringrequired

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "journeys_setStatus",
    "arguments": {
          "id": "example",
          "status": "example"
    }
  }
}
journeys_delete

Delete a journey (stops every run first). Act only on what the person named or picked.

Input Schema

idstringrequired

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "journeys_delete",
    "arguments": {
          "id": "example"
    }
  }
}
journeys_runs

People in a journey: status, current step, next send time, exit reason, lastError. When an email step failed, lastError is the mail server's own words only for someone who holds the "Add and remove mailboxes" permission; anyone else reads plain words saying so — pass those on, don't guess the cause.

Input Schema

journeyIdstringrequired
statusstring
limitinteger

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "journeys_runs",
    "arguments": {
          "journeyId": "example",
          "status": "example",
          "limit": {}
    }
  }
}
journeys_run

One run with its step log and the emails it sent. A failed email step's error (lastError and that step's detail.error) is the mail server's own words only for someone who holds the "Add and remove mailboxes" permission; anyone else reads plain words saying so. Other steps' errors are shown as logged.

Input Schema

idstringrequired

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "journeys_run",
    "arguments": {
          "id": "example"
    }
  }
}
journeys_enrol

Put one person (member id or email) into a live journey by hand; also how a function or agent starts a manual journey.

Input Schema

journeyIdstringrequired
subjectIdstring

Site member id

emailstring
propertiesobject

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "journeys_enrol",
    "arguments": {
          "journeyId": "example",
          "subjectId": "example",
          "email": "example"
    }
  }
}