Skip to main content

API Changelog

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

2026-06-30 Webhooks API

  • Event replay can now re-run the JSONata transform: POST /v1/webhooks/configs/{configId}/events/{eventId}/replay and .../events/replay-batch accept an optional reapply_transform flag that reconstructs the original pre-transform input and re-runs the full delivery pipeline (default false, which resends the post-transform payload as-is)
  • Webhook event responses now include original_payload (the raw pre-transform input, when available), can_reapply_transform, and can_reapply_transform_reason; single-event replay can now return 422 when the original input cannot be reconstructed

2026-06-29 Message API

  • PUT /v1/message/messages can now return 409 Conflict when a draft has been edited by someone else since it was loaded, including the current server version of the message so clients can reload and retry
  • New optional updated_by field added to message and thread responses, recording the user who last edited the message

2026-06-29 Portal User Entity

  • New read-only first_login and last_login date-time attributes added, recording when a portal user first and most recently signed in

2026-06-26 Audit Log API

  • POST /v1/logs now accepts resource_id, resource_type, and action filters for narrowing audit-log searches to the resource an event targets and its semantic action name (e.g. blueprint.resource_added); the same three fields are now returned on each log record

2026-06-26 Customer Portal API

  • New endpoints added to read and update a portal's mobile app configuration (GET/PUT /v1/portal/mobile-config), covering app branding, iOS and Android settings, and over-the-air (OTA) update settings
  • New POST /v2/portal/entity/{slug} and PATCH /v2/portal/entity/{slug}/{id} endpoints added for creating and updating entities in the portal context

2026-06-26 Integration Toolkit API

  • New optional prevent_indirect_serving field added to FileProxy use case configuration; when true, files too large to be served directly in the proxy response are rejected instead of being served via a temporary S3 redirect, so files never transit epilot's temporary storage

2026-06-25 Entity API

  • New optional q query parameter added to GET /v1/entity/views for free-text searching saved views by name

2026-06-25 Calendar API

  • New DELETE /v1/calendar/sources/outlook/{calendar_id} endpoint added for disconnecting a previously connected Outlook calendar

2026-06-25 Snapshot API

  • New endpoints added to schedule recurring organization snapshots — read, create or update, and delete a per-organization snapshot schedule (GET/PUT/DELETE /v1/org-snapshot-schedule) with a cron expression, timezone, retention window, and excluded resource types

2026-06-25 Integration Toolkit API

  • New integration notification-monitoring endpoints added: GET /v2/integrations/{integrationId}/notifications/history (paginated history of fired and suppressed notifications), GET /v2/integrations/{integrationId}/notifications/status (live per-rule alert state and baseline bands), and POST /v2/integrations/{integrationId}/notifications/test (send a test notification to the calling user)
  • Integration settings now carry an optional notifications configuration object (recipients, delivery channels, alert rules, and digest schedule) on the v1 and v2 create, update, and read endpoints

2026-06-24 File API

  • AI file summaries are now managed as asynchronous jobs: new GET /v1/files/{id}/summary returns the current summary text and status, POST /v1/files/{id}/summary-jobs creates (or returns) the current summary job, and GET /v1/files/{id}/summary-jobs/current and GET /v1/files/{id}/summary-jobs/{job_id} poll job status; the summary response now exposes per-language preview_summary_de/preview_summary_en and short_summary_de/short_summary_en fields
  • The summary_status field was removed from file response objects — read summary state from the new summary endpoints instead (breaking)

2026-06-24 Workflows Execution API

  • New optional read-only error_reason field added to the schedule (DelayedSchedule/RelativeSchedule) of automation and decision tasks across flow execution responses; it is populated when scheduling the task failed (e.g. the referenced date attribute is empty or the resolved fire time is already in the past) and cleared once the task is successfully re-armed

2026-06-24 Event: Location Move Requested

  • The single meter_counter field was replaced by a meter_counters array, so moves involving multiple meter counters are now fully represented (breaking)

