### Example Hookpoint URL Configuration Source: https://docs.omnidesk.io/omnidesk/link-customer/api-sync-on-contact.md This is an example of how you might configure the hookpoint URL in Omnidesk settings. ```text https://api.brand.com/omnidesk/customerlookup ``` -------------------------------- ### Minimal NodeJS Webhook Endpoint Example Source: https://docs.omnidesk.io/omnidesk/webhooks.md This example demonstrates a basic NodeJS HTTP server that can handle OPTIONS and POST requests, fulfilling the minimal requirements for an Omnidesk webhook endpoint. It responds with a 202 Accepted status before processing the payload, suitable for development and exploration. ```javascript import * as http from "node:http"; http.createServer(async function (req, res) { // 1. Handle only OPTIONS and POST http-requests. if (req.method === "OPTIONS") { res.writeHead(204, { allow: "OPTIONS, POST", }).end(); return; } else if (req.method !== "POST") { res.writeHead(405, { allow: "OPTIONS, POST", }).end(); return; } // Retrieve the request contents (also referred to as payload). const payload = await streamToString(req); // 2. Send a success response. res.writeHead(202).end(); // Parse the message payload. const { type, // The event type. timestamp, // Moment the event occurred (ISO8601 formatted). data, // Information about the event itself. } = JSON.parse(payload); // -- PUT YOUR (Potentially long-running) EVENT HANDLING TASKS HERE -- console.log(`Handling [${type}] event...`, data); }).listen(8080); function streamToString(req) { return new Promise((resolve, reject) => { const bufs = []; req.on("data", (d) => bufs.push(d)); req.on("end", () => resolve(Buffer.concat(bufs).toString("utf-8"))); req.on("error", (err) => reject(err)); }); } ``` -------------------------------- ### Ticket Creation Request Body Example Source: https://docs.omnidesk.io/omnidesk Example of a JSON request body for creating a ticket. This includes essential fields like assigned group, sender/recipient addresses, direction, channel, brand, and title. ```JSON { "assignedGroupID": 10002, "to": "helpdesk@brand.com", "from": "customer@freemail.com", "direction": "inbound", "channelID": 1, "brandID": 2, "title": "My first ticket", "formID": 12345 } ``` -------------------------------- ### Example URLs with Query Parameters Source: https://docs.omnidesk.io/omnidesk/link-customer/api-sync-on-contact.md Omnidesk constructs these URLs by appending query parameters for phone number or email address. ```text https://api.brand.com/omnidesk/customerlookup?channelAddressType=phoneNumber&address=%2B31612312311&ticketID=1234 https://api.brand.com/omnidesk/customerlookup?channelAddressType=email&address=thomas%40example.org&ticketID=1234 ``` -------------------------------- ### index (GET /api/v2/channel) Source: https://docs.omnidesk.io/omnidesk/api-specification/channel.md Returns all the channels. This endpoint requires the CHANNEL_READ permission. ```APIDOC ## GET /api/v2/channel ### Description Returns all the channels. ### Method GET ### Endpoint /api/v2/channel ### Permissions CHANNEL_READ ### Response #### Success Response (200) - (object) - Successful response ``` -------------------------------- ### Example URL for Primary ID Search Source: https://docs.omnidesk.io/omnidesk/link-customer/api-sync-on-contact.md This URL demonstrates how to search for a customer using their primary ID in your system. ```text https://api.brand.com/omnidesk/customerlookup?primaryID=42342345345 ``` -------------------------------- ### GET /api/v2/customer Source: https://docs.omnidesk.io/omnidesk/api-specification/customer.md Returns all the customers. This endpoint requires the CUSTOMER_READ permission. ```APIDOC ## GET /api/v2/customer ### Description Returns all the customers. ### Method GET ### Endpoint /api/v2/customer ### Permissions CUSTOMER_READ ### Response #### Success Response (200) - **(object)** - OK ``` -------------------------------- ### GET index Source: https://docs.omnidesk.io/omnidesk/api-specification/view.md Retrieves all existing views. This endpoint requires the VIEW_READ permission. ```APIDOC ## GET /api/v2/view ### Description Returns all the existing views. ### Method GET ### Endpoint /api/v2/view ### Permissions VIEW_READ ### Response #### Success Response (200) - **views** (array) - A list of existing views. ``` -------------------------------- ### Get User Settings Source: https://docs.omnidesk.io/omnidesk/api-specification/user.md Retrieves all settings for the current user. This endpoint requires the USER_READ permission. ```json {"openapi":"3.0.0","info":{"title":"Omnidesk API documentation","version":"1.0.0"},"tags":[{"name":"User","description":"**All the endpoints that can be called on the User controller.**\n\nEndpoints that require the `USER_READ` permission:\n\n- `GET` index\n \n- `GET` settings\n \n\nEndpoints that require the `API_RESERVE_USER` permission:\n\n- `POST` reserveUserForLiveChannel\n \n\nEndpoints that require the `USER_ANONYMOUS_BROWSING_UPDATE` permission:\n\n- `PUT` ticketIncognitoMode\n \n\nAll other endpoints require the `USER_CUD` permission."}],"servers":[{"url":"http://{{base_url}}"}],"security":[{"apikeyAuth":[]}], ``` ```json "components":{"securitySchemes":{"apikeyAuth":{"type":"http","scheme":"apikey"}}},"paths":{"/api/v2/user/settings":{"get":{"tags":["User"],"summary":"settings","description":"**Returns all the settings for this user.**","responses":{"200":{"description":"Successful response","content":{"application/json":{}}}}}}}}} ``` -------------------------------- ### GET index Source: https://docs.omnidesk.io/omnidesk/api-specification/form.md Returns all of the existing forms. Requires FORM_READ permission. ```APIDOC ## GET index ### Description Returns all of the existing forms. ### Method GET ### Endpoint /api/v2/form ### Parameters ### Request Example ### Response #### Success Response (200) - (object) - Successful response #### Response Example ```json { "example": "response body" } ``` ``` -------------------------------- ### GET /api/v2/user/settings Source: https://docs.omnidesk.io/omnidesk/api-specification/user.md Retrieves all settings associated with the current user. ```APIDOC ## GET /api/v2/user/settings ### Description Returns all the settings for this user. ### Method GET ### Endpoint /api/v2/user/settings ### Parameters ### Request Body ### Request Example ### Response #### Success Response (200) - (No specific fields documented) #### Response Example ```json {} ``` ``` -------------------------------- ### Example Ticket Creation Response Source: https://docs.omnidesk.io A successful ticket creation will return a JSON object containing the ticket's ID and other fields. ```json {"type":"item","item":{"id":"", "other ticket fields": ...}} ``` -------------------------------- ### List of Forms Response Source: https://docs.omnidesk.io/omnidesk/ticket/form-field.md Example response when requesting a list of forms. It includes basic information like ID, brand name, and title for each form. ```yaml type: "itemList" itemStart: 0 itemTotal: 2 itemLimit: 15 items: - id: 1 brandName: "Jupiter" title: "form1" name: "form1" - id: 2 brandName: "Jupiter" title: "form2" name: "form2" ``` -------------------------------- ### Show Widget Data Source: https://docs.omnidesk.io/omnidesk/api-specification/statisticsv2.md Retrieves all data for a widget intended for display. Specifics can be adjusted as shown in the example. Requires `API_STATISTICS` permission. ```json { "openapi": "3.0.0", "info": { "title": "Omnidesk API documentation", "version": "1.0.0" }, "tags": [ { "name": "Statisticsv2", "description": "**All the endpoints that can be called on the Statisticsv2 controller.**\n\nAll the endpoints require the `API_STATISTICS` permission, except for:\n\n- `POST` dashboardDelete\n \n- `PUT` dashboard\n \n\nWhich require the `DASHBOARD_CUD` permission." } ], "servers": [ { "url": "http://{{base_url}}" } ], "security": [ { "apikeyAuth": [] } ], "components": { "securitySchemes": { "apikeyAuth": { "type": "http", "scheme": "apikey" } } }, "paths": { "/api/v2/statisticsv2/showData": { "get": { "tags": [ "Statisticsv2" ], "summary": "showData", "description": "**Returns all data of this widget to show.**\n\nWidget data specifics can be added how is shown in the example. Adjust to your own needs.", "responses": { "200": { "description": "OK", "headers": { "Date": { "schema": { "type": "string" } }, "Server": { "schema": { "type": "number" } }, "X-Powered-By": { "schema": { "type": "string" } }, "X-Frame-Options": { "schema": { "type": "string" } }, "Strict-Transport-Security": { "schema": { "type": "string" } }, "X-Content-Type-Options": { "schema": { "type": "string" } }, "Cache-Control": { "schema": { "type": "string" } }, "Pragma": { "schema": { "type": "string" } }, "Access-Control-Allow-Orgin": { "schema": { "type": "string" } }, "Access-Control-Allow-Methods": { "schema": { "type": "string" } }, "Content-Length": { "schema": { "type": "integer" } }, "Keep-Alive": { "schema": { "type": "string" } }, "Connection": { "schema": { "type": "string" } }, "Content-Type": { "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "object" } } } } } } } } } ``` -------------------------------- ### showData Source: https://docs.omnidesk.io/omnidesk/api-specification/statisticsv2.md Retrieves all data of a widget specifically formatted for display. This endpoint allows for the presentation of widget data, with options to customize specifics as shown in the example. ```APIDOC ## GET /api/v2/statisticsv2/showData ### Description Returns all data of this widget to show. Widget data specifics can be added how is shown in the example. Adjust to your own needs. ### Method GET ### Endpoint /api/v2/statisticsv2/showData ### Response #### Success Response (200) OK ``` -------------------------------- ### Get Customer Item Source: https://docs.omnidesk.io/omnidesk/api-specification/customer.md Retrieves all data for a specific customer using their ID. Requires CUSTOMER_READ permission. ```json { "openapi": "3.0.0", "info": { "title": "Omnidesk API documentation", "version": "1.0.0" }, "tags": [ { "name": "Customer", "description": "**All the endpoints that can be called on the Customer controller.**\n\nEndpoints that require the `CUSTOMER_READ` permission:\n\n- `GET` index\n \n- `GET` item\n \n- `POST` searchByPrimaryExternalId\n \n- `GET` timelineByCustomerExternalID\n \n\nEndpoints that require the `CUSTOMER_CUD` permission:\n\n- `POST` index\n \n- `PUT` index\n \n- `PUT` item\n \n- `DELETE` item\n \n- `POST` addChannelOnly\n \n- `PUT` updateCustomer\n \n- `DELETE` itemChannel\n \n- `DELETE` itemPurgeData\n \n- `POST` externalEvent\n \n- `POST` syncWithCRM\n \n- `POST` createCustomerCRUD" } ], "servers": [ { "url": "http://{{base_url}}" } ], "security": [ { "apikeyAuth": [] } ], "components": { "securitySchemes": { "apikeyAuth": { "type": "http", "scheme": "apikey" } } }, "paths": { "/api/v2/customer/{id}": { "get": { "tags": [ "Customer" ], "summary": "item", "description": "**Returns all the data of this customer.**", "parameters": [ { "name": "id", "in": "path", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": {} } } } } } } } ``` -------------------------------- ### Sample Data URL for Statistics API Source: https://docs.omnidesk.io/omnidesk/statistics/statistics-api.md This is an example of a data URL for the statistics API, demonstrating how to specify facts, fact options, group by parameters, and filters. ```url https://account.omnidesk.com/api/v2/statistics/showData?facts\[]=ticketResponseTime\&factOptionticketResponseTime=average\&factOptionUnitTypeticketResponseTime=hours\&groupBy\[]=ticketID\&filters\[]=timeRelativeToday ``` -------------------------------- ### Form Information Response (400 Bad Request) Source: https://docs.omnidesk.io/omnidesk/ticket/form-field.md Example error response when a requested form ID is not found. Indicates that the specified form does not exist. ```yaml status: "error" message: "Form not found." ``` -------------------------------- ### fullTable Source: https://docs.omnidesk.io/omnidesk/api-specification/raw.md Returns the raw data of the full table. Uses the table param to get the `raw_fulltable_crons` entry and serves the given file. ```APIDOC ## GET /api/v2/raw/fullTable ### Description Returns the raw data of the full table. Uses the table param to get the `raw_fulltable_crons` entry and serves the given file. ### Method GET ### Endpoint /api/v2/raw/fullTable ### Parameters #### Query Parameters - **table** (string) - Required - The table to get the data from. ### Permissions Requires `API_RAW_TABLE_READ` permission. ### Response #### Success Response (200) - (object) - Successful response. ``` -------------------------------- ### Query Documentation Index Source: https://docs.omnidesk.io/omnidesk/llms.txt Use this GET request to ask a question about the documentation. Include a specific 'ask' parameter and an optional 'goal' parameter to tailor the response. ```http GET https://docs.omnidesk.io/omnidesk/live-chat.md?ask=&goal= ``` -------------------------------- ### Get All Channels API Specification Source: https://docs.omnidesk.io/omnidesk/api-specification/channel.md This JSON describes the GET endpoint for retrieving all channels. It requires the CHANNEL_READ permission. ```json { "openapi": "3.0.0", "info": { "title": "Omnidesk API documentation", "version": "1.0.0" }, "tags": [ { "name": "Channel", "description": "These endpoints can be used to manage custom channels." } ], "servers": [ { "url": "http://{{base_url}}" } ], "security": [ { "apikeyAuth": [] } ], "components": { "securitySchemes": { "apikeyAuth": { "type": "http", "scheme": "apikey" } } }, "paths": { "/api/v2/channel": { "get": { "tags": [ "Channel" ], "summary": "index", "description": "**Returns all the channels.**\n\nThis endpoint requires the `CHANNEL_READ` permission.", "responses": { "200": { "description": "Successful response", "content": { "application/json": {} } } } } } } } ``` -------------------------------- ### Get Dashboards API Specification Source: https://docs.omnidesk.io/omnidesk/api-specification/statisticsv2.md This OpenAPI specification defines the GET endpoint for retrieving all dashboards. It requires the `API_STATISTICS` permission. ```json {"openapi":"3.0.0","info":{"title":"Omnidesk API documentation","version":"1.0.0"},"tags":[{"name":"Statisticsv2","description":"**All the endpoints that can be called on the Statisticsv2 controller.**\n\nAll the endpoints require the `API_STATISTICS` permission, except for:\n\n- `POST` dashboardDelete\n \n- `PUT` dashboard\n \n\nWhich require the `DASHBOARD_CUD` permission."}],"servers":[{"url":"http://{{base_url}}"}],"security":[{"apikeyAuth":[]}], ``` -------------------------------- ### GET /api/v2/form/{id} Source: https://docs.omnidesk.io/omnidesk/api-specification/form.md Returns a form by its ID. Optionally, you can send a ticket ID with it to get the form values for that ticket. Requires FORM_READ permission. ```APIDOC ## GET /api/v2/form/{id} ### Description Returns this form by its ID. Optionally, you can send a ticket ID with it to get the form values for that ticket. ### Method GET ### Endpoint /api/v2/form/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the form to retrieve. ### Response #### Success Response (200) - Description: Successful response ``` -------------------------------- ### Example API Request URL Source: https://docs.omnidesk.io/omnidesk/raw-data-bi.md Construct a URL to fetch specific data from a table. Ensure all required parameters like table name, columns, and time range are correctly specified. ```URL https://account.omnidesk.com/api/v2/raw/tableData?table=telephone_calls_inbound&columns=id, brand_id,ticket_id,assigned_to_user,time_created,time_wait_start,time_assigned, time_ended,time_wrapup_complete&itemStart=0&start=2020-02-25 00:00:00&end=2020-02-26 00:00:00 ``` -------------------------------- ### Get SharePoint Site ID Source: https://docs.omnidesk.io/omnidesk/sharepoint-app.md Use this GET request in Graph Explorer to find the ID of your SharePoint site. Replace '' with the actual name of your site. ```http https://graph.microsoft.com/v1.0/sites?select=webUrl,Title,Id&$search="" ``` -------------------------------- ### Get Email Addresses API Specification Source: https://docs.omnidesk.io/omnidesk/api-specification/email.md This OpenAPI 3.0 specification defines the GET endpoint for retrieving email addresses. It supports filtering, grouping, and limiting results. Requires SETTINGS_CRUD permission. ```json {"openapi":"3.0.0","info":{"title":"Omnidesk API documentation","version":"1.0.0"},"tags":[{"name":"Email","description":"**All the endpoints that can be called on the Email controller.**\n\nAll these endpoints require the `SETTINGS_CRUD` permission, except for `GET` itemDownloadMail, which requires `TICKET_READ`"}],"servers":[{"url":"http://{{base_url}}"}],"security":[{"apikeyAuth":[]}],"components":{"securitySchemes":{"apikeyAuth":{"type":"http","scheme":"apikey"}}},"paths":{"/api/v2/email/address":{"get":{"tags":["Email"],"summary":"address","description":"**Returns all email addresses with optional filters such as search queries, grouping and result limits.**","responses":{"200":{"description":"Successful response","content":{"application/json":{}}}}}}}} ``` -------------------------------- ### Create New Customer Source: https://docs.omnidesk.io/omnidesk/api-specification/customer.md Use this endpoint to create a new customer in the system. Many parameters are optional, but their availability may depend on other parameters. Ensure correct channel and brand IDs are provided. ```json { "openapi": "3.0.0", "info": { "title": "Omnidesk API documentation", "version": "1.0.0" }, "tags": [ { "name": "Customer", "description": "**All the endpoints that can be called on the Customer controller.**\n\nEndpoints that require the `CUSTOMER_READ` permission:\n\n- `GET` index\n \n- `GET` item\n \n- `POST` searchByPrimaryExternalId\n \n- `GET` timelineByCustomerExternalID\n \n\nEndpoints that require the `CUSTOMER_CUD` permission:\n\n- `POST` index\n \n- `PUT` index\n \n- `PUT` item\n \n- `DELETE` item\n \n- `POST` addChannelOnly\n \n- `PUT` updateCustomer\n \n- `DELETE` itemChannel\n \n- `DELETE` itemPurgeData\n \n- `POST` externalEvent\n \n- `POST` syncWithCRM\n \n- `POST` createCustomerCRUD" } ], "servers": [ { "url": "http://{{base_url}}" } ], "security": [ { "apikeyAuth": [] } ], "components": { "securitySchemes": { "apikeyAuth": { "type": "http", "scheme": "apikey" } } }, "paths": { "/api/v2/customer": { "post": { "tags": [ "Customer" ], "summary": "index", "description": "**Creates a new customer.**\n\nMost parameters are optional but depending on the presence of other parameters.", "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "channel_id": { "type": "string", "description": "type: `^([0-9]+|email|telephone|facebook|twitter)$` = ' '\nName or the ID of the channel e.g. email or telephone.\nCan only be processed if `customer_link_channel` is set." }, "customer_link_channel": { "type": "string", "description": "type: `string`\nThe name of the address, depending on the channel e.g. a phone number or an email address." }, "brand_id": { "type": "string", "description": "type: `number`" }, "primary_id": { "type": "string", "description": "type: `string`\nThe external primary ID of the customer." }, "noSync": { "type": "string", "description": "type: `any`\nDoes not update the ticket with the new linked channel(s) if sent along with the request." }, "firstname": { "type": "string", "description": "type: `^[a-zA-ZÀ-ÖØ-Þß-öø-ÿŠš\.\-\' ]+$` = ' '" }, "lastname": { "type": "string", "description": "type: `^[a-zA-ZÀ-ÖØ-Þß-öø-ÿŠš\.\-\' ]+$` = ' '" }, "ticket_id": { "type": "string", "description": "type: `number` = null" }, "extra_email": { "type": "string", "description": "type: `string` = null\nHas to be a valid email address format." }, "extra_telephone": { "type": "string", "description": "type: `^\+[0-9]+$` = null" } } } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": {} } } } } } } } ``` -------------------------------- ### GET /api/v2/user/userStatistic Source: https://docs.omnidesk.io/omnidesk/api-specification/user.md Retrieves the statistics for the current user. ```APIDOC ## GET /api/v2/user/userStatistic ### Description Returns this user's statistics. ### Method GET ### Endpoint /api/v2/user/userStatistic ### Response #### Success Response (200) Successful response. ``` -------------------------------- ### Initialize Live Chat Source: https://docs.omnidesk.io/omnidesk/live-chat.md Initialize the chat with your account and server tokens. This script should be placed in the body of your page, preferably within a DOMContentLoaded event listener. ```javascript document.addEventListener('DOMContentLoaded', () => { const chat = new Chat(); chat.start({ chatServerURL: '{{ chat.url }}/ ', chatAccountToken: '{{ chat.account_token }}', chatServerToken: '{{ chat.server_token }}', }); window.chat = chat; chat.showChatStartIcon(); }); ``` -------------------------------- ### Get Available Data and Columns Source: https://docs.omnidesk.io/omnidesk/raw-data-bi.md This endpoint lists all available data tables and their respective columns and filters through the raw data endpoint. Use this to understand the structure of your data before querying. ```json { "type": "item", "item": [ { "name": "tickets", "availableColumns": [ "id", "brand_id", "channel_id", "direction", "from", "to", "status", "priority", "assigned_user_id", "assigned_group_id", "title", "created_at", "last_update", "grade_by_customer", "solved_at", "customer_external_id", "summary" ], "availableFilters": [ "time" ], "timeColumn": "created_at" }, { "name": "messages", "availableColumns": [ "id", "brand_id", "content", "type", "direction", "user_id_created", "customer_id", "channel_id", "ticket_id", "created_at", "updated_at", "address_from", "address_to" ], "availableFilters": [ "time" ], "timeColumn": "created_at" }, { "name": "form_field_to_ticket", "availableColumns": [ "id", "ticket_id", "form_field_id", "form_field_value", "created_at", "form_field_value_text" ], "availableFilters": [ "time" ], "timeColumn": "created_at" }, { "name": "user_ticket_opened_history", "availableColumns": [ "id", "ticket_id", "user_id", "opened_at", "closed_at" ], "availableFilters": [ "time" ], "timeColumn": "opened_at" }, { "name": "ticket_history", "availableColumns": [ "id", "ticket_id", "item_type", "message", "by_user_id", "item_type_id_before", "item_type_id", "created_at", "by_system_module" ], "availableFilters": [ "time" ], "timeColumn": "created_at" }, { "name": "telephone_calls_inbound", "availableColumns": [ "id", "brand_id", "ticket_id", "a_number", "b_number", "assigned_to_user", "time_created", "time_wait_start", "time_assigned", "time_ended", "time_wrapup_complete", "external_id" ], "availableFilters": [ "time_created" ], "timeColumn": "time_created" }, { "name": "telephone_calls", "availableColumns": [ "id", "brand_id", "ticket_id", "a_number", "b_number", "assigned_to_user", "time_created", "time_wait_start", "time_assigned", "time_ended", "time_wrapup_complete", "external_id", "direction" ], "availableFilters": [ "time_created", "direction" ], "timeColumn": "time_created" }, { "name": "user_status", "availableColumns": [ "id", "user_id", "session_id", "status_id", "status_from", "status_to" ] } ] } ``` -------------------------------- ### GET /api/v2/user Source: https://docs.omnidesk.io/omnidesk/api-specification/user.md Returns all the users. Requires the USER_READ permission. ```APIDOC ## GET /api/v2/user ### Description Returns all the users. ### Method GET ### Endpoint /api/v2/user ### Parameters ### Request Body ### Request Example ### Response #### Success Response (200) - **field1** (type) - Description #### Response Example { "example": "response body" } ``` -------------------------------- ### POST /api/v2/customer Source: https://docs.omnidesk.io/omnidesk/api-specification/customer.md Creates a new customer. Most parameters are optional but depending on the presence of other parameters. ```APIDOC ## POST /api/v2/customer ### Description Creates a new customer. Most parameters are optional but depending on the presence of other parameters. ### Method POST ### Endpoint /api/v2/customer ### Parameters #### Request Body - **channel_id** (string) - Optional - type: `^([0-9]+|email|telephone|facebook|twitter)$` = ' ' Name or the ID of the channel e.g. email or telephone. Can only be processed if `customer_link_channel` is set. - **customer_link_channel** (string) - Optional - type: `string` The name of the address, depending on the channel e.g. a phone number or an email address. - **brand_id** (string) - Optional - type: `number` - **primary_id** (string) - Optional - type: `string` The external primary ID of the customer. - **noSync** (string) - Optional - type: `any` Does not update the ticket with the new linked channel(s) if sent along with the request. - **firstname** (string) - Optional - type: `^[a-zA-ZÀ-ÖØ-Þß-öø-ÿŠš\.\-\' ]+$` = ' ' - **lastname** (string) - Optional - type: `^[a-zA-ZÀ-ÖØ-Þß-öø-ÿŠš\.\-\' ]+$` = ' ' - **ticket_id** (string) - Optional - type: `number` = null - **extra_email** (string) - Optional - type: `string` = null Has to be a valid email address format. - **extra_telephone** (string) - Optional - type: `^\+[0-9]+$` = null ### Response #### Success Response (200) - (No specific fields documented) ### Request Example ```json { "channel_id": "email", "customer_link_channel": "test@example.com", "brand_id": "123", "primary_id": "ext-12345", "firstname": "John", "lastname": "Doe" } ``` ``` -------------------------------- ### Get Chat Configuration and Agent Availability Source: https://docs.omnidesk.io/omnidesk/live-chat/chatbot-integration.md Use this endpoint to retrieve chat configuration details. The response includes an `instructions` array which indicates if agents are available. If no agents are available, a `hide_reason_no_agents_available` instruction will be present. ```http GET https://chat.omnidesk.io/requestChatConfig ``` ```json { "type": "result", "message": "start instructions", "config": { "chat_logo": "https://www.omnidesk.nl/img/logo_white.svg", "header_color": "#18e2ae", "chat_logo_height": "30", "chat_logo_width": "100", "chat_background_color": "#e5e5e5", "chat_message_customer_color": "#ffffff", "chat_message_customer_text_color": "#000000", "chat_message_agent_color": "#18e2ae", "chat_message_agent_text_color": "#000000", "chat_textarea_placeholder": "Type je vraag en druk op enter", "chat_introduction_html": "", "label_provide_email_address": "Please provide your mail address", "label_provide_phone_number": "Please provide your phone number", "placeholder_email_address": "name@domain.com", "placeholder_telephone_number": "0612345678", "start_button_color": "#232541", "start_chat_instructions": "Welkom! Typ je vraag, iemand van onze klantenservice komt zo bij je.", "session_timeout_warning": "notice: due to inactivity this session will soon close", "session_timeout_message": "session closed, refresh window to start a new chat", "file_uploaded_text": "File uploaded.", "agent_typing_text": "Agent typing..", "show_survey_after_chat": null }, "instructions": [ { "type": "hide_reason_no_agents_available" }, { "type": "phoneNumber", "key": "phoneNumber" }, { "type": "show_team", "team_profile_pictures": [] } ] } ``` -------------------------------- ### Create Dashboard (POST /api/v2/statisticsv2/dashboard) Source: https://docs.omnidesk.io/omnidesk/api-specification/statisticsv2.md Use this endpoint to create a new dashboard. Requires API_STATISTICS permission. ```json {"openapi":"3.0.0","info":{"title":"Omnidesk API documentation","version":"1.0.0"},"tags":[{"name":"Statisticsv2","description":"**All the endpoints that can be called on the Statisticsv2 controller.**\n\nAll the endpoints require the `API_STATISTICS` permission, except for:\n\n- `POST` dashboardDelete\n \n- `PUT` dashboard\n \n\nWhich require the `DASHBOARD_CUD` permission."}],"servers":[{"url":"http://{{base_url}}"}],"security":[{"apikeyAuth":[]}],"components":{"securitySchemes":{"apikeyAuth":{"type":"http","scheme":"apikey"}}},"paths":{"/api/v2/statisticsv2/dashboard":{"post":{"tags":["Statisticsv2"],"summary":"dashboard","description":"**Creates a new dashboard.**","requestBody":{"content":{}},"responses":{"200":{"description":"Successful response","content":{"application/json":{}}}}}}}} ``` -------------------------------- ### GET /api/v2/ticket/{ticketID} Source: https://docs.omnidesk.io/omnidesk/api-specification/ticket.md Returns all the data of a specific ticket using its ID. ```APIDOC ## GET /api/v2/ticket/{ticketID} ### Description Returns all the data of this ticket. ### Method GET ### Endpoint /api/v2/ticket/{ticketID} ### Parameters #### Path Parameters - **ticketID** (string) - Required - The ID of the ticket to retrieve. ### Response #### Success Response (200) - The response will contain the ticket data in JSON format. ``` -------------------------------- ### GET viewCategories Source: https://docs.omnidesk.io/omnidesk/api-specification/view.md Retrieves all view categories. This endpoint requires the SETTINGS_CRUD permission. ```APIDOC ## GET /api/v2/view/viewCategories ### Description Retrieves all the existing view categories. ### Method GET ### Endpoint /api/v2/view/viewCategories ### Permissions SETTINGS_CRUD ### Response #### Success Response (200) - **categories** (array) - A list of existing view categories. ``` -------------------------------- ### GET getFormForTicket Source: https://docs.omnidesk.io/omnidesk/api-specification/form.md Retrieves a form associated with a ticket. Requires FORM_READ permission. ```APIDOC ## GET getFormForTicket ### Description Retrieves a form associated with a ticket. ### Method GET ### Endpoint /api/v2/form/getFormForTicket ### Parameters ### Request Example ### Response #### Success Response (200) - (object) - Successful response #### Response Example ```json { "example": "response body" } ``` ``` -------------------------------- ### POST reserveUserForLiveChannel Source: https://docs.omnidesk.io/omnidesk/api-specification/user.md Reserves a user for a live channel. Requires the API_RESERVE_USER permission. ```APIDOC ## POST reserveUserForLiveChannel ### Description Reserves a user for a live channel. ### Method POST ### Endpoint /api/v2/user/reserveUserForLiveChannel ### Parameters ### Request Body ### Request Example ### Response #### Success Response (200) - **field1** (type) - Description #### Response Example { "example": "response body" } ``` -------------------------------- ### GET item Source: https://docs.omnidesk.io/omnidesk/api-specification/form.md Retrieves a specific form item. Requires FORM_READ permission. ```APIDOC ## GET item ### Description Retrieves a specific form item. ### Method GET ### Endpoint /api/v2/form/item ### Parameters ### Request Example ### Response #### Success Response (200) - (object) - Successful response #### Response Example ```json { "example": "response body" } ``` ``` -------------------------------- ### index (POST /api/v2/channel) Source: https://docs.omnidesk.io/omnidesk/api-specification/channel.md Creates a new channel. Most parameters are optional but depending on the presence of other parameters. This endpoint requires the CHANNEL_CUD permission. ```APIDOC ## POST /api/v2/channel ### Description Creates a new channel. Most parameters are optional but depending on the presence of other parameters. ### Method POST ### Endpoint /api/v2/channel ### Parameters #### Request Body - **name** (string) - Required/Optional - type: `^[a-zA-Z0-9 \.\-\_]+$` - **icon** (string) - Required/Optional - type: `^[a-zA-Z0-9\-\_]+$` = 'chat' - **custom_channel_endpoint** (string) - Required/Optional - type: `^[a-zA-Z0-9\.\:\/\-?&=]+$` - **custom_channel_secret** (string) - Required/Optional - type: `string` = '' - **include_signature** (string) - Required/Optional - type: `boolean` = 'false' ### Permissions CHANNEL_CUD ### Response #### Success Response (200) - (object) - Successful response ``` -------------------------------- ### GET /api/v2/customer/{id} Source: https://docs.omnidesk.io/omnidesk/api-specification/customer.md Retrieves all data for a specific customer using their unique ID. ```APIDOC ## GET /api/v2/customer/{id} ### Description Returns all the data of this customer. ### Method GET ### Endpoint /api/v2/customer/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the customer. ### Responses #### Success Response (200) - Description: Successful response - Content: application/json ``` -------------------------------- ### Sample CSV Format and Data Source: https://docs.omnidesk.io/omnidesk/link-customer/csv-import.md This snippet shows the required header row and an example data row for the customer CSV import. Ensure telephone numbers are in E.164 format. ```csv customerid;firstname;lastname;telephonenumber;emailaddress; 1231235435;test;dfgdfg;+31612312311;test@test.com; 1231235435;test;dfgdfg;+31612312311;test@test.com; ``` -------------------------------- ### GET item Source: https://docs.omnidesk.io/omnidesk/api-specification/view.md Retrieves a specific item within a view. This endpoint requires the GROUP_CUD permission. ```APIDOC ## GET /api/v2/view/item ### Description Retrieves a specific item within a view. ### Method GET ### Endpoint /api/v2/view/item ### Parameters #### Query Parameters - **item_id** (integer) - Required - The ID of the item to retrieve. ### Permissions GROUP_CUD ### Response #### Success Response (200) - **item_data** (object) - The data of the requested item. ``` -------------------------------- ### Get Channel Item Source: https://docs.omnidesk.io/omnidesk/api-specification/channel.md Returns all the data of a specific channel. This endpoint requires the CHANNEL_CUD permission. ```APIDOC ## GET /api/v2/channel/{id} ### Description Returns all the data of this channel. ### Method GET ### Endpoint /api/v2/channel/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the channel. ### Response #### Success Response (200) - (No specific fields documented) ``` -------------------------------- ### Get Channel Data Source: https://docs.omnidesk.io/omnidesk/api-specification/channel.md Retrieves all data for a specific custom channel. Requires the CHANNEL_CUD permission. ```json { "openapi": "3.0.0", "info": { "title": "Omnidesk API documentation", "version": "1.0.0" }, "tags": [ { "name": "Channel", "description": "These endpoints can be used to manage custom channels." } ], "servers": [ { "url": "http://{{base_url}}" } ], "security": [ { "apikeyAuth": [] } ], "components": { "securitySchemes": { "apikeyAuth": { "type": "http", "scheme": "apikey" } } }, "paths": { "/api/v2/channel/{id}": { "get": { "tags": [ "Channel" ], "summary": "item", "description": "**Returns all the data of this channel.**\n\nThis endpoint requires the `CHANNEL_CUD` permission.", "parameters": [ { "name": "id", "in": "path", "schema": { "type": "integer" }, "required": true, "description": "type: `number`" } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": {} } } } } } } } ``` -------------------------------- ### Get Form Field by ID Source: https://docs.omnidesk.io/omnidesk/api-specification/formfield.md Returns a specific form field using its unique identifier. ```APIDOC ## GET /api/v2/formfield/{id} ### Description Returns this specific form field by ID. ### Method GET ### Endpoint /api/v2/formfield/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the form field to retrieve. ### Response #### Success Response (200) - (No specific fields documented in the source) ``` -------------------------------- ### Get User Statistics Source: https://docs.omnidesk.io/omnidesk/api-specification/user.md Retrieves the current user's statistics. This endpoint requires the USER_READ permission. ```json { "openapi": "3.0.0", "info": { "title": "Omnidesk API documentation", "version": "1.0.0" }, "tags": [ { "name": "User", "description": "**All the endpoints that can be called on the User controller.**\n\nEndpoints that require the `USER_READ` permission:\n\n- `GET` index\n \n- `GET` settings\n \n\nEndpoints that require the `API_RESERVE_USER` permission:\n\n- `POST` reserveUserForLiveChannel\n \n\nEndpoints that require the `USER_ANONYMOUS_BROWSING_UPDATE` permission:\n\n- `PUT` ticketIncognitoMode\n \n\nAll other endpoints require the `USER_CUD` permission." } ], "servers": [ { "url": "http://{{base_url}}" } ], "security": [ { "apikeyAuth": [] } ], "components": { "securitySchemes": { "apikeyAuth": { "type": "http", "scheme": "apikey" } } }, "paths": { "/api/v2/user/userStatistic": { "get": { "tags": [ "User" ], "summary": "userStatistic", "description": "**Returns this user's statistics.**", "responses": { "200": { "description": "Successful response", "content": { "application/json": {} } } } } } } } ``` -------------------------------- ### POST index Source: https://docs.omnidesk.io/omnidesk/api-specification/form.md Creates a new form. Requires FORM_CUD permission. ```APIDOC ## POST index ### Description Creates a new form. ### Method POST ### Endpoint /api/v2/form ### Parameters ### Request Body - **field1** (type) - Required/Optional - Description ### Request Example ```json { "example": "request body" } ``` ### Response #### Success Response (200) - (object) - Successful response #### Response Example ```json { "example": "response body" } ``` ``` -------------------------------- ### POST /uploadForCustomer Source: https://docs.omnidesk.io/omnidesk/live-chat/chatbot-integration.md This hookpoint receives attachments from the agent to the customer. It is used to send files from an agent to a customer. ```APIDOC ## POST /uploadForCustomer ### Description This hookpoint will receive attachments from the **agent** to the customer. It is used to send files from an agent to a customer. ### Method POST ### Endpoint {{ chatserver }}/uploadForCustomer ### Parameters #### Path Parameters - **file** (object) - Required - the actual binary file - **sessionID** (string) - Required - Id of the session ### Response #### Success Response (200) - **ok** (string) - Indicates a successful response. ``` -------------------------------- ### Get Available Forms Source: https://docs.omnidesk.io/omnidesk/ticket/form-field.md Retrieves a list of all available forms. Use this to see which forms can be associated with tickets. ```http GET https://account.omnidesk.com/api/v2/form ``` -------------------------------- ### index Source: https://docs.omnidesk.io/omnidesk/api-specification/notification.md Returns all notifications for the current user and marks them as read. ```APIDOC ## GET /api/v2/notification ### Description Returns all notifications for this user found by UID and marks them all as read. ### Method GET ### Endpoint /api/v2/notification ### Response #### Success Response (200) - (object) - Successful response ```