Skip to main content

API Changelog

Breaking changes, new features, and significant updates to epilot APIs. Subscribe via RSS

2026-10-02 Submission API

  • GET /v1/submission/nonce/{nonce_id} now responds with an object containing a required exists flag and an optional nonce instead of returning the nonce directly (breaking)

2026-10-01 Blueprint Manifest API

  • Blueprint jobs can now fail with the new workflow_quota_reached error code when installing would exceed the organization's workflow limit, with new optional data.current, data.max_allowed, and data.planned fields describing the quota โ€” returned wherever blueprint job errors are read, so consumers must be prepared for this additional error code

2026-09-30 Blueprint Manifest API

  • Email signatures and shared inboxes can now be included in blueprints through the new email_signature and shared_inbox resource types โ€” accepted when adding blueprint resources and creating exports, and returned wherever blueprint resources, manifests, and jobs are read, so consumers must be prepared for these additional resource types

2026-09-30 Email Settings API

  • DELETE /v1/email-settings now responds with 204 and no content instead of 200

2026-09-30 Integration Address API

  • New GET /v1/integration/location/{country}/enrich endpoint was added for enriching location data for a country

2026-09-30 Permissions API

  • Roles can now be scoped to a portal through a new optional portal_id field โ€” accepted on POST /v1/permissions/roles and PUT /v1/permissions/roles/{roleId} and returned wherever roles are read

2026-09-29 Entity API

  • The zipcode and zipcode_town values of conditions[].format on entity schemas were renamed to postal_code and postal_code_city โ€” affecting PUT /v1/entity/schemas/{slug} and everywhere entity schemas are read (breaking)

2026-09-29 Integration Toolkit API

  • New POST /v1/integrations/{integrationId}/outbound/mapping-simulation endpoint was added for simulating outbound mappings
  • Dead-lettered outbound messages can now be redriven with the current mapping re-applied through a new optional reapply_mapping field on POST /v1/integrations/{integrationId}/outbound/messages/dlq/redrive โ€” redrive results can now return the new mapping_failed status together with a mapping_error, so consumers must be prepared for this additional status
  • POST /v2/integrations/{integrationId}/monitoring/stats can now filter by correlation through new optional correlation_id and correlation_ids fields, and group results by the new correlation_id value of group_by
  • New GET /v2/erp/imports/{importId}/download and GET /v2/erp/imports/{importId}/preview endpoints were added for downloading and previewing an import
  • validation.entity_details_truncated was removed from import responses on all /v2/erp/imports endpoints (breaking)

2026-09-28 Workflows Definition API

  • Flow templates can now define how contexts are handled through a new optional context_settings field, and automation tasks can attach their output to contexts through a new optional tasks[].automation_config.output_context.attach_to_contexts field โ€” both accepted on POST /v2/flows/templates and PUT /v2/flows/templates/{flowId} and returned wherever flow templates are read

2026-09-28 Workflows Execution API

  • Flow executions can now be kept in the background: new optional visibility and visible_on fields control where an execution is shown โ€” accepted on PATCH /v2/flows/executions/{execution_id} and returned wherever flow executions are read โ€” and POST /v2/flows/executions:search accepts a new optional include_background flag for including background executions in the results

2026-09-25 Entity API

  • New GET /v1/entity/schemas/{slug}/head endpoint was added for reading the latest version of an entity schema
  • PUT /v1/entity/schemas/{slug} now supports safe concurrent updates: new optional base_version and base_updated_at query parameters name the schema version the update is based on, and the endpoint can respond with 409 when the schema was changed in the meantime

2026-09-25 Integration Toolkit API

  • POST /v1/erp/updates/events, POST /v2/erp/updates/events, and POST /v3/erp/updates/events can now respond with 429 when too many requests are made

2026-09-24 Workflows Execution API

  • loop_config.crt_iterations and loop_config.max_iterations on phases and tasks are now deprecated and will be removed in a future version โ€” affecting everywhere flow executions, phases, and tasks are read

2026-09-23 Integration Toolkit API

  • Conditional entity mappings no longer take conditional.folds; the rows a conditional mapping is built from are now described by a new required conditional.from_rows instead โ€” affecting use case and integration create/update endpoints, POST /v1/erp/updates/direct_simulation, the mapping simulation endpoints, and everywhere use cases and integrations are read (breaking)
  • Import jobs can now fail with the new CHUNK_TOO_LARGE error code, and validation reports the new issue codes CONDITIONAL_TARGET_MODE_UNSUPPORTED and GROUPING_KEY_IS_SORT_COLUMN, replacing GROUPING_KEY_IS_FOLD_COLUMN โ€” returned by all /v2/erp/imports endpoints

2026-09-23 Journey Config API

  • Journey steps can now be shown to guest users through a new optional steps[].guestVisible field โ€” accepted when creating or updating a journey configuration or revision and returned wherever journey configurations are read

2026-09-22 Workflows Definition API

  • edges[].end_type was removed from flow templates: it is no longer accepted by POST /v2/flows/templates and PUT /v2/flows/templates/{flowId} and no longer returned wherever flow templates are read (breaking)

