# Gleap Documentation ## Docs - [Introduction](https://docs.gleap.io/introduction.md): Welcome to Gleap’s new documentation. - [Introduction](https://docs.gleap.io/documentation/javascript/README.md) - [User identity](https://docs.gleap.io/documentation/javascript/user-identity.md) - [Callbacks](https://docs.gleap.io/documentation/javascript/events.md) - [AI chatbar](https://docs.gleap.io/documentation/javascript/aichatbar.md) - [Frontend tools](https://docs.gleap.io/documentation/javascript/aitools.md) - [Replays](https://docs.gleap.io/documentation/javascript/replays.md) - [Forms](https://docs.gleap.io/documentation/javascript/feedback-flows.md) - [Feedback button](https://docs.gleap.io/documentation/javascript/feedback-button.md) - [Push notifications](https://docs.gleap.io/documentation/javascript/push-notifications.md) - [In-app notifications](https://docs.gleap.io/documentation/javascript/in-app-push-notifications.md) - [Audio recording](https://docs.gleap.io/documentation/javascript/audio-recording.md) - [Console logs](https://docs.gleap.io/documentation/javascript/console-logs.md) - [Custom actions](https://docs.gleap.io/documentation/javascript/custom-actions.md) - [Ticket attributes](https://docs.gleap.io/documentation/javascript/ticket-attributes.md) - [Custom data](https://docs.gleap.io/documentation/javascript/custom-data.md) - [Track pages](https://docs.gleap.io/documentation/javascript/track-pages.md) - [Track events](https://docs.gleap.io/documentation/javascript/track-events.md) - [Tags](https://docs.gleap.io/documentation/javascript/tags.md) - [Custom URL handler](https://docs.gleap.io/documentation/javascript/custom-url-handler.md) - [Network logs](https://docs.gleap.io/documentation/javascript/network-logs.md) - [Translations](https://docs.gleap.io/documentation/javascript/translations.md) - [Widget control](https://docs.gleap.io/documentation/javascript/widget-control-and-workflows.md) - [Prefill the widget form](https://docs.gleap.io/documentation/javascript/prefill-form-data.md) - [Privacy controls](https://docs.gleap.io/documentation/javascript/suppressing-personal-data.md) - [Cookies](https://docs.gleap.io/documentation/javascript/cookies.md) - [Environment](https://docs.gleap.io/documentation/javascript/environment.md) - [Content Security Policy (CSP)](https://docs.gleap.io/documentation/javascript/content-security-policy.md) - [Rendering issues](https://docs.gleap.io/documentation/javascript/rendering-issues.md) - [Conversations](https://docs.gleap.io/documentation/javascript/conversations.md) - [Feature requests](https://docs.gleap.io/documentation/javascript/feature-requests.md) - [Help center](https://docs.gleap.io/documentation/javascript/helpcenter.md) - [Release notes & news](https://docs.gleap.io/documentation/javascript/release-notes-and-news.md) - [Surveys](https://docs.gleap.io/documentation/javascript/surveys.md) - [Checklists](https://docs.gleap.io/documentation/javascript/checklists.md) - [Product tours](https://docs.gleap.io/documentation/javascript/producttours.md) - [Checklist UI component](https://docs.gleap.io/documentation/javascript/checklists-ui-component.md) - [AI Agent UI component](https://docs.gleap.io/documentation/javascript/ai-agents-ui-component.md) - [Introducing](https://docs.gleap.io/documentation/ios/README.md) - [User identity](https://docs.gleap.io/documentation/ios/user-identity.md) - [Callbacks](https://docs.gleap.io/documentation/ios/events.md) - [Frontend tools](https://docs.gleap.io/documentation/ios/aitools.md) - [Forms](https://docs.gleap.io/documentation/ios/feedback-flows.md) - [Feedback button](https://docs.gleap.io/documentation/ios/feedback-button.md) - [Push notifications](https://docs.gleap.io/documentation/ios/push-notifications.md) - [In-app notifications](https://docs.gleap.io/documentation/ios/in-app-push-notifications.md) - [Audio recording](https://docs.gleap.io/documentation/ios/audio-recording.md) - [Console logs](https://docs.gleap.io/documentation/ios/console-logs.md) - [Custom actions](https://docs.gleap.io/documentation/ios/custom-actions.md) - [Ticket attributes](https://docs.gleap.io/documentation/ios/ticket-attributes.md) - [Custom data](https://docs.gleap.io/documentation/ios/custom-data.md) - [Track pages](https://docs.gleap.io/documentation/ios/track-pages.md) - [Tags](https://docs.gleap.io/documentation/ios/tags.md) - [Custom URL handler](https://docs.gleap.io/documentation/ios/custom-url-handler.md) - [Network logs](https://docs.gleap.io/documentation/ios/network-logs.md) - [Translations](https://docs.gleap.io/documentation/ios/translations.md) - [Prefill the widget form](https://docs.gleap.io/documentation/ios/prefill-form-data.md) - [Conversations](https://docs.gleap.io/documentation/ios/conversations.md) - [Feature requests](https://docs.gleap.io/documentation/ios/feature-requests.md) - [Help center](https://docs.gleap.io/documentation/ios/helpcenter.md) - [Release notes & news](https://docs.gleap.io/documentation/ios/release-notes-and-news.md) - [Surveys](https://docs.gleap.io/documentation/ios/surveys.md) - [Checklists](https://docs.gleap.io/documentation/ios/checklists.md) - [Introducing](https://docs.gleap.io/documentation/android/README.md) - [User identity](https://docs.gleap.io/documentation/android/user-identity.md) - [Callbacks](https://docs.gleap.io/documentation/android/events.md) - [Frontend tools](https://docs.gleap.io/documentation/android/aitools.md) - [Forms](https://docs.gleap.io/documentation/android/feedback-flows.md) - [Feedback button](https://docs.gleap.io/documentation/android/feedback-button.md) - [Push notifications](https://docs.gleap.io/documentation/android/push-notifications.md) - [In-app notifications](https://docs.gleap.io/documentation/android/in-app-push-notifications.md) - [Audio recording](https://docs.gleap.io/documentation/android/audio-recording.md) - [Console logs](https://docs.gleap.io/documentation/android/console-logs.md) - [Custom actions](https://docs.gleap.io/documentation/android/custom-actions.md) - [Ticket attributes](https://docs.gleap.io/documentation/android/ticket-attributes.md) - [Custom data](https://docs.gleap.io/documentation/android/custom-data.md) - [Track pages](https://docs.gleap.io/documentation/android/track-pages.md) - [Tags](https://docs.gleap.io/documentation/android/tags.md) - [Custom URL handler](https://docs.gleap.io/documentation/android/custom-url-handler.md) - [Network logs](https://docs.gleap.io/documentation/android/network-logs.md) - [Translations](https://docs.gleap.io/documentation/android/translations.md) - [Prefill the widget form](https://docs.gleap.io/documentation/android/prefill-form-data.md) - [Conversations](https://docs.gleap.io/documentation/android/conversations.md) - [Feature requests](https://docs.gleap.io/documentation/android/feature-requests.md) - [Help center](https://docs.gleap.io/documentation/android/helpcenter.md) - [Release notes & news](https://docs.gleap.io/documentation/android/release-notes-and-news.md) - [Surveys](https://docs.gleap.io/documentation/android/surveys.md) - [Checklists](https://docs.gleap.io/documentation/android/checklists.md) - [Introducing](https://docs.gleap.io/documentation/reactnative/README.md) - [User identity](https://docs.gleap.io/documentation/reactnative/user-identity.md) - [Track events](https://docs.gleap.io/documentation/reactnative/track-events.md) - [Track pages](https://docs.gleap.io/documentation/reactnative/track-pages.md) - [Frontend tools](https://docs.gleap.io/documentation/reactnative/aitools.md) - [Forms](https://docs.gleap.io/documentation/reactnative/feedback-flows.md) - [Push notifications](https://docs.gleap.io/documentation/reactnative/push-notifications.md) - [In-app notifications](https://docs.gleap.io/documentation/reactnative/in-app-push-notifications.md) - [Audio recording](https://docs.gleap.io/documentation/reactnative/audio-recording.md) - [Console logs](https://docs.gleap.io/documentation/reactnative/console-logs.md) - [Custom actions](https://docs.gleap.io/documentation/reactnative/custom-actions.md) - [Ticket attributes](https://docs.gleap.io/documentation/reactnative/ticket-attributes.md) - [Custom data](https://docs.gleap.io/documentation/reactnative/custom-data.md) - [Callbacks](https://docs.gleap.io/documentation/reactnative/events.md) - [Tags](https://docs.gleap.io/documentation/reactnative/tags.md) - [Feedback button](https://docs.gleap.io/documentation/reactnative/feedback-button.md) - [Network logs](https://docs.gleap.io/documentation/reactnative/network-logs.md) - [Translations](https://docs.gleap.io/documentation/reactnative/translations.md) - [Widget control](https://docs.gleap.io/documentation/reactnative/widget-control.md) - [Prefill the widget form](https://docs.gleap.io/documentation/reactnative/prefill-form-data.md) - [Conversations](https://docs.gleap.io/documentation/reactnative/conversations.md) - [Feature requests](https://docs.gleap.io/documentation/reactnative/feature-requests.md) - [Help center](https://docs.gleap.io/documentation/reactnative/helpcenter.md) - [Release notes & news](https://docs.gleap.io/documentation/reactnative/release-notes-and-news.md) - [Surveys](https://docs.gleap.io/documentation/reactnative/surveys.md) - [Checklists](https://docs.gleap.io/documentation/reactnative/checklists.md) - [Introducing](https://docs.gleap.io/documentation/flutter/README.md) - [User identity](https://docs.gleap.io/documentation/flutter/user-identity.md) - [Track events](https://docs.gleap.io/documentation/flutter/track-events.md) - [Track pages](https://docs.gleap.io/documentation/flutter/track-pages.md) - [Frontend tools](https://docs.gleap.io/documentation/flutter/aitools.md) - [Forms](https://docs.gleap.io/documentation/flutter/feedback-flows.md) - [Push notifications](https://docs.gleap.io/documentation/flutter/push-notifications.md) - [In-app notifications](https://docs.gleap.io/documentation/flutter/in-app-push-notifications.md) - [Audio recording](https://docs.gleap.io/documentation/flutter/audio-recording.md) - [Console logs](https://docs.gleap.io/documentation/flutter/console-logs.md) - [Custom actions](https://docs.gleap.io/documentation/flutter/custom-actions.md) - [Ticket attributes](https://docs.gleap.io/documentation/flutter/ticket-attributes.md) - [Custom data](https://docs.gleap.io/documentation/flutter/custom-data.md) - [Callbacks](https://docs.gleap.io/documentation/flutter/events.md) - [Tags](https://docs.gleap.io/documentation/flutter/tags.md) - [Feedback button](https://docs.gleap.io/documentation/flutter/feedback-button.md) - [Network logs](https://docs.gleap.io/documentation/flutter/network-logs.md) - [Translations](https://docs.gleap.io/documentation/flutter/translations.md) - [Widget control](https://docs.gleap.io/documentation/flutter/widget-control.md) - [Prefill the widget form](https://docs.gleap.io/documentation/flutter/prefill-form-data.md) - [Conversations](https://docs.gleap.io/documentation/flutter/conversations.md) - [Feature requests](https://docs.gleap.io/documentation/flutter/feature-requests.md) - [Help center](https://docs.gleap.io/documentation/flutter/helpcenter.md) - [Release notes & news](https://docs.gleap.io/documentation/flutter/release-notes-and-news.md) - [Surveys](https://docs.gleap.io/documentation/flutter/surveys.md) - [Checklists](https://docs.gleap.io/documentation/flutter/checklists.md) - [Introducing](https://docs.gleap.io/documentation/flutterflow/README.md) - [Introducing](https://docs.gleap.io/documentation/ioniccapacitor/README.md) - [User identity](https://docs.gleap.io/documentation/ioniccapacitor/user-identity.md) - [Frontend tools](https://docs.gleap.io/documentation/ioniccapacitor/aitools.md) - [Track events](https://docs.gleap.io/documentation/ioniccapacitor/track-events.md) - [Track pages](https://docs.gleap.io/documentation/ioniccapacitor/track-pages.md) - [Forms](https://docs.gleap.io/documentation/ioniccapacitor/feedback-flows.md) - [Push notifications](https://docs.gleap.io/documentation/ioniccapacitor/push-notifications.md) - [In-app notifications](https://docs.gleap.io/documentation/ioniccapacitor/in-app-push-notifications.md) - [Audio recording](https://docs.gleap.io/documentation/ioniccapacitor/audio-recording.md) - [Console logs](https://docs.gleap.io/documentation/ioniccapacitor/console-logs.md) - [Custom actions](https://docs.gleap.io/documentation/ioniccapacitor/custom-actions.md) - [Custom data](https://docs.gleap.io/documentation/ioniccapacitor/custom-data.md) - [Callbacks](https://docs.gleap.io/documentation/ioniccapacitor/events.md) - [Tags](https://docs.gleap.io/documentation/ioniccapacitor/tags.md) - [Feedback button](https://docs.gleap.io/documentation/ioniccapacitor/feedback-button.md) - [Network logs](https://docs.gleap.io/documentation/ioniccapacitor/network-logs.md) - [Translations](https://docs.gleap.io/documentation/ioniccapacitor/translations.md) - [Widget control](https://docs.gleap.io/documentation/ioniccapacitor/widget-control.md) - [Prefill the widget form](https://docs.gleap.io/documentation/ioniccapacitor/prefill-form-data.md) - [Conversations](https://docs.gleap.io/documentation/ioniccapacitor/conversations.md) - [Feature requests](https://docs.gleap.io/documentation/ioniccapacitor/feature-requests.md) - [Help center](https://docs.gleap.io/documentation/ioniccapacitor/helpcenter.md) - [Release notes & news](https://docs.gleap.io/documentation/ioniccapacitor/release-notes-and-news.md) - [Surveys](https://docs.gleap.io/documentation/ioniccapacitor/surveys.md) - [Checklists](https://docs.gleap.io/documentation/ioniccapacitor/checklists.md) - [Introducing](https://docs.gleap.io/documentation/cordova/README.md) - [User identity](https://docs.gleap.io/documentation/cordova/user-identity.md) - [Track events](https://docs.gleap.io/documentation/cordova/track-events.md) - [Track pages](https://docs.gleap.io/documentation/cordova/track-pages.md) - [Forms](https://docs.gleap.io/documentation/cordova/feedback-flows.md) - [Audio recording](https://docs.gleap.io/documentation/cordova/audio-recording.md) - [Console logs](https://docs.gleap.io/documentation/cordova/console-logs.md) - [Custom data](https://docs.gleap.io/documentation/cordova/custom-data.md) - [Feedback button](https://docs.gleap.io/documentation/cordova/feedback-button.md) - [Network logs](https://docs.gleap.io/documentation/cordova/network-logs.md) - [Translations](https://docs.gleap.io/documentation/cordova/translations.md) - [Widget control](https://docs.gleap.io/documentation/cordova/widget-control.md) - [Prefill the widget form](https://docs.gleap.io/documentation/cordova/prefill-form-data.md) - [Conversations](https://docs.gleap.io/documentation/cordova/conversations.md) - [Feature requests](https://docs.gleap.io/documentation/cordova/feature-requests.md) - [Help center](https://docs.gleap.io/documentation/cordova/helpcenter.md) - [Release notes & news](https://docs.gleap.io/documentation/cordova/release-notes-and-news.md) - [Surveys](https://docs.gleap.io/documentation/cordova/surveys.md) - [Checklists](https://docs.gleap.io/documentation/cordova/checklists.md) - [Introducing (Beta)](https://docs.gleap.io/documentation/windowsdesktop/README.md) - [User identity](https://docs.gleap.io/documentation/windowsdesktop/user-identity.md) - [Track events](https://docs.gleap.io/documentation/windowsdesktop/track-events.md) - [Track pages](https://docs.gleap.io/documentation/windowsdesktop/track-pages.md) - [Forms](https://docs.gleap.io/documentation/windowsdesktop/feedback-flows.md) - [Frontend tools](https://docs.gleap.io/documentation/windowsdesktop/aitools.md) - [Console logs](https://docs.gleap.io/documentation/windowsdesktop/console-logs.md) - [Custom actions](https://docs.gleap.io/documentation/windowsdesktop/custom-actions.md) - [Ticket attributes](https://docs.gleap.io/documentation/windowsdesktop/ticket-attributes.md) - [Custom data](https://docs.gleap.io/documentation/windowsdesktop/custom-data.md) - [Callbacks](https://docs.gleap.io/documentation/windowsdesktop/events.md) - [Tags](https://docs.gleap.io/documentation/windowsdesktop/tags.md) - [Feedback button](https://docs.gleap.io/documentation/windowsdesktop/feedback-button.md) - [Network logs](https://docs.gleap.io/documentation/windowsdesktop/network-logs.md) - [Translations](https://docs.gleap.io/documentation/windowsdesktop/translations.md) - [Widget control](https://docs.gleap.io/documentation/windowsdesktop/widget-control.md) - [Prefill the widget form](https://docs.gleap.io/documentation/windowsdesktop/prefill-form-data.md) - [Attachments](https://docs.gleap.io/documentation/windowsdesktop/attachments.md) - [Conversations](https://docs.gleap.io/documentation/windowsdesktop/conversations.md) - [Feature requests](https://docs.gleap.io/documentation/windowsdesktop/feature-requests.md) - [Help center](https://docs.gleap.io/documentation/windowsdesktop/helpcenter.md) - [Release notes & news](https://docs.gleap.io/documentation/windowsdesktop/release-notes-and-news.md) - [Surveys](https://docs.gleap.io/documentation/windowsdesktop/surveys.md) - [Checklists](https://docs.gleap.io/documentation/windowsdesktop/checklists.md) - [Introducing (Beta)](https://docs.gleap.io/documentation/maui/README.md) - [User identity](https://docs.gleap.io/documentation/maui/user-identity.md) - [Track events](https://docs.gleap.io/documentation/maui/track-events.md) - [Track pages](https://docs.gleap.io/documentation/maui/track-pages.md) - [Forms](https://docs.gleap.io/documentation/maui/feedback-flows.md) - [Frontend tools](https://docs.gleap.io/documentation/maui/aitools.md) - [Console logs](https://docs.gleap.io/documentation/maui/console-logs.md) - [Custom actions](https://docs.gleap.io/documentation/maui/custom-actions.md) - [Ticket attributes](https://docs.gleap.io/documentation/maui/ticket-attributes.md) - [Custom data](https://docs.gleap.io/documentation/maui/custom-data.md) - [Callbacks](https://docs.gleap.io/documentation/maui/events.md) - [Tags](https://docs.gleap.io/documentation/maui/tags.md) - [Feedback button](https://docs.gleap.io/documentation/maui/feedback-button.md) - [Network logs](https://docs.gleap.io/documentation/maui/network-logs.md) - [Translations](https://docs.gleap.io/documentation/maui/translations.md) - [Widget control](https://docs.gleap.io/documentation/maui/widget-control.md) - [Prefill the widget form](https://docs.gleap.io/documentation/maui/prefill-form-data.md) - [Attachments](https://docs.gleap.io/documentation/maui/attachments.md) - [Conversations](https://docs.gleap.io/documentation/maui/conversations.md) - [Feature requests](https://docs.gleap.io/documentation/maui/feature-requests.md) - [Help center](https://docs.gleap.io/documentation/maui/helpcenter.md) - [Release notes & news](https://docs.gleap.io/documentation/maui/release-notes-and-news.md) - [Surveys](https://docs.gleap.io/documentation/maui/surveys.md) - [Checklists](https://docs.gleap.io/documentation/maui/checklists.md) - [Introducing (Beta)](https://docs.gleap.io/documentation/unity/README.md) - [User identity](https://docs.gleap.io/documentation/unity/user-identity.md) - [Track events](https://docs.gleap.io/documentation/unity/track-events.md) - [Track pages](https://docs.gleap.io/documentation/unity/track-pages.md) - [Forms](https://docs.gleap.io/documentation/unity/feedback-flows.md) - [Frontend tools](https://docs.gleap.io/documentation/unity/aitools.md) - [Console logs](https://docs.gleap.io/documentation/unity/console-logs.md) - [Custom actions](https://docs.gleap.io/documentation/unity/custom-actions.md) - [Ticket attributes](https://docs.gleap.io/documentation/unity/ticket-attributes.md) - [Custom data](https://docs.gleap.io/documentation/unity/custom-data.md) - [Callbacks](https://docs.gleap.io/documentation/unity/events.md) - [Tags](https://docs.gleap.io/documentation/unity/tags.md) - [Feedback button](https://docs.gleap.io/documentation/unity/feedback-button.md) - [Network logs](https://docs.gleap.io/documentation/unity/network-logs.md) - [Translations](https://docs.gleap.io/documentation/unity/translations.md) - [Widget control](https://docs.gleap.io/documentation/unity/widget-control.md) - [Prefill the widget form](https://docs.gleap.io/documentation/unity/prefill-form-data.md) - [Attachments](https://docs.gleap.io/documentation/unity/attachments.md) - [Conversations](https://docs.gleap.io/documentation/unity/conversations.md) - [Feature requests](https://docs.gleap.io/documentation/unity/feature-requests.md) - [Help center](https://docs.gleap.io/documentation/unity/helpcenter.md) - [Release notes & news](https://docs.gleap.io/documentation/unity/release-notes-and-news.md) - [Surveys](https://docs.gleap.io/documentation/unity/surveys.md) - [Checklists](https://docs.gleap.io/documentation/unity/checklists.md) - [NodeJS](https://docs.gleap.io/documentation/server/nodejs.md) - [REST](https://docs.gleap.io/documentation/server/rest-api.md) - [Enforce identity verification](https://docs.gleap.io/documentation/guides/enforce-identity-verification.md) - [API Overview](https://docs.gleap.io/documentation/server/api-overview.md) - [API Samples](https://docs.gleap.io/documentation/server/api-samples.md) - [Find all message templates.](https://docs.gleap.io/api-reference/message-templates/find-all-message-templates.md): Find the message templates of a project that are visible to the calling agent (public templates plus templates shared with them), ordered by `lexorank`. - [Create a new message template.](https://docs.gleap.io/api-reference/message-templates/create-a-new-message-template.md): Create a new message template. - [List all message template tags.](https://docs.gleap.io/api-reference/message-templates/list-all-message-template-tags.md): List the distinct tags used across the project's message templates, sorted alphabetically. - [Find a message template.](https://docs.gleap.io/api-reference/message-templates/find-a-message-template.md): Find a single message template of a project by its ID. - [Update a message template.](https://docs.gleap.io/api-reference/message-templates/update-a-message-template.md): Update a message template. - [Delete a message template](https://docs.gleap.io/api-reference/message-templates/delete-a-message-template.md): Delete a message template. - [Get all sessions](https://docs.gleap.io/api-reference/session/get-all-sessions.md): List sessions (contacts) of the project. Paginated: `limit` defaults to 50 and is capped at 100 per page, and paging cannot go past the first 10,000 results. Optional query parameters: `type` (`users` = has userId, `guests` = no userId, `unsubscribed`, or `organisations`; the latter returns aggregat… - [Create a new session](https://docs.gleap.io/api-reference/session/create-a-new-session.md): Create a session (contact) in the project from the `project` header. When `userId` is supplied this is an upsert: an existing contact with that userId is updated and returned instead of a new one being created (one session per project + userId). Without `userId` a new guest/email session is always c… - [Get a session](https://docs.gleap.io/api-reference/session/get-a-session.md): Get a session by id. - [Update a session](https://docs.gleap.io/api-reference/session/update-a-session.md): Update a session (contact) in the project from the `project` header. The fields `userId`, `project`, `organisation`, `gleapId` and `gleapHash` are ignored if sent. Changing `tags` requires the tag permissions of the calling agent. Setting `companyId` automatically creates the company if it does not… - [Delete a session](https://docs.gleap.io/api-reference/session/delete-a-session.md): Delete a session by id. This also permanently deletes every ticket attached to the session, a hard delete that emits no ticket events or webhooks. - [Resubscribe a session](https://docs.gleap.io/api-reference/session/resubscribe-a-session.md): Resubscribe a session. - [Search for sessions](https://docs.gleap.io/api-reference/session/search-for-sessions.md): Autocomplete search over the project's sessions. Returns at most 50 matches, each containing only `id`, `email`, `userId`, `name`, `companyId`, `companyName` and `phone`. Query parameters: `searchTerm` (required; terms shorter than 3 characters return an empty array) and `fieldExists` (optional; onl… - [Export sessions](https://docs.gleap.io/api-reference/session/export-sessions.md): Export the project's contacts as a CSV file download (`Content-Type: text/csv`, filename `users.csv`). Not filterable; query parameters are ignored. Only contacts with an email address are included, capped at 75,000 rows, with a fixed column set (userId, name, email, phone, companyName, companyId, l… - [Pre-warm sessions cache for the active project](https://docs.gleap.io/api-reference/session/pre-warm-sessions-cache-for-the-active-project.md): Pre-warm OpenSearch shards + Redis list cache for the active project. Fire-and-forget: returns {ok:true} immediately while the warmup runs in the background. Triggered from the frontend right before a session query is likely (sidebar hover, global search modal mount, RecipientPicker mount, periodic… - [Get a session by user id](https://docs.gleap.io/api-reference/session/get-a-session-by-user-id.md): Get a session by the contact's external user id (`Session.userId`, the id your app passes to the SDK identify call), not the Mongo `_id`. Responds 404 when no contact with that userId exists. - [Get session activities](https://docs.gleap.io/api-reference/session/get-session-activities.md): Get the tickets ("activities") of a session, newest activity first. If the session has an email address, tickets from other sessions in the project sharing that email are included as well and are flagged with `isFromDuplicateSession: true`. Query parameters: `limit` (default 50), `skip` (default 0),… - [Get session events](https://docs.gleap.io/api-reference/session/get-session-events.md): Get the streamed events of a session, newest first. Events emitted by outbounds are relabelled to " submitted". Query parameter `limit`: number of events to return, default 5, maximum 300. - [Import sessions](https://docs.gleap.io/api-reference/session/import-sessions.md): Bulk-import sessions (contacts). The body must be `{ "sessions": [...] }`. Entries with a `userId` are upserted onto the existing contact; entries without one create a new guest session. Returns the ids of the imported sessions. - [Import sessions from intercom](https://docs.gleap.io/api-reference/session/import-sessions-from-intercom.md): Import sessions from intercom. - [Import sessions from HubSpot](https://docs.gleap.io/api-reference/session/import-sessions-from-hubspot.md): Import sessions from HubSpot. - [Import sessions from Zendesk](https://docs.gleap.io/api-reference/session/import-sessions-from-zendesk.md): Import sessions (contacts) from Zendesk. - [Unsubscribe sessions](https://docs.gleap.io/api-reference/session/unsubscribe-sessions.md): Unsubscribe contacts by email and/or userId. Fire-and-forget: the response is always `{ "success": true }` and does not reflect whether the contacts were found or updated. Every session in the project matching an entry's email OR userId is unsubscribed; entries with neither field are ignored. - [Get session checklists](https://docs.gleap.io/api-reference/session/get-session-checklists.md): Get the non-draft checklists of a session, most recently updated first. Each entry contains only `completedSteps` and the parent outbound's name and step titles/ids. Query parameter `limit`: default 3, maximum 10. - [Reset session checklist](https://docs.gleap.io/api-reference/session/reset-session-checklist.md): Reset a checklist for a session — clears all completed steps and sets it back to active. - [Get session identity history](https://docs.gleap.io/api-reference/session/get-session-identity-history.md): Get the identity-change history for a session: recorded mutations of email / name / userId on this contact record, capped at the 100 most recent entries and returned as `{ history: [...] }`. Stripped from default session responses (see session.model.ts toJSON), so this is the only path that returns… - [Get session Stripe info](https://docs.gleap.io/api-reference/session/get-session-stripe-info.md): Get Stripe information for a session. Returns `{ customer, charges, subscriptions }` when the Stripe integration is configured and a customer matches the session; otherwise an empty object. - [Get session Chargebee info](https://docs.gleap.io/api-reference/session/get-session-chargebee-info.md): Get Chargebee information for a session. Returns `{ customer, subscriptions, invoices }` when the Chargebee integration is configured and a customer matches the session; otherwise an empty object. - [Get session LemonSqueezy info](https://docs.gleap.io/api-reference/session/get-session-lemonsqueezy-info.md): Get LemonSqueezy information for a session. Returns `{ customer, subscriptions, invoices }` when the LemonSqueezy integration is configured and a customer matches the session; otherwise an empty object. - [Get session Shopify info](https://docs.gleap.io/api-reference/session/get-session-shopify-info.md): Get Shopify information for a session. Returns `{ customer, orders, shopDomain }`; `customer` may be null for guest checkouts; returns an empty object when the integration is not configured or no customer matches. - [Get all teams](https://docs.gleap.io/api-reference/team/get-all-teams.md): Get all teams associated with a project. - [Create a new team](https://docs.gleap.io/api-reference/team/create-a-new-team.md): Create a new team and associate it with a project. - [Update a team](https://docs.gleap.io/api-reference/team/update-a-team.md): Update a team. - [Delete a team](https://docs.gleap.io/api-reference/team/delete-a-team.md): Delete a team. - [Reorder a team](https://docs.gleap.io/api-reference/team/reorder-a-team.md): Update a team's ordering position in the inbox sidebar. - [Find messages by query](https://docs.gleap.io/api-reference/messages/find-messages-by-query.md): Get messages by query with support for filtering and pagination. - [Create a new message](https://docs.gleap.io/api-reference/messages/create-a-new-message.md): Create a new message in a ticket. Required field: `ticket` (ticket ID). Optional fields: `comment` (rich text as TipTap doc JSON, or a plain string) or `markdownComment` (Markdown, converted server-side; takes precedence over `comment`), `type` (defaults to `TEXT`, or `NOTE` when `isNote` is true),… - [Search messages](https://docs.gleap.io/api-reference/messages/search-messages.md): Search messages by query. - [Update a message](https://docs.gleap.io/api-reference/messages/update-a-message.md): Edit an existing message. Only `data` (the message content, e.g. `data.content` as TipTap JSON) and `attachments` are persisted; all other schema properties are ignored, and `data` is replaced wholesale (an omitted `data` clears the content). Agents may only edit their own messages, sent through the… - [Delete a message](https://docs.gleap.io/api-reference/messages/delete-a-message.md): Delete a message from a ticket. - [Get thread messages](https://docs.gleap.io/api-reference/messages/get-thread-messages.md): Get the messages of a thread, oldest first. - [Create a thread reply](https://docs.gleap.io/api-reference/messages/create-a-thread-reply.md): Reply inside a message's thread. - [Set a message reaction](https://docs.gleap.io/api-reference/messages/set-a-message-reaction.md): Add or remove an emoji reaction on a message. - [Accept or decline an AI FAQ suggestion](https://docs.gleap.io/api-reference/messages/accept-or-decline-an-ai-faq-suggestion.md): Resolves an AI-generated FAQ suggestion message. With `accept: true` the suggested question/answer pair is added to the knowledge base; with `accept: false` it is discarded. Either way the suggestion message is deleted. - [Get all collections](https://docs.gleap.io/api-reference/help-center-collections/get-all-collections.md): Get help center collections. Returns only top-level collections by default; pass `parentId=` to list the direct children of a collection, or `parentId=all` to list every collection. Results are sorted by `lexorank` and each entry includes `articlesCount` and `subCollectionsCount`. Note… - [Create a new collection](https://docs.gleap.io/api-reference/help-center-collections/create-a-new-collection.md): Create a new help center collection. `project`, `docId` and `lexorank` are assigned by the server and ignored if sent. When `parent` is set, `baseAudienceFilter` is inherited from the parent collection (any value sent is overwritten) and an unknown `parent` returns 404. - [Get all collections with subcollections](https://docs.gleap.io/api-reference/help-center-collections/get-all-collections-with-subcollections.md): Get all help center collections (subcollections included) - [Get article stats](https://docs.gleap.io/api-reference/help-center-collections/get-article-stats.md): Get live/draft article counts across the whole help center - [Get a collection](https://docs.gleap.io/api-reference/help-center-collections/get-a-collection.md): Get a help center collection by id - [Update a collection](https://docs.gleap.io/api-reference/help-center-collections/update-a-collection.md): Update a help center collection. Changing `targetAudience`, `baseAudienceFilter` or `extendedAudienceFilter` also re-applies the resulting audience filter to every article in this collection and, recursively, to all subcollections and their articles. - [Delete a collection](https://docs.gleap.io/api-reference/help-center-collections/delete-a-collection.md): Delete a help center collection. The collection must be empty: the request is rejected with 409 while it still contains articles. Subcollections are not deleted; move or delete them first. Returns `{ success: true }`. - [Publish or unpublish a collection's articles](https://docs.gleap.io/api-reference/help-center-collections/publish-or-unpublish-a-collections-articles.md): Publish or unpublish every article in a help center collection. Set `unpublished` to `true` to unpublish or `false` to publish; the change is applied recursively to all articles in this collection and in all of its subcollections. The collection document itself is not modified. Returns `{ success: t… - [Get all articles](https://docs.gleap.io/api-reference/help-center-articles/get-all-articles.md): Get every article in a help center collection, published and unpublished, sorted by `lexorank`. This endpoint is not paginated. - [Create a new article](https://docs.gleap.io/api-reference/help-center-articles/create-a-new-article.md): Create a new help center article in a collection. `title`, `description` and `content` may be sent either localized (`{ "en": ... }`) or as a bare value, which is stored under the help center's default language. `project`, `helpcenterCollection`, `docId`, `lexorank`, `plainContent` and `baseAudience… - [Get an article](https://docs.gleap.io/api-reference/help-center-articles/get-an-article.md): Get a help center article by id. Pass format=html or format=markdown to additionally include the article content converted to that format (as a localized contentHtml / contentMarkdown field) next to the stored editor JSON. Omit the parameter to return the article unchanged. - [Update an article](https://docs.gleap.io/api-reference/help-center-articles/update-an-article.md): Update a help center article. `content` is TipTap JSON; images are `image` nodes referencing a hosted image URL (`{ "type": "image", "attrs": { "src": "" } }`) — upload files via `POST /v3/uploads` first and use the returned `fileUrl` as the `src`. - [Delete an article](https://docs.gleap.io/api-reference/help-center-articles/delete-an-article.md): Delete a help center article - [List article versions](https://docs.gleap.io/api-reference/help-center-articles/list-article-versions.md): List the retained version snapshots of a help center article (newest first) - [Create an article version checkpoint](https://docs.gleap.io/api-reference/help-center-articles/create-an-article-version-checkpoint.md): Capture a manual version checkpoint of the article's current state - [Get an article version](https://docs.gleap.io/api-reference/help-center-articles/get-an-article-version.md): Get a single version snapshot of a help center article, including its content - [Restore an article version](https://docs.gleap.io/api-reference/help-center-articles/restore-an-article-version.md): Restore a help center article to a previous version (the current state is snapshotted first, so the restore itself can be undone) - [Move an article](https://docs.gleap.io/api-reference/help-center-articles/move-an-article.md): Move a help center article to a different collection - [Get an article draft](https://docs.gleap.io/api-reference/help-center-articles/get-an-article-draft.md): Get the staged (unpublished) draft of a help center article, or null - [Save an article draft](https://docs.gleap.io/api-reference/help-center-articles/save-an-article-draft.md): Create or update the staged draft of an article. The live article is never modified by this call; use the draft publish endpoint to promote it. - [Discard an article draft](https://docs.gleap.io/api-reference/help-center-articles/discard-an-article-draft.md): Discard the staged draft of an article (the live article is untouched) - [Publish an article draft](https://docs.gleap.io/api-reference/help-center-articles/publish-an-article-draft.md): Publish a staged draft to the live article (promote). Pass force=true to override the warning when the live article changed since the draft started. - [Search help center articles](https://docs.gleap.io/api-reference/help-center/search-help-center-articles.md): Full-text search the published articles of a help center. Returns at most 30 hits, filtered to the requested language and to the articles the current visitor session is allowed to see. Hits are returned under `data.hits`, alongside the help center's `project` configuration and any `domainRedirect`.… - [Get help center sources](https://docs.gleap.io/api-reference/help-center/get-help-center-sources.md): Find the help center sources (articles and indexed URLs) most relevant to a search term, as used for AI answers. `searchTerm` is required (the request fails without it). Each source is returned with `id`, `title`, `url` and a short `extract`. Same authentication headers as the search endpoint; `lang… - [Answer help center question](https://docs.gleap.io/api-reference/help-center/answer-help-center-question.md): Answer a visitor question with AI, grounded in the project's help center content. Pass the question in the `question` query parameter (required) and optionally `lang`. Returns the generated answer under `answer`. Same authentication headers as the search endpoint. - [Find all redirects.](https://docs.gleap.io/api-reference/help-center-redirects/find-all-redirects.md): Find all redirects of a project. - [Create a new redirect.](https://docs.gleap.io/api-reference/help-center-redirects/create-a-new-redirect.md): Create a new redirect. - [Update a redirect.](https://docs.gleap.io/api-reference/help-center-redirects/update-a-redirect.md): Update a redirect. - [Delete a redirect](https://docs.gleap.io/api-reference/help-center-redirects/delete-a-redirect.md): Delete a redirect. - [Get all tickets](https://docs.gleap.io/api-reference/ticket/get-all-tickets.md): Get all tickets in a project with support for filtering, sorting, and pagination. - [Create a new ticket](https://docs.gleap.io/api-reference/ticket/create-a-new-ticket.md): Create a new ticket in a project. Every field is optional. Common fields include: `title`, `description`, `type` (BUG, FEATURE_REQUEST, etc.), `status`, `priority` (LOW, MEDIUM, HIGH), `session` (contact/session ID if manually added), and `customData` (custom fields). Use `linkedTickets` to referenc… - [Create a new ticket with an optional initial message](https://docs.gleap.io/api-reference/ticket/create-a-new-ticket-with-an-optional-initial-message.md): Create a new ticket and optionally post an initial message in a single request. Provide either a session (contact ID) or email to associate the ticket with a contact. If an email is provided and no contact exists, one will be created automatically. - [Search for tickets](https://docs.gleap.io/api-reference/ticket/search-for-tickets.md): Full-text search over the project's tickets and their comments. Returns `{ hits: [...] }` with at most 30 hits, ordered by relevance. - [Extended ticket search (contacts + tickets)](https://docs.gleap.io/api-reference/ticket/extended-ticket-search-contacts-+-tickets.md): Searches contacts and tickets in parallel and returns two buckets: `sessionResults` (tickets belonging to matching contacts, with their latest comment) and `generalResults`. Each bucket is capped at 250 tickets. - [Find tickets by session query](https://docs.gleap.io/api-reference/ticket/find-tickets-by-session-query.md): Resolves contacts (sessions) matching the given identifiers (at most 100) and returns their tickets as `{ tickets, count, totalCount }`. Archived, hidden, spam and merged-duplicate tickets are excluded and at most 500 tickets are returned. Pass at least one of `email`, `userId`, `phone` or `customDa… - [Export tickets as JSON](https://docs.gleap.io/api-reference/ticket/export-tickets-as-json.md): Returns the project's tickets as a JSON array, capped at 25,000 tickets. Supports the usual ticket filters. For larger exports or CSV output use GET /tickets/csv-export. - [Get notification ticket](https://docs.gleap.io/api-reference/ticket/get-notification-ticket.md): Get notification ticket. - [Export tickets as CSV](https://docs.gleap.io/api-reference/ticket/export-tickets-as-csv.md): Streams the project's tickets as a CSV download (`tickets.csv`, `text/csv`). Columns come from the ticket type's export fields; pass `type` (defaults to `BUG`) and optionally `projection[]` to pick specific fields. Supports `startDate`/`endDate` plus the usual ticket filters. For a JSON export use G… - [List available export fields](https://docs.gleap.io/api-reference/ticket/list-available-export-fields.md): Returns the exportable field definitions (`{ fields: [...] }`) for a ticket type; use these keys as `projection[]` values on GET /tickets/csv-export. - [Find tracker tickets](https://docs.gleap.io/api-reference/ticket/find-tracker-tickets.md): Find tracker tickets in a project. - [Create a tracker ticket](https://docs.gleap.io/api-reference/ticket/create-a-tracker-ticket.md): Create a tracker ticket in a project. When `customerEmail` is set, the customer is added as the first upvoter (`upvotes: [{ email, name }]`, `upvotesCount: 1`) — used for feature requests where the originating customer should auto-subscribe. - [Search feature requests semantically](https://docs.gleap.io/api-reference/ticket/search-feature-requests-semantically.md): Dedupe-style search across the project's `FEATURE_REQUEST` tickets. Uses OpenSearch fuzzy match + Voyage AI rerank — returns the most semantically similar matches to the `query` argument, not literal keyword hits. Use this before filing a new feature request to avoid duplicates. - [Generate tracker ticket data with AI](https://docs.gleap.io/api-reference/ticket/generate-tracker-ticket-data-with-ai.md): Uses AI to draft a tracker ticket from an existing ticket. Returns `{ title, description }`: a short title and a ~30-word summary written in the project's default summary language. Responds 404 when `sourceTicketId` does not resolve to a ticket. `type` (e.g. `FEATURE_REQUEST`) is used as prompt cont… - [Get ticket counts per status](https://docs.gleap.io/api-reference/ticket/get-ticket-counts-per-status.md): Returns the number of tickets grouped by status, as `[{ "_id": "OPEN", "count": 12 }, ...]`. Counts always exclude archived, hidden, spam and merged-duplicate tickets. Other filters (e.g. `type`, `tags`, `processingUser`) are applied; a `status` filter is ignored because the result is already groupe… - [Export a single ticket for audit](https://docs.gleap.io/api-reference/ticket/export-a-single-ticket-for-audit.md): Returns an audit-focused CSV export of one ticket: one row per event in strict chronological order with the columns `timestamp, actor, actor_email, event_type, detail, content`. Covers messages, internal notes, status/assignee/priority/tag changes and automated/system actions; routing (team/assignee… - [Get a ticket](https://docs.gleap.io/api-reference/ticket/get-a-ticket.md): Get a ticket in a project. - [Update a ticket](https://docs.gleap.io/api-reference/ticket/update-a-ticket.md): Update a ticket in a project. - [Delete a ticket](https://docs.gleap.io/api-reference/ticket/delete-a-ticket.md): Permanently deletes a ticket; this cannot be undone. Also deletes every ticket merged into it as a duplicate, along with all messages, scheduled replies, console/network logs and replay data, and removes the ticket from other tickets' linked lists. Fires the `TICKET_DELETED` webhook. Returns an empt… - [Merge multiple tickets into one](https://docs.gleap.io/api-reference/ticket/merge-multiple-tickets-into-one.md): Merges `ticketsToMergeIds` into a target ticket and returns the resulting main ticket. `targetTicketId` is required unless `shouldCreateNewTicket` is `true`, in which case a fresh main ticket is created (and an existing target ticket, if given, is archived too). Merged tickets are archived and linke… - [Find duplicate feature requests](https://docs.gleap.io/api-reference/ticket/find-duplicate-feature-requests.md): Returns previously computed duplicate groups for the project's feature requests from a cache; `{ groups: [] }` when nothing is cached yet. Pass `?force=true` (or `{ "force": true }` in the body) to run a fresh AI scan; results are cached for 24 hours. The scan covers up to 2000 active feature reques… - [Merge a duplicate group](https://docs.gleap.io/api-reference/ticket/merge-a-duplicate-group.md): Merges duplicate feature requests into a main ticket with AI-rewritten content. - [Bulk-update tickets](https://docs.gleap.io/api-reference/ticket/bulk-update-tickets.md): Bulk close / assign / archive / snooze / team / priority. Selection is either an explicit id list or a lane query ("all matching", optionally limited to the first N in sort order). Small selections (<= 30) run the full per-ticket update cascade; larger ones run a fast updateMany that skips workflows… - [Report external coding-agent progress](https://docs.gleap.io/api-reference/ticket/report-external-coding-agent-progress.md): Called by the Gleap MCP `report_progress` tool. Updates the ticket's handoff state (live activity in the dashboard), appends to the progress trail, and registers pull-request links for resolve-on-merge. When the report carries a customerShipMessage, `shipMessage.state` in the response says what beca… - [Get console logs for a ticket](https://docs.gleap.io/api-reference/ticket/get-console-logs-for-a-ticket.md): Get console logs for a ticket in a project. - [Get activity logs for a ticket](https://docs.gleap.io/api-reference/ticket/get-activity-logs-for-a-ticket.md): Get activity logs for a ticket in a project. - [Get the internal history of a ticket](https://docs.gleap.io/api-reference/ticket/get-the-internal-history-of-a-ticket.md): Every internal history entry for a ticket — status, assignee, team, priority, type, tag, contact, due-date and title changes, plus workflow starts, agent handoffs and mirrored integration status updates. Returned oldest first in a comment-compatible shape so the conversation feed can splice them inl… - [Get network logs for a ticket](https://docs.gleap.io/api-reference/ticket/get-network-logs-for-a-ticket.md): Get network logs for a ticket in a project. - [Get the session replay for a ticket](https://docs.gleap.io/api-reference/ticket/get-the-session-replay-for-a-ticket.md): Returns a self-contained HTML page that plays back the ticket's recorded session replay. Responds 404 when the ticket has no replay recording. - [Indicate user typing](https://docs.gleap.io/api-reference/ticket/indicate-user-typing.md): Indicate user is typing. - [Indicate user viewing](https://docs.gleap.io/api-reference/ticket/indicate-user-viewing.md): Indicate user is viewing. - [List current ticket viewers](https://docs.gleap.io/api-reference/ticket/list-current-ticket-viewers.md): Returns the set of agents currently viewing tickets in the project (presence). Dashboards call this to seed and periodically reconcile viewer avatars, so presence does not depend on keepalive broadcasts. - [Snooze a ticket](https://docs.gleap.io/api-reference/ticket/snooze-a-ticket.md): Snoozes a ticket for `duration` seconds: sets `snoozedUntil`, moves the status to `SNOOZED` and clears the unread flag. The ticket reopens automatically when the snooze expires. - [Set the composer draft message](https://docs.gleap.io/api-reference/ticket/set-the-composer-draft-message.md): Stage a drafted reply in the ticket's dashboard composer. `content` is either a Markdown string (converted server-side to the composer's rich-text format) or a TipTap doc. The draft appears instantly in the composer of everyone viewing the ticket; nothing is sent to the customer. It replaces any pre… - [Clear the composer draft message](https://docs.gleap.io/api-reference/ticket/clear-the-composer-draft-message.md): Remove the composer draft message from a ticket. No-op when the ticket has no draft. - [Link a ticket to another ticket](https://docs.gleap.io/api-reference/ticket/link-a-ticket-to-another-ticket.md): Creates a bidirectional link between the ticket and `targetTicketId` and returns the updated list of linked tickets. Linking a regular ticket to a tracker ticket also archives the regular ticket (it is now tracked by the tracker). Calling it again for an already linked pair is a no-op. - [Unlink a ticket](https://docs.gleap.io/api-reference/ticket/unlink-a-ticket.md): Unlink a ticket in a project. - [Archive a ticket](https://docs.gleap.io/api-reference/ticket/archive-a-ticket.md): Archive a ticket in a project. - [Mark a ticket as spam](https://docs.gleap.io/api-reference/ticket/mark-a-ticket-as-spam.md): Mark a ticket as spam: flags the ticket (and its merged duplicates) as spam, archives it into the spam tab, and blocks the contact — future tickets from them are auto-flagged as spam and inbound emails from them are dropped unless whitelisted. Undo via unarchive ("Not spam"), which clears the spam f… - [Close a ticket as spam (agent verdict)](https://docs.gleap.io/api-reference/ticket/close-a-ticket-as-spam-agent-verdict.md): CLOSE a ticket as spam (agent/MCP verdict): sets the done status, flags + archives it into the Spam review queue, and suppresses every customer-facing follow-up — no CSAT, no notifications, no knowledge extraction. Unlike the manual `PUT {ticketId}/spam` above it does NOT block the contact: agent ve… - [Archive all tickets in a lane](https://docs.gleap.io/api-reference/ticket/archive-all-tickets-in-a-lane.md): Archives every non-archived ticket of the given `type` and `status` (both required in the body). Pass the board's active `filter` (the same JSON string GET /tickets takes) to archive only the filtered subset — omit it to archive the whole lane. Processes at most 1000 tickets per call; repeat the cal… - [Unarchive a ticket](https://docs.gleap.io/api-reference/ticket/unarchive-a-ticket.md): Unarchive a ticket in a project. - [Await customer reply on a ticket](https://docs.gleap.io/api-reference/ticket/await-customer-reply-on-a-ticket.md): Park a ticket as "waiting on customer": set expectsReply and archive it. The customer's next reply automatically un-archives, clears the flag, and resumes any awaiting agent. - [Run workflow](https://docs.gleap.io/api-reference/ticket/run-workflow.md): Run workflow - [Send ticket to integration](https://docs.gleap.io/api-reference/ticket/send-ticket-to-integration.md): Send ticket to integration - [Vote for ticket](https://docs.gleap.io/api-reference/ticket/vote-for-ticket.md): Vote for a ticket. `action` controls semantics: `'toggle'` (default) flips the vote, `'subscribe'` is idempotent add, `'unsubscribe'` is idempotent remove. - [Voice reply (dictate or smart)](https://docs.gleap.io/api-reference/ticket/voice-reply-dictate-or-smart.md): Process an operator's recorded audio for a ticket with one multimodal model call. `dictate` returns a verbatim transcript; `smart` treats the audio as spoken keywords and drafts a fluent reply using the ticket + conversation as context (no knowledge-base retrieval). The client uploads the audio via… - [Send ticket conversation transcript to multiple emails](https://docs.gleap.io/api-reference/ticket/send-ticket-conversation-transcript-to-multiple-emails.md): Send the conversation history of a ticket to a list of email addresses - [Get all banners](https://docs.gleap.io/api-reference/engagement-banner/get-all-banners.md): Get the engagement banners of a project, newest first. Supports filtering by any field via query parameters, plus `skip`, `limit` and `sort` (e.g. `sort=-createdAt`). `limit` defaults to 1000 when omitted; when supplied, values above 100 are clamped to 100. Filtering by `project` or `organisation` i… - [Create a new banner](https://docs.gleap.io/api-reference/engagement-banner/create-a-new-banner.md): Create a new engagement banner. `type`, `project`, `organisation` and `createdBy` are set server-side and ignored if supplied. - [Get a banner](https://docs.gleap.io/api-reference/engagement-banner/get-a-banner.md): Get an engagement banner - [Update a banner](https://docs.gleap.io/api-reference/engagement-banner/update-a-banner.md): Update an engagement banner. Any pending (not yet sent) deliveries for this engagement are discarded and re-queued from the updated document. While an engagement is live, its audience, targeting and scheduling fields cannot be changed (for `fixed` frequency engagements neither can its content); paus… - [Delete a banner](https://docs.gleap.io/api-reference/engagement-banner/delete-a-banner.md): Delete an engagement banner - [Get all chat messages](https://docs.gleap.io/api-reference/engagement-chat-message/get-all-chat-messages.md): Get the engagement chat messages of a project, newest first. Supports filtering by any field via query parameters, plus `skip`, `limit` and `sort` (e.g. `sort=-createdAt`). `limit` defaults to 1000 when omitted; when supplied, values above 100 are clamped to 100. Filtering by `project` or `organisat… - [Create a new chat message](https://docs.gleap.io/api-reference/engagement-chat-message/create-a-new-chat-message.md): Create a new engagement chat message. `type`, `project`, `organisation` and `createdBy` are set server-side and ignored if supplied. - [Get a chat message](https://docs.gleap.io/api-reference/engagement-chat-message/get-a-chat-message.md): Get an engagement chat message - [Update a chat message](https://docs.gleap.io/api-reference/engagement-chat-message/update-a-chat-message.md): Update an engagement chat message. Any pending (not yet sent) deliveries for this engagement are discarded and re-queued from the updated document. While an engagement is live, its audience, targeting and scheduling fields cannot be changed (for `fixed` frequency engagements neither can its content)… - [Delete a chat message](https://docs.gleap.io/api-reference/engagement-chat-message/delete-a-chat-message.md): Delete an engagement chat message - [Get all cobrowse product tours](https://docs.gleap.io/api-reference/engagement-cobrowse/get-all-cobrowse-product-tours.md): Get the engagement cobrowse product tours of a project, newest first. Supports filtering by any field via query parameters, plus `skip`, `limit` and `sort` (e.g. `sort=-createdAt`). `limit` defaults to 1000 when omitted; when supplied, values above 100 are clamped to 100. Filtering by `project` or `… - [Create a new cobrowse product tour](https://docs.gleap.io/api-reference/engagement-cobrowse/create-a-new-cobrowse-product-tour.md): Create a new engagement cobrowse product tour. `type`, `project`, `organisation` and `createdBy` are set server-side and ignored if supplied. `config.type` is set server-side as well. - [Get a cobrowse product tour](https://docs.gleap.io/api-reference/engagement-cobrowse/get-a-cobrowse-product-tour.md): Get an engagement cobrowse product tour - [Update a cobrowse product tour](https://docs.gleap.io/api-reference/engagement-cobrowse/update-a-cobrowse-product-tour.md): Update an engagement cobrowse product tour. Any pending (not yet sent) deliveries for this engagement are discarded and re-queued from the updated document. While an engagement is live, its audience, targeting and scheduling fields cannot be changed (for `fixed` frequency engagements neither can its… - [Delete a cobrowse product tour](https://docs.gleap.io/api-reference/engagement-cobrowse/delete-a-cobrowse-product-tour.md): Delete an engagement cobrowse product tour - [Get all emails](https://docs.gleap.io/api-reference/engagement-email/get-all-emails.md): Get the engagement emails of a project, newest first. Supports filtering by any field via query parameters, plus `skip`, `limit` and `sort` (e.g. `sort=-createdAt`). `limit` defaults to 1000 when omitted; when supplied, values above 100 are clamped to 100. Filtering by `project` or `organisation` is… - [Create a new email](https://docs.gleap.io/api-reference/engagement-email/create-a-new-email.md): Create a new engagement email. `type`, `project`, `organisation` and `createdBy` are set server-side and ignored if supplied. - [Get an email](https://docs.gleap.io/api-reference/engagement-email/get-an-email.md): Get an engagement email - [Update an email](https://docs.gleap.io/api-reference/engagement-email/update-an-email.md): Update an engagement email. Any pending (not yet sent) deliveries for this engagement are discarded and re-queued from the updated document. While an engagement is live, its audience, targeting and scheduling fields cannot be changed (for `fixed` frequency engagements neither can its content); pause… - [Delete an email](https://docs.gleap.io/api-reference/engagement-email/delete-an-email.md): Permanently delete an engagement email, including its delivery records. This cannot be undone. - [Send email preview](https://docs.gleap.io/api-reference/engagement-email/send-email-preview.md): Send email preview - [Get all engagement news articles](https://docs.gleap.io/api-reference/engagement-news/get-all-engagement-news-articles.md): Get the engagement news articles of a project, newest first. Supports filtering by any field via query parameters, plus `skip`, `limit` and `sort` (e.g. `sort=-createdAt`). `limit` defaults to 1000 when omitted; when supplied, values above 100 are clamped to 100. Filtering by `project` or `organisat… - [Create a new engagement news article](https://docs.gleap.io/api-reference/engagement-news/create-a-new-engagement-news-article.md): Create a news article for a project. `subject` is required, either as `{ localized: { en: "..." } }` or as a bare per-language map `{ en: "..." }` (canonicalized server-side; same for `message` and `markdownMessage`). `sender` defaults to the authenticated user and `trigger` defaults to `sessionStar… - [Get an engagement news article](https://docs.gleap.io/api-reference/engagement-news/get-an-engagement-news-article.md): Get a news article by id. - [Update a news article.](https://docs.gleap.io/api-reference/engagement-news/update-a-news-article.md): Update an engagement news article. Any pending (not yet sent) deliveries for this engagement are discarded and re-queued from the updated document. While an engagement is live, its audience, targeting and scheduling fields cannot be changed (for `fixed` frequency engagements neither can its content)… - [Delete a news article.](https://docs.gleap.io/api-reference/engagement-news/delete-a-news-article.md): Delete an engagement news article - [Get all product tours](https://docs.gleap.io/api-reference/engagement-product-tour/get-all-product-tours.md): Get the engagement product tours of a project, newest first. Supports filtering by any field via query parameters, plus `skip`, `limit` and `sort` (e.g. `sort=-createdAt`). `limit` defaults to 1000 when omitted; when supplied, values above 100 are clamped to 100. Filtering by `project` or `organisat… - [Create a new product tour](https://docs.gleap.io/api-reference/engagement-product-tour/create-a-new-product-tour.md): Create a new engagement product tour. `type`, `project`, `organisation` and `createdBy` are set server-side and ignored if supplied. `config.type` is set server-side as well. - [Get a product tour](https://docs.gleap.io/api-reference/engagement-product-tour/get-a-product-tour.md): Get an engagement product tour - [Update a product tour](https://docs.gleap.io/api-reference/engagement-product-tour/update-a-product-tour.md): Update an engagement product tour. Any pending (not yet sent) deliveries for this engagement are discarded and re-queued from the updated document. While an engagement is live, its audience, targeting and scheduling fields cannot be changed (for `fixed` frequency engagements neither can its content)… - [Delete a product tour](https://docs.gleap.io/api-reference/engagement-product-tour/delete-a-product-tour.md): Delete an engagement product tour - [Get all push notifications](https://docs.gleap.io/api-reference/engagement-push-notification/get-all-push-notifications.md): Get the engagement push notifications of a project, newest first. Supports filtering by any field via query parameters, plus `skip`, `limit` and `sort` (e.g. `sort=-createdAt`). `limit` defaults to 1000 when omitted; when supplied, values above 100 are clamped to 100. Filtering by `project` or `orga… - [Create a new push notification](https://docs.gleap.io/api-reference/engagement-push-notification/create-a-new-push-notification.md): Create a new engagement push notification. `type`, `project`, `organisation` and `createdBy` are set server-side and ignored if supplied. - [Get a push notification](https://docs.gleap.io/api-reference/engagement-push-notification/get-a-push-notification.md): Get an engagement push notification - [Update a push notification](https://docs.gleap.io/api-reference/engagement-push-notification/update-a-push-notification.md): Update an engagement push notification. Any pending (not yet sent) deliveries for this engagement are discarded and re-queued from the updated document. While an engagement is live, its audience, targeting and scheduling fields cannot be changed (for `fixed` frequency engagements neither can its con… - [Delete a push notification](https://docs.gleap.io/api-reference/engagement-push-notification/delete-a-push-notification.md): Delete an engagement push notification - [Get all surveys](https://docs.gleap.io/api-reference/engagement-survey/get-all-surveys.md): Get the engagement surveys of a project, newest first. Supports filtering by any field via query parameters, plus `skip`, `limit` and `sort` (e.g. `sort=-createdAt`). `limit` defaults to 1000 when omitted; when supplied, values above 100 are clamped to 100. Filtering by `project` or `organisation` i… - [Create a new survey](https://docs.gleap.io/api-reference/engagement-survey/create-a-new-survey.md): Create a new engagement survey. `type`, `project`, `organisation` and `createdBy` are set server-side and ignored if supplied. - [Get a survey](https://docs.gleap.io/api-reference/engagement-survey/get-a-survey.md): Get an engagement survey - [Update a survey](https://docs.gleap.io/api-reference/engagement-survey/update-a-survey.md): Update an engagement survey. Any pending (not yet sent) deliveries for this engagement are discarded and re-queued from the updated document. While an engagement is live, its audience, targeting and scheduling fields cannot be changed (for `fixed` frequency engagements neither can its content); paus… - [Delete a survey](https://docs.gleap.io/api-reference/engagement-survey/delete-a-survey.md): Permanently delete an engagement survey. This also deletes the survey's form definition and its delivery records. Already-collected responses are kept, but exporting them afterwards will no longer resolve question labels. This cannot be undone. - [Get all survey responses](https://docs.gleap.io/api-reference/engagement-survey/get-all-survey-responses.md): Get the responses of a survey, unread first, then newest first. Supports `skip`, `limit` (defaults to 1000 when omitted; supplied values above 100 are clamped to 100) and field filters via query parameters. - [Export survey responses](https://docs.gleap.io/api-reference/engagement-survey/export-survey-responses.md): Export all responses of a survey as a downloadable file. CSV by default (`Content-Type: text/csv`, sent as an attachment named after the survey). Query parameters: `format=json` returns the same data as JSON instead; `label=keys` uses internal field names as column headers instead of the localized q… - [Mark all survey responses as read](https://docs.gleap.io/api-reference/engagement-survey/mark-all-survey-responses-as-read.md): Mark all engagement survey responses as read - [Get survey response samples](https://docs.gleap.io/api-reference/engagement-survey/get-survey-response-samples.md): Get a random sample of up to 10,000 responses for a survey, for client-side aggregation. Returns `{ samples, sampleSize, count }` where `count` is the total number of matching responses and `sampleSize` is the 10,000 sampling ceiling. Each sample is trimmed to `createdAt`, `formData`, `shareToken` a… - [Summarize survey responses](https://docs.gleap.io/api-reference/engagement-survey/summarize-survey-responses.md): Generate an AI summary of a survey's responses. Uses up to the 999 newest responses, truncated to fit a 30,000-token budget, so very large surveys are summarized from a recent subset. The generated summary is also stored on the survey as `aiSummary`. Consumes AI credits; returns `{ summary }` and fa… - [Get all tooltips](https://docs.gleap.io/api-reference/engagement-tooltip/get-all-tooltips.md): Get the engagement tooltips of a project, newest first. Supports filtering by any field via query parameters, plus `skip`, `limit` and `sort` (e.g. `sort=-createdAt`). `limit` defaults to 1000 when omitted; when supplied, values above 100 are clamped to 100. Filtering by `project` or `organisation`… - [Create a new tooltip](https://docs.gleap.io/api-reference/engagement-tooltip/create-a-new-tooltip.md): Create a new engagement tooltip. `type`, `project`, `organisation` and `createdBy` are set server-side and ignored if supplied. - [Get a tooltip](https://docs.gleap.io/api-reference/engagement-tooltip/get-a-tooltip.md): Get an engagement tooltip - [Update a tooltip](https://docs.gleap.io/api-reference/engagement-tooltip/update-a-tooltip.md): Update an engagement tooltip. Any pending (not yet sent) deliveries for this engagement are discarded and re-queued from the updated document. While an engagement is live, its audience, targeting and scheduling fields cannot be changed (for `fixed` frequency engagements neither can its content); pau… - [Delete a tooltip](https://docs.gleap.io/api-reference/engagement-tooltip/delete-a-tooltip.md): Delete an engagement tooltip - [Get all WhatsApp messages](https://docs.gleap.io/api-reference/engagement-whatsapp-messages/get-all-whatsapp-messages.md): Get the engagement WhatsApp messages of a project, newest first. Supports filtering by any field via query parameters, plus `skip`, `limit` and `sort` (e.g. `sort=-createdAt`). `limit` defaults to 1000 when omitted; when supplied, values above 100 are clamped to 100. Filtering by `project` or `organ… - [Create a new whatsapp message](https://docs.gleap.io/api-reference/engagement-whatsapp-messages/create-a-new-whatsapp-message.md): Create a new engagement WhatsApp message. `type`, `project`, `organisation` and `createdBy` are set server-side and ignored if supplied. - [Get a whatsapp message](https://docs.gleap.io/api-reference/engagement-whatsapp-messages/get-a-whatsapp-message.md): Get an engagement whatsapp message - [Update a whatsapp message](https://docs.gleap.io/api-reference/engagement-whatsapp-messages/update-a-whatsapp-message.md): Update an engagement WhatsApp message. Any pending (not yet sent) deliveries for this engagement are discarded and re-queued from the updated document. While an engagement is live, its audience, targeting and scheduling fields cannot be changed (for `fixed` frequency engagements neither can its cont… - [Delete a whatsapp message](https://docs.gleap.io/api-reference/engagement-whatsapp-messages/delete-a-whatsapp-message.md): Permanently delete an engagement WhatsApp message, including its delivery records. This cannot be undone. - [Send a whatsapp template message](https://docs.gleap.io/api-reference/engagement-whatsapp-messages/send-a-whatsapp-template-message.md): Send a WhatsApp template message to a phone number with optional custom variable values. The customValues keys must match the templateVariable names from your variable mapping. In addition, the reserved keys `header_image`, `header_video`, `header_document` and `header_media` override the template's… - [Get all checklists](https://docs.gleap.io/api-reference/engagement-checklist/get-all-checklists.md): Get the engagement checklists of a project, newest first. Supports filtering by any field via query parameters, plus `skip`, `limit` and `sort` (e.g. `sort=-createdAt`). `limit` defaults to 1000 when omitted; when supplied, values above 100 are clamped to 100. Filtering by `project` or `organisation… - [Create a new checklist](https://docs.gleap.io/api-reference/engagement-checklist/create-a-new-checklist.md): Create a new engagement checklist. `type`, `project`, `organisation` and `createdBy` are set server-side and ignored if supplied. - [Get a checklist](https://docs.gleap.io/api-reference/engagement-checklist/get-a-checklist.md): Get an engagement checklist - [Update a checklist](https://docs.gleap.io/api-reference/engagement-checklist/update-a-checklist.md): Update an engagement checklist. Any pending (not yet sent) deliveries for this engagement are discarded and re-queued from the updated document. While an engagement is live, its audience, targeting and scheduling fields cannot be changed (for `fixed` frequency engagements neither can its content); p… - [Delete a checklist](https://docs.gleap.io/api-reference/engagement-checklist/delete-a-checklist.md): Delete an engagement checklist - [Get engagement activities](https://docs.gleap.io/api-reference/engagement/get-engagement-activities.md): Get the activities recorded for a single engagement, paginated via `skip`/`limit`. - [Get engagement activities count](https://docs.gleap.io/api-reference/engagement/get-engagement-activities-count.md): Get the number of activities recorded for a single engagement. Returns `{ count }`. - [Find engagement recipients](https://docs.gleap.io/api-reference/engagement/find-engagement-recipients.md): Get the recipients of a single engagement. Returns `{ data, total }`. - [Get engagement statistics](https://docs.gleap.io/api-reference/engagement/get-engagement-statistics.md): Get delivery and response statistics for a single engagement. Responds 404 for an unknown engagement. - [Get engagement fixed audience samples](https://docs.gleap.io/api-reference/engagement/get-engagement-fixed-audience-samples.md): Estimate the fixed audience of an engagement. Send `targetAudience` and `conditions` in the body to preview a candidate audience without saving it. Returns `{ sample, count, limitReached, limit }`. On an internal error the endpoint still answers 200 with an empty sample and `count: 0`. - [Clone engagement](https://docs.gleap.io/api-reference/engagement/clone-engagement.md): Clone an engagement. The copy is always created as a draft named "Copy of "; `name` and `status` sent in the body are ignored. Any other body fields override the cloned values. - [Create AI content](https://docs.gleap.io/api-reference/ai-content/create-ai-content.md): Create an AI content entry. If an entry with the same contentId already exists in the project it is updated instead. - [Get AI content by contentId](https://docs.gleap.io/api-reference/ai-content/get-ai-content-by-contentid.md): Get AI content by contentId - [Update AI content by contentId](https://docs.gleap.io/api-reference/ai-content/update-ai-content-by-contentid.md): Update an AI content entry by its contentId. If no entry with that contentId exists, one is created (upsert). - [Delete AI content by contentId](https://docs.gleap.io/api-reference/ai-content/delete-ai-content-by-contentid.md): Delete AI content by contentId - [Delete old AI content batches](https://docs.gleap.io/api-reference/ai-content/delete-old-ai-content-batches.md): Delete all AI content except the current batch - [Delete AI content by batchId](https://docs.gleap.io/api-reference/ai-content/delete-ai-content-by-batchid.md): Delete all AI content by batchId - [List YouTube content](https://docs.gleap.io/api-reference/ai-content/list-youtube-content.md): List the project's imported YouTube video content (acknowledged, non-skipped entries), newest first. - [Import YouTube video](https://docs.gleap.io/api-reference/ai-content/import-youtube-video.md): Import a single YouTube video for AI content analysis - [Preview YouTube URL](https://docs.gleap.io/api-reference/ai-content/preview-youtube-url.md): Preview a YouTube URL before importing. Fetches metadata + an exact cost estimate (in cents) for the video or full playlist/channel. For large playlists this can take a few seconds — the client is expected to show a spinner. - [Import YouTube playlist/channel](https://docs.gleap.io/api-reference/ai-content/import-youtube-playlistchannel.md): Import a YouTube playlist or channel for bulk AI content analysis - [Delete YouTube video content](https://docs.gleap.io/api-reference/ai-content/delete-youtube-video-content.md): Delete a single YouTube video's content - [Delete YouTube batch content](https://docs.gleap.io/api-reference/ai-content/delete-youtube-batch-content.md): Delete all YouTube content from a batch - [Get all modals](https://docs.gleap.io/api-reference/engagement-modal/get-all-modals.md): Get the engagement modals of a project, newest first. Supports filtering by any field via query parameters, plus `skip`, `limit` and `sort` (e.g. `sort=-createdAt`). `limit` defaults to 1000 when omitted; when supplied, values above 100 are clamped to 100. Filtering by `project` or `organisation` is… - [Create a new modal](https://docs.gleap.io/api-reference/engagement-modal/create-a-new-modal.md): Create a new engagement modal. `type`, `project`, `organisation` and `createdBy` are set server-side and ignored if supplied. - [Get a modal](https://docs.gleap.io/api-reference/engagement-modal/get-a-modal.md): Get an engagement modal - [Update a modal](https://docs.gleap.io/api-reference/engagement-modal/update-a-modal.md): Update an engagement modal. Any pending (not yet sent) deliveries for this engagement are discarded and re-queued from the updated document. While an engagement is live, its audience, targeting and scheduling fields cannot be changed (for `fixed` frequency engagements neither can its content); pause… - [Delete a modal](https://docs.gleap.io/api-reference/engagement-modal/delete-a-modal.md): Delete an engagement modal - [Get all invitations for a user](https://docs.gleap.io/api-reference/invitation/get-all-invitations-for-a-user.md): Get all invitations for a user. - [Accept or decline an invitation](https://docs.gleap.io/api-reference/invitation/accept-or-decline-an-invitation.md): Accept or decline an invitation addressed to the authenticated user. On accept the user is added to the organisation or project with the invitation's role. The invitation is consumed (deleted) either way. Fails with 409 if the invitation was issued to a different email, the user has not confirmed th… - [Delete an invitation](https://docs.gleap.io/api-reference/invitation/delete-an-invitation.md): Delete an invitation. - [Update an invitation's role](https://docs.gleap.io/api-reference/invitation/update-an-invitations-role.md): Change the role an invitation will grant when accepted. Invitations are always created with the `user` role, so this is the way to grant a different role before acceptance. Requires invitation permissions on the project given in the `project` header. - [Get all invitations for an organisation](https://docs.gleap.io/api-reference/invitation/get-all-invitations-for-an-organisation.md): Get all invitations for an organisation. - [Invite people to an organisation](https://docs.gleap.io/api-reference/invitation/invite-people-to-an-organisation.md): Invite one or more people (body: `{ "emails": [...] }`) to an organisation. Each invitation is created with the `user` role and an invitation email is sent. Returns the subset of submitted email addresses that were SKIPPED because they are already members; an empty array means every address was invi… - [Get all invitations for a project](https://docs.gleap.io/api-reference/invitation/get-all-invitations-for-a-project.md): Get all invitations for a project. The project is taken from the required `project` header. - [Invite people to a project](https://docs.gleap.io/api-reference/invitation/invite-people-to-a-project.md): Invite one or more people (body: `{ "emails": [...] }`) to the project given in the required `project` header. Each invitation is created with the `user` role and an invitation email is sent. Returns the subset of submitted email addresses that were SKIPPED because they already belong to the project… - [Get all users for a project](https://docs.gleap.io/api-reference/project/get-all-users-for-a-project.md): Get everyone who can access this project: direct project members plus all members of its organisation. Each entry carries `type` (`project` or `organisation`) and `role`. Service accounts are excluded. - [Update a project member's role](https://docs.gleap.io/api-reference/project/update-a-project-members-role.md): Change a member's role within the project given in the required `project` header. Only the project creator or an admin of the project/organisation may do this, and you cannot change your own role (403). Returns `true`. - [Remove a member from a project](https://docs.gleap.io/api-reference/project/remove-a-member-from-a-project.md): Remove a member from the project given in the required `project` header. The user is also removed from every team in that project. The user account itself is not deleted. Returns 404 if the user is not a direct member of the project (organisation-level members cannot be removed here). - [Get current user.](https://docs.gleap.io/api-reference/user/get-current-user.md): Get the authenticated user. Credentials and internal fields (`password`, `code`, `serviceAccountApiToken`, `marketingTracking`, WebAuthn key material) are never included in the response. - [Hand over the user's open tickets to their team](https://docs.gleap.io/api-reference/user/hand-over-the-users-open-tickets-to-their-team.md): Hands over the authenticated user's open conversations to their teammates. Only OPEN tickets that are currently assigned to the user AND belong to a team are affected, at most 100 per call; teams using manual assignment are skipped. Returns `{ success: true }`. - [Get unified inbox tickets](https://docs.gleap.io/api-reference/user/get-unified-inbox-tickets.md): Get open conversations from every project the authenticated user can access. Only INQUIRY tickets are returned; done, snoozed, archived, spam, hidden and merged-duplicate tickets are excluded. Returns `{ tickets: [...] }`. Query parameters: `type` is a filter preset, one of `my` (or `personalinbox`)… - [Get unified inbox ticket](https://docs.gleap.io/api-reference/user/get-unified-inbox-ticket.md): Get a single unified-inbox conversation. Returns 404 if the ticket is not of type INQUIRY or the authenticated user has no INQUIRY access to its project. - [Update the current user](https://docs.gleap.io/api-reference/user/update-the-current-user.md): Update the authenticated user's own profile. The `{userId}` path segment is ignored; you can only ever update yourself. Sending an empty string for a field clears it; omitted fields are left untouched. - [Get current user's role permissions.](https://docs.gleap.io/api-reference/user/get-current-users-role-permissions.md): Returns the roles and effective permissions of the authenticated user, scoped to the `organisationId` query parameter if given, otherwise to the organisation owning the `project` header, otherwise to the first organisation the user is a member of. Responds 404 when the organisation, project or role… - [Sign up a new user](https://docs.gleap.io/api-reference/user/sign-up-a-new-user.md): Register a new dashboard user. Sends a 6-digit verification code by email and returns a JWT plus the created (still unconfirmed) user. `email`, `name` and `turnstileToken` are required in practice; a `name` containing a URL is rejected as spam. Rate limited to 30 requests per hour per IP. - [Verify a user's email address](https://docs.gleap.io/api-reference/user/verify-a-users-email-address.md): Confirm a new user's email address with the 6-digit code sent at signup. The code expires 10 minutes after it was issued. On success any pending invitations for that email are accepted and a JWT plus the confirmed user is returned. Rate limited to 30 requests per hour per IP. - [Resend a verification code to the user's email.](https://docs.gleap.io/api-reference/user/resend-a-verification-code-to-the-users-email.md): Resend a verification code to the user's email. - [Authenticate a session for websockets](https://docs.gleap.io/api-reference/user/authenticate-a-session-for-websockets.md): Authenticate a widget session for websocket use. Authenticated with the project's public API key (`api-token` header) plus a signed session identity (`gleap-id`/`gleap-hash` headers), not with a dashboard JWT. - [Authorize a session channel subscription](https://docs.gleap.io/api-reference/user/authorize-a-session-channel-subscription.md): Authorize a websocket subscription to the caller's own `private-session-` channel. Any other channel name returns `{ "valid": false }` with HTTP 200. Authenticated with the project's public API key (`api-token` header) plus a signed session identity (`gleap-id`/`gleap-hash` headers). - [Get statisticsbar chart](https://docs.gleap.io/api-reference/statistics/get-statisticsbar-chart.md): Get bar chart data for various statistics - [Get statisticsfacts](https://docs.gleap.io/api-reference/statistics/get-statisticsfacts.md): Get fact data for various statistics - [Get statisticslists](https://docs.gleap.io/api-reference/statistics/get-statisticslists.md): Get list data for various statistics - [Get statisticslistsexport](https://docs.gleap.io/api-reference/statistics/get-statisticslistsexport.md): Export list data as CSV. Returns a UTF-8 CSV file as an attachment (`Content-Disposition: attachment`), not JSON. - [Get statisticsheatmap](https://docs.gleap.io/api-reference/statistics/get-statisticsheatmap.md): Get heatmap data for activity patterns - [Get statisticsemail overview](https://docs.gleap.io/api-reference/statistics/get-statisticsemail-overview.md): Get email overview statistics. Pass `outboundId` (query) to restrict the statistics to a single outbound campaign. - [Get statisticsemail client usage](https://docs.gleap.io/api-reference/statistics/get-statisticsemail-client-usage.md): Get email client usage statistics. Pass `outboundId` (query) to restrict the statistics to a single outbound campaign. - [Get statisticsemail client bounces](https://docs.gleap.io/api-reference/statistics/get-statisticsemail-client-bounces.md): Get email client bounce statistics. Pass `outboundId` (query) to restrict the statistics to a single outbound campaign. - [Get statisticsraw data](https://docs.gleap.io/api-reference/statistics/get-statisticsraw-data.md): Get raw statistics data. Filterable fields: `actionType` (e.g. `HOME_MENU_CLICK`), `resourceType` (e.g. `WIDGET`), `actionUser`, `associatedEntity`, `description`, `first`, `rowId`, and the `data.*` fields (`data.type`, `data.tags`, `data.processingUser`, `data.ticketId`, …). Suffix a filter with `_… - [Search knowledge documents](https://docs.gleap.io/api-reference/knowledge/search-knowledge-documents.md): Search through knowledge base documents using vector search and reranking. Returns matching documents from help-center articles, FAQs/snippets, websites, news, YouTube videos, and code knowledge. `limit` caps the number of returned documents; retrieval returns at most 10 documents regardless of a hi… - [Find similar tickets](https://docs.gleap.io/api-reference/knowledge/find-similar-tickets.md): Search for similar tickets using vector similarity search. Returns tickets with a similarity score of at least 0.3. - [Get content tags in use](https://docs.gleap.io/api-reference/knowledge/get-content-tags-in-use.md): Get the distinct set of content tags actually in use across the project's knowledge content (snippets/FAQ/files/youtube answers, help-center articles, and web-crawler pages). Read-only — does not read or modify the project's tag registry. - [List all translatable entries](https://docs.gleap.io/api-reference/translations/list-all-translatable-entries.md): Returns `{ entries: [...] }` containing every translatable entity for the project (help-center articles, collections, email templates and static translations), each with its field list, source language and available languages. Use the `type` query parameter to filter by entity type. - [Get a single translatable entry](https://docs.gleap.io/api-reference/translations/get-a-single-translatable-entry.md): Returns the full content of a single translatable entry in the specified language. The entry ID uses the format "type:id" as returned by GET /translations/entries. The id part is a Mongo id for `article`, `collection` and `emailtemplate` (e.g. "article:507f1f77bcf86cd799439011") and the translation… - [Update a translatable entry](https://docs.gleap.io/api-reference/translations/update-a-translatable-entry.md): Pushes a translation for a specific entry and language. The entry ID uses the format "type:id" as returned by GET /translations/entries. The id part is a Mongo id for `article`, `collection` and `emailtemplate` (e.g. "article:507f1f77bcf86cd799439011") and the translation key for `statictranslation`… - [Get AI model catalog](https://docs.gleap.io/api-reference/aimodels/get-ai-model-catalog.md): Returns the full model catalog, the curated picker lists (Kai agent, Kai Code cloud, Kai Code OpenCode, transcription), and the per-runtime default model ids. Internal fields and markup metadata are not exposed; customer-facing cost figures are pre-computed. - [Ask a question about the project's connected source repositories](https://docs.gleap.io/api-reference/code/ask-a-question-about-the-projects-connected-source-repositories.md): Forwards the question to the code analyzer, which clones all repositories connected to this project, investigates them, and returns a user-facing answer (logic, behavior, click paths). The analyzer's system prompt enforces that no code, identifiers or secrets are included in answers. With no reposit… - [List contact memory entries](https://docs.gleap.io/api-reference/contactmemory/list-contact-memory-entries.md): List memory entries (no content) for a contact session. - [Create or update a contact memory entry](https://docs.gleap.io/api-reference/contactmemory/create-or-update-a-contact-memory-entry.md): Create or upsert a memory entry by name. Returns `{ ok: true, entries: }`; invalid input returns 400 and an unknown session 404. Staff writes work even when the project's contact-memory feature is disabled. - [Clear all contact memory entries](https://docs.gleap.io/api-reference/contactmemory/clear-all-contact-memory-entries.md): Clear all memory entries for a contact. - [Get one contact memory entry](https://docs.gleap.io/api-reference/contactmemory/get-one-contact-memory-entry.md): Get the full content of a single memory entry. - [Update a contact memory entry](https://docs.gleap.io/api-reference/contactmemory/update-a-contact-memory-entry.md): Create or replace the memory entry with this name; the entry is upserted, so a PUT to a name that does not exist yet creates it. This is a full replace, not a patch: omitting `description` clears the stored description. Returns `{ ok: true, entries: }`; invalid input returns… - [Delete a contact memory entry](https://docs.gleap.io/api-reference/contactmemory/delete-a-contact-memory-entry.md): Delete one memory entry by name. - [Find all custom components.](https://docs.gleap.io/api-reference/custom-components/find-all-custom-components.md): Find all custom components of a project. - [Create a new custom component.](https://docs.gleap.io/api-reference/custom-components/create-a-new-custom-component.md): Create a new custom AI message component. The template is sanitized server-side; unsafe markup is rejected with 400. - [Find one custom component.](https://docs.gleap.io/api-reference/custom-components/find-one-custom-component.md): Find one custom component by ID. - [Update a custom component.](https://docs.gleap.io/api-reference/custom-components/update-a-custom-component.md): Update a custom component. The template is sanitized server-side; unsafe markup is rejected with 400. - [Delete a custom component.](https://docs.gleap.io/api-reference/custom-components/delete-a-custom-component.md): Delete a custom component. - [Check whether the visual editor will work on a URL](https://docs.gleap.io/api-reference/engagement-editor/check-whether-the-visual-editor-will-work-on-a-url.md): Server-side precheck for the tooltip / product-tour editor. Fetches the given URL (SSRF-guarded) and reports blockers (COOP, CSP frame-src, login/cross-origin redirect, invalid URL) so the dashboard can give the user actionable feedback instead of opening a blank editor. - [Deliver a frontend tool execution result.](https://docs.gleap.io/api-reference/frontendtools/deliver-a-frontend-tool-execution-result.md): Deliver the result of a frontend tool execution from the customer's app. Called by the Gleap SDK. Requires the project API key in the `api-token` header plus a valid widget session (`gleap-id`/`gleap-hash` headers); returns 401 otherwise and 403 if the calling domain is not an allowed widget domain.… - [List companies](https://docs.gleap.io/api-reference/company/list-companies.md): List a project's companies, most recently seen first. Paginated via `skip` (default 0) and `limit` (default 50, maximum 200); `search` filters by a case-insensitive substring match on the company name. Returns a summary of each company (`companyId`, `name`, `plan`, `value`, `domain`, `lastSeenAt`, `… - [Count companies](https://docs.gleap.io/api-reference/company/count-companies.md): Number of companies matching the same `search` and `conditions` the list route accepts. Drives the live match count in the pipeline bulk-add filter. - [Get a company](https://docs.gleap.io/api-reference/company/get-a-company.md): Get one company by its external `companyId`, the identifier your app sends via the SDK, not the Gleap `_id`. - [Create or update a company](https://docs.gleap.io/api-reference/company/create-or-update-a-company.md): Create or update a company by its external `companyId` (upsert). Only `name`, `plan`, `domain`, `value`, `sla`, `address` and `customData` are accepted; any other field is ignored. `address` and `customData` are merged into the existing values rather than replaced, and `customData` accepts up to 100… - [Get company members](https://docs.gleap.io/api-reference/company/get-company-members.md): List the contacts linked to a company, most recently active first. Paginated via `skip` (default 0) and `limit` (default 50, maximum 200). Each row contains only `_id`, `name`, `email`, `userId`, `avatar` and `lastActivity`. - [Add a company member](https://docs.gleap.io/api-reference/company/add-a-company-member.md): Link a contact to this company. `migrateTickets` opts into re-stamping the contact's existing conversations onto this company — off by default, since the stamp records which company a past conversation was had with. - [Get company conversations](https://docs.gleap.io/api-reference/company/get-company-conversations.md): List conversations stamped with this company at creation time, newest activity first. Paginated via `skip` (default 0) and `limit` (default 25, maximum 100). Conversations a contact had before being linked to the company are not included unless they were migrated. - [Remove a company member](https://docs.gleap.io/api-reference/company/remove-a-company-member.md): Unlink a contact from this company. Existing conversations keep their original company stamp. - [Upload a file](https://docs.gleap.io/api-reference/uploads/upload-a-file.md): Upload a file and get back its permanent public URL on the Gleap CDN. Send the request as `multipart/form-data` with the file in a form field named `file` (maximum size 100 MB). Files are stored in a folder scoped to the project passed in the `project` header. - [Import an image from a URL](https://docs.gleap.io/api-reference/uploads/import-an-image-from-a-url.md): Import an image that is already hosted at a publicly reachable http(s) URL. The server downloads the image, verifies it really is one (PNG, JPEG, GIF, WebP, SVG or BMP; maximum 100 MB), stores a copy on the Gleap CDN, and returns the new permanent `fileUrl`. Useful for migrating help center article… - [List pipelines](https://docs.gleap.io/api-reference/pipelines/list-pipelines.md): List the pipelines visible to the authenticated user, most recently updated first. A pipeline is visible when it is public or explicitly shared with the user — an API service account only sees public pipelines and those it was added to. Each pipeline carries its stages in `lanes` (`id`, `title`, `co… - [Get a pipeline](https://docs.gleap.io/api-reference/pipelines/get-a-pipeline.md): Get one pipeline by its id, including its stages (`lanes`) and column configuration. A pipeline holds records of exactly one type: companies or contacts (`recordType`). - [List pipeline fields](https://docs.gleap.io/api-reference/pipelines/list-pipeline-fields.md): The field definitions of one pipeline. Entry `values` are keyed by each field's `fieldId` — read these to know which keys an entry accepts and how to render them (`label`, `type`). - [List entries of a stage](https://docs.gleap.io/api-reference/pipelines/list-entries-of-a-stage.md): List the entries of one stage, ordered by their board position. `laneId` is the stage's id from the pipeline's `lanes`. Paginated via `skip` (default 0) and `limit` (default 50, maximum 200). - [Add a record to a pipeline](https://docs.gleap.io/api-reference/pipelines/add-a-record-to-a-pipeline.md): Add a company or contact to a pipeline. `recordId` is the Gleap id of the record — a company's `_id` (see GET /companies) or a contact's `id`, matching the pipeline's `recordType`. `laneId` picks the stage and defaults to the pipeline's first stage; `values` sets initial field values keyed by `field… - [Move an entry](https://docs.gleap.io/api-reference/pipeline-entries/move-an-entry.md): Move an entry to another stage of its pipeline. `laneId` is the target stage's id from the pipeline's `lanes`; an id that does not exist on the entry's pipeline is ignored rather than errored. Omit `lexorank` to place the entry at the end of the target stage — it is the board position rank and only… - [Update entry values](https://docs.gleap.io/api-reference/pipeline-entries/update-entry-values.md): Update an entry's field values. Keys are the pipeline's field `fieldId`s (see GET /pipelines/{pipelineId}/properties). Sent keys are merged into the existing values — fields you do not send are left untouched — and sending `null` clears a field. Values must be primitives (string, number, boolean); a… - [Get an entry](https://docs.gleap.io/api-reference/pipeline-entries/get-an-entry.md): Get one entry together with its pipeline, as `{ entry, pipeline }`. Also powers the ticket sidebar's "Pipeline" panel and the board's entry route (…/entries/:entryId). 404 when the entry isn't in this project. - [Remove an entry](https://docs.gleap.io/api-reference/pipeline-entries/remove-an-entry.md): Remove an entry from its pipeline. Only the pipeline membership is deleted — the underlying company or contact is untouched. ## OpenAPI Specs - [api-docs](https://api.gleap.io/api-docs.json) ## Optional - [Website](https://gleap.io) - [Helpcenter](https://help.gleap.io) - [Roadmap](http://feedback.gleap.io) - [Blog](https://www.gleap.io/blog)