2026-06-22 Email Template API

  • POST /v1/email-template/templates/{id}:convertToBuilder now accepts an optional as_copy flag (with an optional name) to convert a template to the visual builder as a new copy, leaving the original template unchanged

2026-06-22 SSO API

  • POST /v1/sso/public/login responses now include an optional role_assignment object, reporting the roles assigned to the user by the SSO provider's role mapping and whether they changed during this login

2026-06-19 Dashboard API

  • New Insights resource added for managing reusable saved charts independently of dashboards: GET/POST /v1/dashboard/insights and GET/PUT/PATCH/DELETE /v1/dashboard/insights/{id}
  • New PATCH /v1/dashboard/dashboards/{id} endpoint added for partially updating a dashboard
  • Dashboards and insights now carry ownership and sharing metadata (owners, shared_with, org_access); sharing is managed via the new PATCH operations and only owners may change it
  • Dashboard tiles can now reference a saved insight via insight_id, in addition to the existing inline visualisation

2026-06-19 Workflows Execution API

  • New optional outcome field added to AI agent task responses, exposing the server-computed result of the agent execution (e.g. assigned, recommended, no_eligible_partner, missing_input)

2026-06-18 Email Settings API

  • POST /v2/outlook/mailbox/connect now accepts new optional fields: name (sender name for the mailbox), user_ids and group_ids (users and groups the mailbox is available to by default), and default_signature_id

2026-06-17 ERP Integration API

  • POST /v1/secure-proxy now returns a structured error body on 502 (a required message category plus optional code and reason), so clients can distinguish an upstream-side failure — TLS/certificate, DNS, connection refused/reset, or timeout — from an epilot-side one; successful upstream responses still pass through their original status and body unchanged

2026-06-17 Targeting API

  • automation_status query parameter on GET /v1/campaign/{campaign_id}/recipients changed from a single-value enum to a repeatable array parameter (breaking)
  • POST /v1/campaign:setup no longer requires automation_id on the email channel and accepts a new optional template_id, allowing the flow to be created from a template instead of a pre-selected automation

2026-06-16 Blueprint API

  • New GET /v3/blueprint-manifest/blueprints/{blueprint_id}/deployments/{job_id}/restore-preview endpoint added, returning the predicted outcome of reverting a deployment without making any changes
  • POST /v3/blueprint-manifest/blueprint-instances/{blueprint_instance_id}:restore endpoint removed; deployment restore now runs only via POST .../blueprints/{blueprint_id}/deployments/{job_id}:restore (breaking)

2026-06-16 Snapshot API

  • New POST /v1/snapshots:capture-org endpoint added for asynchronously snapshotting the caller's entire organization
  • POST /v1/snapshots/{id}:restore now accepts an optional exclude_target_ids array (target IDs the caller wants left untouched during restore)
  • The preserve_modified option was removed from POST /v1/snapshots/{id}:restore, and the related skipped arrays (and SkippedResource schema) were removed from restore and capture results on GET /v1/snapshots and GET /v1/snapshots/{id}; drift-based skipping is no longer performed during restore (breaking)

2026-06-16 User API

  • New public password-reset endpoints added: POST /v2/users/public/requestPasswordReset and POST /v2/users/public/resetPassword (unauthenticated, rate-limited), plus an authenticated POST /v2/users:sendPasswordReset for triggering a reset email for a user in the caller's organization

2026-06-15 Email Template API

  • New GET /v1/email-template/templates/{id}:references endpoint added, returning where a template is currently referenced

2026-06-15 Integration Toolkit API

  • New endpoints added for managing outbound message queues: POST /v1/integrations/{integrationId}/outbound/messages/poll, .../ack, and .../unblock, plus GET /v1/integrations/{integrationId}/outbound/messages/dlq and POST .../outbound/messages/dlq/redrive for dead-letter handling
  • Outbound use case delivery configuration was restructured into a discriminated union of WebhookDeliveryConfig and the new PollDeliveryConfig; the previous flat type, webhook_id, webhook_name, and webhook_url delivery fields were removed (breaking)