2026-09-22 Workflows Execution API

  • edges[].end_type was removed from flow executions: it is no longer returned wherever flow executions are read (breaking)
  • Workflow stages can now report that they were never reached: stages[].status returns the new NOT_REACHED value from POST /v2/flows/executions:portal-search and POST /v2/flows/executions:portal-search-batch โ€” so consumers must be prepared for this additional status
  • Execution contexts now report by which task they were added, and when and by which task they were promoted or demoted, through new optional contexts[].added_by_task_id, contexts[].promoted_at, contexts[].promoted_by_task_id, and contexts[].demoted_by_task_id fields โ€” accepted on POST /v2/flows/executions and PATCH /v2/flows/executions/{execution_id} and returned wherever flow executions are read
  • Automations can now write their result into a context through a new optional automation_config.output_context field on a task and on the trigger โ€” accepted on POST /v2/flows/executions, POST /v2/flows/executions/{execution_id}/tasks, and PATCH /v2/flows/executions/{execution_id}/tasks/{task_id} and returned wherever flow executions are read
  • Task conditions can now be evaluated against the main context: tasks[].conditions[].statements[].source.origin_type returns the new main_context value โ€” so consumers must be prepared for this additional value

2026-09-21 Automation API

  • New POST /v1/automation/journey-context:usages endpoint was added for reading where a journey context is used
  • Automations can now be executed with inputs for their actions, through a new optional action_inputs field โ€” accepted on POST /v1/automation/executions and returned wherever executions are read
  • Action attachments can now be narrowed down by file name: new optional actions[].config.attachments[].source_filter.filename and source_filter.filename_pattern fields โ€” accepted on POST /v1/automation/flows and PUT /v1/automation/flows/{flow_id} and returned wherever flows and executions are read

2026-09-21 Pricing API

  • POST /v1/public/product-recommendations now reports where a recommendation came from through a new optional source field

2026-09-21 Workflows Definition API

  • New POST /v1/workflows-definition/journey-context:usages endpoint was added for reading where a journey context is used
  • Automation tasks in a flow template can now ask for a note when they are executed, restrict which closing reasons may be picked, and have the email they send reviewed before it goes out, through new optional tasks[].automation_config.allow_execution_note, automation_config.eligible_closing_reason_ids, and automation_config.email_review fields โ€” accepted on POST /v2/flows/templates and PUT /v2/flows/templates/{flowId} and returned wherever flow templates are read
  • POST /v1/workflows/definitions can now respond with 409 when the definition conflicts with an existing one

2026-09-21 Workflows Execution API

  • The email an automation task sends can now be reviewed before it goes out: new GET /v2/flows/executions/{execution_id}/tasks/{task_id}/email-preview endpoint for previewing that email, together with a new optional automation_config.email_review field โ€” accepted on POST /v2/flows/executions, POST /v2/flows/executions/{execution_id}/tasks, and PATCH /v2/flows/executions/{execution_id}/tasks/{task_id} and returned wherever flow executions are read
  • Automation tasks can now ask for a note when they are executed and restrict which closing reasons may be picked, through new optional automation_config.allow_execution_note and automation_config.eligible_closing_reason_ids fields โ€” accepted on POST /v2/flows/executions, POST /v2/flows/executions/{execution_id}/tasks, and PATCH /v2/flows/executions/{execution_id}/tasks/{task_id} and returned wherever flow executions are read
  • POST /v2/flows/executions/{execution_id}/tasks/{task_id}/automation:run now accepts an optional request body, and it and POST /v2/flows/executions/{execution_id}/tasks/{task_id}/schedule/run-now can respond with 409 when the run conflicts with the current state

2026-09-18 Audit Log API

  • Audit log records now carry a visibility: a new optional visibility field is accepted on POST /v1/logs for narrowing a search and returned on each record, and GET /v1/logs/{logId} accepts a matching optional visibility query parameter

2026-09-18 Journey Config API

  • Journey environment variables can now hold a list of links: type returns the new List<Link> value with a matching value shape, and GET /v1/journey/environment-variables can additionally return a map value shape โ€” so consumers reading GET /v1/journey/environment-variables and GET /v1/journey/configuration/{id}/environment must be prepared for these additional value shapes

2026-09-17 Blueprint Manifest API

  • The blueprint patch endpoints were removed: GET and POST /v2/blueprint-manifest/blueprints/{blueprint_id}/patches, GET /v2/blueprint-manifest/blueprints/{blueprint_id}/patches/{patch_id}, POST /v2/blueprint-manifest/blueprints/{blueprint_id}/patches:detect, POST /v2/blueprint-manifest/blueprints/{blueprint_id}/patches/{patch_id}:apply, and POST /v2/blueprint-manifest/blueprints/{blueprint_id}/patches/{patch_id}/orgs/{org_id}:retry (breaking)
  • The v2 blueprint install, export, and publish endpoints were removed: POST /v2/blueprint-manifest/blueprint:install, POST /v2/blueprint-manifest/blueprints/{blueprint_id}:export, and POST /v2/blueprint-manifest/blueprints:publish (breaking)
  • POST /v3/blueprint-manifest/blueprints/{blueprint_id}:publish now accepts optional name, slug, and version fields for the blueprint being published

2026-09-17 Document API

  • New POST /v2/templates:validate endpoint was added for validating a document template