---
updatedAt: 2026-09-04T07:06:48.000Z
agentTools:
  projectIndex: https://documentation.indigitall.com/llms.txt
---

# Gets one customer journey template by id

Gets one customer journey template by id

# OpenAPI definition

````json
{
  "openapi": "3.0.0",
  "info": {
    "version": "2.0.0",
    "title": "INDIGITALL API",
    "x-logo": {
      "url": "https://console.indigitall.com/images/logo_verdeblanco@2x.png",
      "backgroundColor": "#0F3B7A"
    },
    "description": "\n### Introduction:\nThis documentation describes every endpoint of Indigitall's API v2\n\nAPI BASE URL: https://api.indigitall.com/v2\n\n### Authentication:\n\nMost of the endpoints of the API needs an Authorization header.\n\nThere are two Authorization ways:\n\n- If your intention is to manage API calls with a server-side script you have to create a Server key through Indigitall's console.\n\n  You can set the following Authorization Header : 'Authorization: ServerKey {ServerKey}'\n- If your intention is to integrate this API for front-end users POST /auth endpoint authorizes a user and returns an access token.\n\n  You can set the following Authorization Header : 'Authorization: Bearer {Token}'\n"
  },
  "security": [
    {
      "Authorization": []
    }
  ],
  "tags": [
    {
      "name": "customer-service-customer-journey-template",
      "x-displayName": "Customer service - Journey Template",
      "description": "Customer service endpoints"
    }
  ],
  "x-tagGroups": [
    {
      "name": "Chat Service",
      "tags": [
        "chat-configuration",
        "chat-channel",
        "chat-contact",
        "chat-integration",
        "chat-task",
        "chat-campaign",
        "chat-send",
        "chat-multimedia",
        "chat-slicing",
        "chat-tag",
        "chat-contact-list",
        "chat-cc-agent",
        "chat-cc-permissions-profile",
        "chat-cc-weekly-schedule",
        "chat-cc-special-days-schedule",
        "chat-cc-conversation",
        "chat-cc-agent-group",
        "chat-cc-contact-comment",
        "chat-cc-form",
        "chat-stats",
        "chat-internal"
      ]
    },
    {
      "name": "Customer Service",
      "tags": [
        "customer-service-adviser",
        "customer-service-customer",
        "customer-service-customer-csv",
        "customer-service-customer-field",
        "customer-service-customer-journey",
        "customer-service-customer-journey-template",
        "customer-service-customer-journey-control",
        "customer-service-customer-send",
        "customer-service-stats",
        "customer-service-webhook-template",
        "customer-service-segment",
        "customer-service-audience",
        "customer-service-application",
        "customer-service-journeywaitqueue",
        "customer-service-task",
        "customer-service-cdpeventtype",
        "customer-service-cdpeventtypetemplate",
        "customer-service-internal"
      ]
    },
    {
      "name": "Email Service",
      "tags": [
        "es-configuration",
        "es-configurationDomain",
        "es-configurationDomainEmail",
        "es-footer",
        "es-audience",
        "es-contact",
        "es-category",
        "es-campaign",
        "es-campaign-block",
        "es-campaign block-column",
        "es-campaign-multimedia",
        "es-shipment",
        "es-attachment",
        "es-statistics",
        "es-webhook",
        "es-tasks"
      ]
    },
    {
      "name": "InApp Service",
      "tags": [
        "inapp-configuration",
        "inapp-campaign",
        "inapp-schema",
        "inapp-topic",
        "inapp-multimedia",
        "inapp-form",
        "inapp-stats",
        "inapp-audience",
        "inapp-task"
      ]
    },
    {
      "name": "SMS Service",
      "tags": [
        "sms-campaign",
        "sms-configuration",
        "sms-contact",
        "sms-send",
        "sms-stats",
        "sms-topic",
        "sms-cost",
        "sms-webhook",
        "sms-private"
      ]
    },
    {
      "name": "Wallet Service",
      "tags": [
        "wallet-project",
        "wallet-images",
        "wallet-tasks",
        "wallet-notifications",
        "wallet-template",
        "wallet-loyalty-pass",
        "wallet-loyalty-template",
        "wallet-offer-pass",
        "wallet-offer-template",
        "wallet-generic-pass",
        "wallet-generic-template"
      ]
    },
    {
      "name": "Stats Service",
      "tags": [
        "stats-service-chat",
        "stats-service-cs",
        "stats-service-report",
        "stats-service-wallet",
        "stats-service-meta"
      ]
    },
    {
      "name": "ChatGen service",
      "tags": [
        "icc-chatgen-gateway-agent",
        "icc-chatgen-gateway-api-tool",
        "icc-chatgen-gateway-configured-custom-tool",
        "icc-chatgen-gateway-conversation",
        "icc-chatgen-gateway-custom-tool",
        "icc-chatgen-gateway-document",
        "icc-chatgen-gateway-file",
        "icc-chatgen-gateway-instance-config",
        "icc-chatgen-gateway-router-agent-tool",
        "icc-chatgen-gateway-router-agent"
      ]
    },
    {
      "name": "AI Assitant service",
      "tags": [
        "ai-generator-campaign"
      ]
    },
    {
      "name": "Meta Service",
      "tags": [
        "meta-cloudapi",
        "meta-configuration",
        "meta-webhook",
        "meta-business",
        "meta-templates",
        "meta-upload"
      ]
    },
    {
      "name": "Push Live Service",
      "tags": [
        "push-live-configuration",
        "push-live-ios-class",
        "push-live-activity",
        "push-live-send"
      ]
    },
    {
      "name": "Pathbot",
      "tags": [
        "pathbot-agents",
        "pathbot-applications",
        "pathbot-documents",
        "pathbot-flows",
        "pathbot-tools",
        "pathbot-nodes",
        "pathbot-ingestion-sources",
        "pathbot-evaluation",
        "pathbot-skills"
      ]
    },
    {
      "name": "Link Service",
      "tags": [
        "link-short-domain"
      ]
    }
  ],
  "servers": [
    {
      "url": "https://api.indigitall.com/v2"
    }
  ],
  "paths": {
    "/cs/journeytemplate/{id}": {
      "get": {
        "tags": [
          "customer-service-customer-journey-template"
        ],
        "summary": "Gets one customer journey template by id",
        "description": "Gets one customer journey template by id",
        "x-eov-operation-handler": "journeyTemplateController",
        "x-gateway-endpoint": "customerService",
        "operationId": "csGetJourneyTemplate",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "schema": {
              "type": "number"
            },
            "required": true,
            "description": "Numeric ID of the journey to get"
          },
          {
            "name": "applicationId",
            "in": "query",
            "description": "customer application id",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CS_JourneyTemplateResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/CS_BadRequestResponse"
          },
          "403": {
            "$ref": "#/components/responses/CS_Forbidden"
          },
          "404": {
            "description": "Customer journey template not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CS_ErrorSchema"
                },
                "example": {
                  "statusCode": 404,
                  "errorCode": "CS_CUSTOMER_JOURNEY_TEMPLATE_NOT_FOUND",
                  "message": "Customer journey template not found"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/CS_ServerErrorResponse"
          },
          "default": {
            "description": "Error 5XX, 4XX",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CS_ErrorSchema"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "Authorization": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "Authorization for accesing endpoints , must be in one of the following format:\n- **Bearer {token}**\n- **ServerKey {key}**\n"
      }
    },
    "schemas": {
      "CS_ErrorSchema": {
        "required": [
          "message",
          "statusCode"
        ],
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "description": "Response code"
          },
          "errorCode": {
            "type": "string",
            "enum": [
              "CS_CUSTOMER_NOT_ENABLED",
              "CS_CUSTOMER_NOT_FOUND",
              "CS_CUSTOMER_ID_IN_USE",
              "CS_CUSTOMER_WITH_NO_FIELDS",
              "CS_CUSTOMER_BAD_FORMAT_FIELD",
              "CS_CUSTOMERS_NOT_FOUND",
              "CS_CUSTOMERS_HAVE_ERRORS",
              "CS_CUSTOMERS_SOME_HAVE_ERRORS",
              "CS_APPLICATION_WITH_NO_FIELDS",
              "CS_CUSTOMER_FIELD_ALREADY_EXISTS",
              "CS_INVALID_CUSTOMER_FIELD_NAME",
              "CS_CUSTOMER_FIELD_NOT_FOUND",
              "CS_API_GATEWAY_TOKEN_NOT_VALID",
              "CS_ERROR_PROCESSING_GATEWAY_TOKEN",
              "CS_AUTHORIZATION_FORMAT_ERROR",
              "CS_NOT_VALID_IP",
              "CS_NOT_VALID_KEY",
              "CS_SERVER_ERROR",
              "CS_TOO_MANY_REQUEST",
              "CS_CAMPAING_ID_NOT_FOUND",
              "CS_CSV_FORMAT_NOT_SUPPORTED",
              "CS_CSV_WITH_NO_CUSTOMERS",
              "CS_CSV_WITH_NO_CUSTOMER_ID_FIELD",
              "CS_CSV_WITH_NO_CUSTOMER_FIELDS",
              "CS_INCORRECT_SCHEDULE_AT_DATE",
              "CS_CUSTOMER_JOURNEY_NOT_FOUND",
              "CS_CUSTOMER_JOURNEY_TEMPLATE_NOT_FOUND",
              "CS_CUSTOMER_JOURNEY_TEMPLATE_DISABLED",
              "CS_FIELD_VALUE_INVALID",
              "CS_FIELD_HISTORY_NOT_ALLOWED",
              "CS_FIELD_AGGREGATION_IS_MANDATORY",
              "CS_FIELD_AGGREGATION_WINDOW_FORBIDDEN",
              "CS_FIELD_AGGREGATION_WINDOW_REQUIRED",
              "CS_FIELD_AGGREGATION_WINDOW_NOT_VALID",
              "CS_FIELD_SOURCE_EVENT_FIELD_NOT_VALID",
              "CS_COMPUTED_ENABLED_REQUIRED",
              "CS_CUSTOMER_JOURNEY_STATE_NOT_FOUND",
              "CS_CUSTOMER_JOURNEY_COULD_NOT_BE_EDITED_AFTER_BE_ENABLED",
              "CS_PARAMETER_MISSING_OR_INVALID",
              "CS_RESOURCE_NOT_FOUND",
              "CS_JOURNEY_NOT_FOUND",
              "CS_JOURNEY_ALREADY_ENABLED_OR_TERMINATED",
              "CS_JOURNEY_ENABLED",
              "CS_JOURNEY_NOT_RUNNING",
              "CS_JOURNEY_INVALID",
              "CS_JOURNEY_CANT_ADD_CUSTOMERS",
              "CS_JOURNEY_STATE_INVALID",
              "CS_FORBIDDEN",
              "CS_BRANCH_STATS_NOT_FOUND",
              "CS_JOURNEY_STATE_STATS_NOT_FOUND",
              "CS_STATS_NOT_FOUND",
              "CS_BAD_REQUEST",
              "CS_INVALID_FILTER",
              "CS_INVALID_ORDER",
              "CS_CUSTOMER_DATA_CSV_EXPORT_NOT_ENABLED",
              "CS_WEBHOOK_TEMPLATE_NOT_FOUND",
              "CS_WEBHOOK_TEMPLATE_BODY_NOT_ALLOWED_FOR_GET",
              "CS_WEBHOOK_TEMPLATE_URL_INVALID",
              "CS_WEBHOOK_TEMPLATE_BODY_INVALID",
              "CS_SEGMENT_NOT_FOUND",
              "CS_SEGMENT_INVALID",
              "CS_SEGMENT_ALREADY_EXISTS",
              "CS_AUDIENCE_LIST_NOT_FOUND",
              "CS_AUDIENCE_LIST_INVALID",
              "CS_AUDIENCE_LIST_ALREADY_EXISTS",
              "CS_CDP_EVENT_NOT_FOUND",
              "CS_CDP_EVENT_ALREADY_EXISTS",
              "CS_CDP_EVENT_TYPE_INVALID",
              "CS_CDP_EVENT_TYPE_RETENTION_DAYS_LIMIT_EXCEEDED",
              "CS_CDP_EVENT_TYPE_EVENT_HISTORY_NOT_ALLOWED",
              "CS_CDP_EVENT_FIELD_LIMIT_REACHED",
              "CS_CDP_EVENT_TEMPLATE_NOT_FOUND",
              "CS_CDP_EVENTS_INGESTION_NOT_ENABLED",
              "CS_CDP_FIELD_AGGREGATED_NOT_ENABLED",
              "CS_INVALID_FIELD_ROLE",
              "CS_FIELD_ROLE_VALUE_TYPE_MISMATCH",
              "CS_MANUAL_COMPUTE_LIMIT_EXCEEDED"
            ],
            "description": "* `CS_CUSTOMER_NOT_ENABLED` - The customer feature is not available for this application\n* `CS_CUSTOMER_NOT_FOUND` - Customer not found\n* `CS_CUSTOMER_ID_IN_USE` - External code is already in use\n* `CS_CUSTOMER_WITH_NO_FIELDS` - This customer id has no custom fields\n* `CS_APPLICATION_WITH_NO_FIELDS` - This application id has no custom fields\n* `CS_CUSTOMER_FIELD_ALREADY_EXISTS` - Customer field already exists\n* `CS_INVALID_CUSTOMER_FIELD_NAME` - Invalid customer field name\n* `CS_CUSTOMER_FIELD_NOT_FOUND` - Customer field name not found\n* `CS_API_GATEWAY_TOKEN_NOT_VALID` - Gateway token is not valid\n* `CS_ERROR_PROCESSING_GATEWAY_TOKEN` - Error processing gateway token\n* `CS_AUTHORIZATION_FORMAT_ERROR` - Authorization is not present or has no right format\n* `CS_NOT_VALID_IP` - IP is not valid\n* `CS_NOT_VALID_KEY` - Key is not valid\n* `CS_SERVER_ERROR` - Server Error\n* `CS_TOO_MANY_REQUEST` - Too many request for your account, try again in ${seconds} seconds\n* `CS_CAMPAING_ID_NOT_FOUND` - Campaign id not found\n* `CS_CSV_FORMAT_NOT_SUPPORTED` - Some error in the csv format\n* `CS_CSV_WITH_NO_CUSTOMERS` - There are no customers in this CSV\n* `CS_CSV_WITH_NO_CUSTOMER_ID_FIELD` - customerId field not found in this CSV\n* `CS_COMPUTED_ENABLED_REQUIRED` - The computedEnabled field is required for computed fields\n* `CS_CSV_WITH_NO_CUSTOMER_FIELDS` - Customer fields not found in headers\n* `CS_INCORRECT_SCHEDULE_AT_DATE` - The date must be greater than the current date\n* `CS_CUSTOMER_JOURNEY_NOT_FOUND` - Customer Journey not found\n* `CS_CUSTOMER_JOURNEY_TEMPLATE_NOT_FOUND` - Customer Journey Template not found\n* `CS_CUSTOMER_JOURNEY_TEMPLATE_DISABLED` - Customer Journey Template is disabled\n* `CS_FIELD_VALUE_INVALID` - The value of a field for a customer has been set to the wrong value or format\n* `CS_FIELD_HISTORY_NOT_ALLOWED` - Field event history not allowed\n* `CS_FIELD_AGGREGATION_IS_MANDATORY` - Field aggregation is mandatory\n* `CS_FIELD_AGGREGATION_WINDOW_FORBIDDEN` - Field aggregation window is forbidden\n* `CS_FIELD_AGGREGATION_WINDOW_REQUIRED` - Field aggregation window is required\n* `CS_FIELD_AGGREGATION_WINDOW_NOT_VALID` - Field aggregation window is not valid format\n* `CS_FIELD_SOURCE_EVENT_FIELD_NOT_VALID` - Field source event field is not valid and required\n* `CS_CUSTOMER_JOURNEY_STATE_NOT_FOUND` - Customer Journey State not found\n* `CS_CUSTOMER_JOURNEY_COULD_NOT_BE_EDITED_AFTER_BE_ENABLED` - Customer Journey could not be edited after be enabled\n* `CS_PARAMETER_MISSING_OR_INVALID` - Some parameter is invalid or missing\n* `CS_RESOURCE_NOT_FOUND` - Resource not found\n* `CS_JOURNEY_NOT_FOUND` - Journey not found\n* `CS_JOURNEY_ALREADY_ENABLED_OR_TERMINATED` - The journey is running or has been running and has already stopped.\n* `CS_JOURNEY_ENABLED` - The journey is running\n* `CS_JOURNEY_NOT_RUNNING` - The journey is not running\n* `CS_JOURNEY_INVALID` - Invalid configuration of journey\n* `CS_JOURNEY_CANT_ADD_CUSTOMERS` - The journey does not allow to add customers\n* `CS_JOURNEY_STATE_INVALID` - Invalid parameters of journey state\n* `CS_FORBIDDEN` - Forbidden\n* `CS_BRANCH_STATS_NOT_FOUND` - Statistics not found\n* `CS_JOURNEY_STATE_STATS_NOT_FOUND` - Statistics not found\n* `CS_STATS_NOT_FOUND` - Statistics not found\n* `CS_BAD_REQUEST` - Bad request\n* `CS_INVALID_FILTER` - Invalid filter\n* `CS_INVALID_ORDER` - Invalid order\n* `CS_CUSTOMER_DATA_CSV_EXPORT_NOT_ENABLED` - Customer data CSV export feature not enabled for this application\n* `CS_WEBHOOK_TEMPLATE_NOT_FOUND` - Webhook template not found\n* `CS_WEBHOOK_TEMPLATE_BODY_NOT_ALLOWED_FOR_GET` - Webhook template body not allowed for GET requests\n* `CS_WEBHOOK_TEMPLATE_URL_INVALID` - Webhook template url is invalid\n* `CS_WEBHOOK_TEMPLATE_BODY_INVALID` - Webhook template body is invalid\n* `CS_SEGMENT_NOT_FOUND` - Segment not found\n* `CS_SEGMENT_INVALID` - Invalid configuration of segment\n* `CS_SEGMENT_ALREADY_EXISTS` - Segment already exists\n* `CS_AUDIENCE_LIST_NOT_FOUND` - Audience list not found\n* `CS_AUDIENCE_LIST_INVALID` - Invalid configuration of audience list\n* `CS_AUDIENCE_LIST_ALREADY_EXISTS` - Audience list already exists\n* `CS_CDP_EVENT_AGGREGATED_NOT_ENABLED` - CDP Event aggregated not enabled\n* `CS_CDP_EVENT_NOT_FOUND` - CDP Event not found\n* `CS_CDP_EVENT_ALREADY_EXISTS` - CDP Event already exists\n* `CS_CDP_EVENT_TYPE_INVALID` - Invalid configuration of CDP Event Type\n* `CS_CDP_EVENT_TYPE_RETENTION_DAYS_LIMIT_EXCEEDED` - CDP Event Type retention days limit exceeded\n* `CS_CDP_EVENT_TYPE_EVENT_HISTORY_NOT_ALLOWED` - CDP Event Type event history not allowed\n* `CS_CDP_EVENT_FIELD_LIMIT_REACHED` - CDP Event Type field limit reached\n* `CS_CDP_EVENT_TEMPLATE_NOT_FOUND` - CDP Event Template not found\n* `CS_CDP_EVENTS_INGESTION_NOT_ENABLED` - CDP Events ingestion not enabled\n* `CS_CDP_FIELD_AGGREGATED_NOT_ENABLED` - CDP Field aggregated not enabled\n* `CS_INVALID_FIELD_ROLE` - Invalid field role value\n* `CS_FIELD_ROLE_VALUE_TYPE_MISMATCH` - Field role requires a different valueType\n* `CS_MANUAL_COMPUTE_LIMIT_EXCEEDED` - Monthly limit of manual compute executions exceeded\n"
          },
          "message": {
            "type": "string",
            "description": "Error message"
          }
        }
      },
      "CS_StateType": {
        "type": "string",
        "enum": [
          "IN_FILTER",
          "IN_LIST",
          "IN_ALL",
          "IN_CUSTOM_EVENT",
          "IN_SEGMENT",
          "ACTION_PUSH_SEND",
          "ACTION_EMAIL_SEND",
          "ACTION_SMS_SEND",
          "ACTION_CHAT_SEND",
          "ACTION_DELAY",
          "ACTION_WEBHOOK",
          "FLOW_PUSH_CLICK",
          "FLOW_SMS",
          "OUT",
          "FLOW_FILTER",
          "FLOW_RANDOM",
          "FLOW_CUSTOM_EVENT",
          "FLOW_EMAIL",
          "FLOW_BEST_PATH",
          "FLOW_CHAT"
        ]
      },
      "CS_StateParams": {
        "type": "object",
        "nullable": true,
        "description": "* Params example for state types: `IN_LIST` and `IN_ALL`\n\n  ```\n  {\n    \"forward\": 2\n  }\n  ```\n\n* Params example for state type: `IN_SEGMENT`\n\n  **Options**:\n\n  - cond: Indicates the field and operation to be verified. Currently, only the segmentId should be selected.\n  - forward: indicates the id of the next journey state if condition is applied\n\n  ```\n  {\n    \"cond\": {\n      \"segmentIds\" : [1],\n    },\n    \"forward\": 2\n  }\n  ```\n\n* Params example for state type: `IN_FILTER`\n\n  **Options**:\n\n  - cond: indicates the field and the operation to check, dateTrunc and datePart both cannot be sent\n  - forward: indicates the id of the next journey state if condition is applied\n  - filterOperator: optional, defines the logical operator between fields or operations inside fields ('AND' or 'OR'). Default: 'AND'\n\n  If field is date type, to check with today, follow birthday example.\n\n  **Operators**:\n\n  - lt -> lower than\n  - gt -> greater than\n  - eq -> equal to\n  - gte -> greater or equal to\n  - lte -> less or equal to\n  - neq -> not equal to\n  - isnull -> is null (the field has no value)\n  - isnotnull -> is not null (the field has any value)\n\n  ```\n  {\n    \"cond\": {\n      \"age\" : {\n        \"gt\": 30,\n        \"lt\": 90,\n        \"filterOperator\": \"AND\"\n      },\n      \"last_login\": {\n        \"isnotnull\": true\n      },\n      \"unsubscribe_date\": {\n        \"isnull\": true\n      },\n      \"birthday\": {\n        \"useActualDate\": {\n          \"active\": true,\n          \"offset\": \"PT0S\",\n          \"operator\": \"eq\",\n          \"timezone\": \"Europe/Madrid\"\n        },\n        \"datePart\": [\n          \"day\",\n          \"month\"\n        ]}\n      },\n    },\n    \"filterOperator\": \"AND\",\n    \"forward\": 2\n  }\n  ```\n\n  Notes:\n  - `isnull`: checks for the absence of a field for a customer.\n  - `isnull`: operator overrides any other operators (gt, eq, etc.) on the same field.\n  - `filterOperator`: optional field that defines how to combine multiple field conditions:\n    - `\"AND\"` (default): customer must match ALL field conditions\n    - `\"OR\"`: customer must match AT LEAST ONE field condition\n    - If only one field is present, filterOperator has no effect\n\n  **Datetime field filters**\n\n  For `datetime` fields, use the `datePart` modifier (preferred) or `dateTrunc` (deprecated).\n  They cannot be combined on the same field.\n\n  **`datePart`** (recommended) – compares specific date parts using pre-computed indexed virtual columns.\n  Accepts an array of part names. Only the following combinations are allowed (order does not matter):\n\n  | `datePart` array | Comparison type |\n  |---|---|\n  | `[\"day\"]` | exact day-of-month match |\n  | `[\"month\"]` | exact month match |\n  | `[\"year\"]` | exact year match |\n  | `[\"month\", \"day\"]` | exact month AND day match |\n  | `[\"year\", \"day\"]` | exact year AND day match |\n  | `[\"year\", \"month\"]` | range covering the entire month |\n  | `[\"year\", \"month\", \"day\"]` | range covering the entire day |\n  | `[\"year\", \"month\", \"day\", \"hour\"]` … up to `[…, \"milliseconds\"]` | range covering the specified period |\n\n  Supported operators: `eq`, `neq`. Any other combination is rejected.\n\n  ```\n  {\n    \"cond\": {\n      \"birthday\": { \"eq\": \"2021-10-25T09:33:50.468Z\", \"datePart\": [\"day\", \"month\"] }\n    },\n    \"forward\": 2\n  }\n  ```\n\n  **`dateTrunc`** ⚠️ **Deprecated** – use `datePart` with the equivalent combination instead.\n  Still supported for backward compatibility. Truncates the field value to the given granularity\n  and compares using `BETWEEN`. Allowed values: `milliseconds`, `second`, `minute`, `hour`, `day`, `month`, `year`.\n\n  **`useActualDate`** – compare against the current system date instead of a fixed value.\n  Can be combined with `datePart` or `dateTrunc`.\n  Fields: `active` (boolean), `operator` (eq/neq/lt/gt/lte/gte), `offset` (optional ISO 8601 duration, e.g. `\"-P5D\"`).\n\n  ```\n  {\n    \"cond\": {\n      \"birthday\": {\n        \"useActualDate\": { \"active\": true, \"offset\": \"-P5D\", \"operator\": \"eq\" },\n        \"datePart\": [\"day\", \"month\"]\n      }\n    },\n    \"forward\": 2\n  }\n  ```\n\n  **Boolean field filters**\n\n  For `boolean` fields, use `eq` / `neq` with a boolean value (`true` / `false`), or `isnull` / `isnotnull`\n  to check whether the field has a value. Filtering by `eq: false` matches **only** customers whose field is\n  explicitly `false`; customers without a value (null / absent) are **not** returned. Use `isnull` to match\n  customers that have no value for the field.\n\n  ```\n  {\n    \"cond\": {\n      \"premium\": { \"eq\": true }\n    },\n    \"forward\": 2\n  }\n  ```\n\n\n* Params example for state type: `IN_CUSTOM_EVENT`\n\n  ```\n  {\n    \"eventName\": \"test_event\",\n    \"forward\": 2\n  }\n  ```\n\n* Params example for state type `ACTION_PUSH_SEND`\n\n  **Options**:\n\n  - action: indicates the action to do, in the example send a push\n  - forward: indicates the id of the next journey state\n\n  ```\n  {\n    \"action\": {\n      \"campaignId\" : 1\n    },\n    \"forward\": 3\n  }\n  ```\n\n* Params example for state type `ACTION_EMAIL_SEND`\n\n  **Options**:\n\n  - action: indicates the action to do, in the example send a email\n  - forward: indicates the id of the next journey state\n\n  ```\n  {\n    \"action\": {\n      \"campaignId\" : 1\n    },\n    \"forward\": 3\n  }\n  ```\n\n* Params example for state type `ACTION_SMS_SEND`\n\n  **Options**:\n\n  - action: indicates the action to do, in the example send a sms\n  - forward: indicates the id of the next journey state\n  - The phone number can be provided in two ways:\n    1. Using a single field `phoneE164FieldId` for the complete international number.\n    2. Using two separate fields: `prefixFieldId` and `phoneNumberFieldId`.\n  - sms-api priorize the use of `phoneE164FieldId` over `prefixFieldId` and `phoneNumberFieldId` if both are provided.\n\n  ```\n  {\n    \"action\":{\n        \"campaignId\":66,\n        \"phoneNumberFieldId\": 151,\n        \"prefixFieldId\": 152,\n        \"phoneE164FieldId\": 153,\n        \"customValues\": [\n            {\n                \"fieldId\": 143,\n                \"campaignKey\": \"test\"\n            },\n            {\n                \"contextKey\": \"offerBank\",\n                \"campaignKey\": \"testOfferBank\"\n            }\n        ]\n        },\n        \"forward\": 8526\n    }\n  ```\n\n* Params example for state type `ACTION_CHAT_SEND`\n\n  **Options**:\n\n  - action: indicates the action to do, in the example send a chat message\n  - forward: indicates the id of the next journey state\n  - The phone number can be provided in two ways:\n    1. Using a single field `phoneNumberFieldId` for the complete international number.\n    2. Using two separate fields: `prefixFieldId` and `phoneFieldId`.\n\n  ```\n  {\n    \"action\":{\n      \"phoneNumberFieldId\": 151,\n      // or\n      // \"prefixFieldId\": 152,\n      // \"phoneFieldId\": 151,\n      \"prefixFieldId\": 152,\n      \"context\": {},\n      \"messages\": [\n          {\n              \"to\": \"34661819101\",\n              \"channel\": \"whatsapp\",\n              \"sendType\": \"operator\",\n              \"contentType\": \"text\",\n              \"content\": {\n                  \"body\": \"test chat\"\n              }\n          }\n      ]\n    },\n    \"forward\": 8526\n    }\n  ```\n\n* Params example for state type `ACTION_WEBHOOK`\n\n  **Options**:\n\n  - action: indicates the action to do, in the example use a webhook template id to send request\n  - forward: indicates the id of the next journey state\n\n  ```\n  {\n    \"action\": {\n      \"webhookTemplateId\" : 1\n    },\n    \"forward\": 3\n  }\n  ```\n\n* Params example for state type `ACTION_DELAY`\n\n  Delays customer progression to the next state. Supports four modes:\n\n  **`waitDuration`** - Waits for a relative duration (ISO 8601):\n\n  ```\n  {\n    \"wait\": {\n      \"mode\": \"waitDuration\",\n      \"time\": \"P5D\",\n      \"skipDaysOfWeek\": [0, 6],\n      \"specifiedTime\": \"10:00\",\n      \"timeZone\": \"Europe/Madrid\"\n    },\n    \"forward\": 5\n  }\n  ```\n\n  **`waitUntilDate`** - Waits until an absolute date/time:\n\n  ```\n  {\n    \"wait\": {\n      \"mode\": \"waitUntilDate\",\n      \"date\": \"2024-12-31T09:00:00.000Z\"\n    },\n    \"forward\": 5\n  }\n  ```\n\n  **`waitByAttribute`** - Waits based on a datetime customer field:\n\n  ```\n  {\n    \"wait\": {\n      \"mode\": \"waitByAttribute\",\n      \"fieldId\": 33,\n      \"dateTrunc\": \"minute\",\n      \"delay\": \"-P1D\",\n      \"skipDaysOfWeek\": [0, 6],\n      \"specifiedTime\": \"10:00\",\n      \"timeZone\": \"Europe/Madrid\"\n    },\n    \"forward\": 5\n  }\n  ```\n\n  **`waitByContext`** - Waits based on a duration stored in the customer's context:\n\n  ```\n  {\n    \"wait\": {\n      \"mode\": \"waitByContext\",\n      \"contextKey\": \"offerDelay\",\n      \"defaultDelay\": \"P1D\",\n      \"skipDaysOfWeek\": [0, 6],\n      \"specifiedTime\": \"10:00\",\n      \"timeZone\": \"Europe/Madrid\"\n    },\n    \"forward\": 5\n  }\n  ```\n\n  **Common optional fields**:\n\n  - `skipDaysOfWeek`: Array of weekday numbers to skip (0=Sunday, 6=Saturday). Max 6 values.\n  - `specifiedTime`: Exact time of day to trigger the forward, in `HH:MM` format (00:00–23:59).\n  - `timeZone`: Timezone for `specifiedTime` (e.g. `Europe/Madrid`). Must be a valid moment-timezone value. If not provided, defaults to UTC.\n\n\n* Params example for state type `FLOW_PUSH_CLICK`\n\n  **Notes**\n\n  - timeout.time: formatted with ISO_8601 Time_intervals\n\n  ```\n  {\n    \"click\": {\n      \"forward\": 5\n    },\n    \"timeout\": {\n      \"time\": \"P5D\",\n      \"forward\": 4\n    }\n  }\n  ```\n\n* Params example for state type `FLOW_SMS`\n\n  **Notes**\n\n  - timeout.time: formatted with ISO_8601 Time_intervals\n\n  ```\n  {\n    \"click\": [\n      \"url\": \"google.es\",\n      \"urlMatchMode\": \"CONTAINS\",\n      \"forward\": 5\n    ],\n    \"timeout\": {\n      \"time\": \"P5D\",\n      \"forward\": 4\n    }\n  }\n  ```\n\n* Params example for state type `FLOW_FILTER`\n\n  **Notes**\n\n  - Conditions (`cond`) has the same format as the one used in the IN_FILTER state\n  - If field is date type, to check with today, follow birthday example.\n  - filterType: Optional parameter. It is used to distinguish which type of filter will be applied. Field is stored and displayed only, not used in logic\n  - filterOperator: optional, defines the logical operator between fields or between operations inside of fields ('AND' or 'OR'). Default: 'AND'\n\n  ```\n  {\n    \"filter\": [\n      {\n        \"cond\": {\n          \"age\": {\n            \"gt\": 30,\n            \"lt\": 90,\n            \"filterOperator\": \"AND\"\n          },\n          \"hair\": {\n            \"eq\": \"bold\"\n          }\n        },\n        \"filterOperator\": \"AND\",\n        \"forward\": 5\n      },\n      {\n        \"cond\": {\n          \"birthday\": {\n            \"useActualDate\": {\n              \"active\": true,\n              \"offset\": \"PT0S\",\n              \"operator\": \"eq\",\n              \"timezone\": \"Europe/Madrid\"\n            },\n            \"datePart\": [\n              \"day\",\n              \"month\"\n            ]}\n          },\n          \"hair\": {\n            \"eq\": \"long hair\"\n          }\n        },\n        \"filterOperator\": \"OR\",\n        \"forward\": 8\n      },\n    ],\n    \"filterType\": \"or\"\n  }\n  ```\n\n* Params example for state type `FLOW_RANDOM`\n\n  **Notes**\n\n  - weight: Optional parameter. If not indicated, the customers for each branch will be distributed proportionally.\n  - name: Optional parameter. Name for each branch. If not indicated, it will be auto-generated.\n\n  ```\n  {\n    \"random\":[\n      {\n        \"forward\":5,\n        \"weight\":0.2,\n        \"name\":\"my branch 1\"\n      },\n      {\n        \"forward\":6,\n        \"weigth\":0.8,\n        \"name\":\"my branch 2\"\n      }\n    ]\n  }\n  ```\n\n* Params example for state type `FLOW_CUSTOM_EVENT`\n\n  ```\n    {\n      \"customEvent\": {\n        \"eventName\": \"test_event_name\",\n        \"forward\": 5,\n      },\n      \"timeout\" : {\n        \"time\" : \"P5D\",\n        \"forward\": 4,\n      }\n    }\n  ```\n * Params example for state type `FLOW_BEST_PATH`\n\n  ```\n    {\n      \"mode\": \"BEST_CHANNEL|BEST_OPTION|TEST_AB\"\n      \"path\": [\n        {\n          \"forward\": 5\n        },\n        {\n          \"forward\": 6\n        }\n      ]\n    }\n\n  ```\n * Params example for state type `FLOW_CHAT`\n\n  **Notes**\n\n  - timeout.time: formatted with ISO_8601 Time_intervals\n\n  ```\n  {\n    \"sent\": [\n      forward: 5,\n    ],\n    \"timeout\": {\n      \"time\": \"P5D\",\n      \"forward\": 4\n    }\n  }\n  ```\n"
      },
      "CS_JourneyTemplateResponse": {
        "required": [
          "data",
          "message",
          "statusCode"
        ],
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "description": "Response code"
          },
          "message": {
            "type": "string",
            "description": "Response message, usually OK"
          },
          "data": {
            "$ref": "#/components/schemas/CS_JourneyTemplateObject"
          }
        }
      },
      "CS_JourneyTemplateObject": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "integer",
            "description": "customer journey template identifier"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "description": "customer journey template description"
          },
          "previewImageUrl": {
            "description": "Preview image url of the new journey to be cloned.",
            "type": "string"
          },
          "tags": {
            "description": "Tags of the new journey to be cloned.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "channels": {
            "description": "Channels of the new journey to be cloned.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "push",
                "email",
                "sms",
                "chat"
              ]
            }
          },
          "enabled": {
            "type": "boolean"
          },
          "states": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CS_JourneyTemplateStateObject"
            }
          },
          "inputType": {
            "description": "the input type of the journey",
            "type": "string",
            "nullable": true,
            "enum": [
              "IN_FILTER",
              "IN_LIST",
              "IN_ALL",
              "IN_CUSTOM_EVENT",
              "IN_SEGMENT",
              null
            ]
          }
        }
      },
      "CS_JourneyTemplateStateObject": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "customer journey template state identifier"
          },
          "journeyTemplateId": {
            "type": "integer",
            "description": "customer journey template identifier"
          },
          "stateType": {
            "$ref": "#/components/schemas/CS_StateType"
          },
          "params": {
            "$ref": "#/components/schemas/CS_StateParams"
          }
        }
      }
    },
    "responses": {
      "CS_ServerErrorResponse": {
        "description": "Server error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CS_ErrorSchema"
            },
            "example": {
              "statusCode": 500,
              "errorCode": "CS_SERVER_ERROR",
              "message": "Server error"
            }
          }
        }
      },
      "CS_BadRequestResponse": {
        "description": "Parameter is missing or invalid",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CS_ErrorSchema"
            },
            "example": {
              "statusCode": 400,
              "errorCode": "CS_PARAMETER_MISSING_OR_INVALID",
              "message": "Parameter is missing or invalid"
            }
          }
        }
      },
      "CS_Forbidden": {
        "description": "Operation forbidden for your user",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CS_ErrorSchema"
            },
            "example": {
              "statusCode": 403,
              "errorCode": "CS_FORBIDDEN",
              "message": "Operation forbidden"
            }
          }
        }
      }
    }
  }
}
````