Gladly REST API

Gladly's unified REST API for the people-centered customer service platform. Exposes Customers, Conversations, Messages, Tasks, Answers (knowledge base), Topics, Teams, Inboxes, Audiences, Business Hours, Communications (outbound SMS/email), Webhooks, Events, Export jobs, Reports, Agents, Organization, Public Answers (Help Center), Proactive Conversations, and User Identity (JWT for authenticated chat). HTTP Basic auth with an agent email + API token. Default 10 req/sec per organization. Mounted at `https://{organization}.gladly.com/api/v1`.

Gladly REST API is one of 8 APIs that Gladly publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 21 machine-runnable capabilities that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 10 JSON Schema definitions.

Tagged areas include Customer Service, CX, Contact Center, Conversations, and Customers. The published artifact set on APIs.io includes API documentation, an API reference, a getting-started guide, authentication docs, an OpenAPI specification, a JSON-LD context, 21 Naftiko capability specs, and 10 JSON Schemas.

Documentation

Specifications

Examples

Schemas & Data

Other Resources

🔗
JSONLD
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/json-ld/gladly-context.jsonld
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-agents.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-answer-management.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-audiences.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-business-hours.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-communications.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-conversations.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-customers.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-events.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-export.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-freeform-topics.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-inboxes.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-organization.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-payloads.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-proactive-conversations.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-public-answer.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-reports.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-tasks.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-teams.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-topics.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-user-identity.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/capabilities/gladly-webhooks.yaml

OpenAPI Specification

gladly-rest-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Gladly API
  version: '1.0'
  description: '# Introducing the Gladly API


    At Gladly, we believe that customer service is best when it''s a conversation.

    That means more than just helping customers with one-off questions or issues: it''s about making them feel known, valued,
    and respected for the individuals they are.


    The Gladly API was built to help facilitate those relationships, providing agents with the rich customer context

    they need to deliver seamless experiences that make customers feel like they''re more than just a number in a sea of others.


    # Overview


    You can integrate easily with Gladly by calling Gladly''s [REST API](#section/Overview/REST-API)

    and implementing the [Lookup API](#section/Overview/Lookup-API) to provide data from your own services.


    Some examples of what you do through Gladly APIs include managing customer profile data, interacting with a customer''s
    timeline,

    providing the latest information about a customer''s orders, and more.


    ## REST API


    Clients can access the **REST API** via HTTPS at your organization''s Gladly domain (e.g. `https://{organization}.gladly.com`).


    Resources follow REST semantics and utilize industry-standard HTTP verbs, response codes, and authentication schemes.

    In addition, all responses and payloads are in JSON with consistent error codes and formats.


    ## Lookup API


    The Gladly **Lookup API** allows your organization to provide data services to power the agent''s experience with a complete
    view of your customers''

    information, transactions, and activity. You can provide a web service that implements the Lookup API and Gladly will
    call it when that data is needed.


    Like the REST API, the Lookup API is specified using REST semantics, and exchanges JSON requests and responses authenticated
    and signed with secure keys.


    Gladly will perform lookups when certain activities occur within Gladly, such as when a customer''s profile is loaded.


    A detailed overview of Lookup Adaptor architecture, requests, resposnes and more can be found [here](https://help.gladly.com/developer/docs/lookup-adapter-introduction).


    ## Testing


    Test the myriad possibilities of the Gladly API in a safe, secure space. We''ll enable the Gladly API in a separate sandbox
    environment, so you can experiment freely without impacting your production environment (or vice versa).


    Your sandbox environment is accessible at `https://{organization}.gladly.qa`, where `organization` is your company name.
    For specific API endpoints, see documentation below.


    # Getting Started


    Think of this section as getting the keys to unlocking your access to the Gladly APIs.

    First, you''ll need to set up an account with the necessary API [permissions](#/section/Getting-Started/Permissions).

    With these permissions, you can then go on to create the [API Token(s)](#section/Getting-Started/Creating-API-Tokens)
    you need to access Gladly''s API [resources](#section/Overview/Resources).


    ## Permissions


    Gladly Administrators can set API permissions on an agent-by-agent basis.

    We''ll discuss how this maps to API access in the section on [authentication](#section/Authentication) below.


    To allow a user to create API tokens and access the API:

    1. Log in to your Gladly instance.

    2. Open the menu on the top left-hand corner of the page.

    3. Navigate to **Settings** > **Users*

    4. Search and click the user profile you wish to give access to.

    5. You''ll see a permission called **API User**. Select it, while making sure to keep the user''s **Agent** role intact.

    6. Hit **Save** to give access.


    ![Agent profile screen](assets/permissions-agent.png)


    We recommend creating a dedicated user to make API calls, whose account won''t be used for agent and organization management.

    This will help you with any future audits of API activity vs. agent activity.


    ## Creating API Tokens


    You must create an API token to access Gladly API resources (see above [Permissions](#/section/Getting-Started/Permissions)).

    If your profile already has access to the **API User** permission, you''ll see a menu item titled **More settings**. Click
    **More settings**:


    ![API Token Menu](assets/permissions-token-nav.png)


    Click **API Tokens**, then the **Create Token** button on the upper right-hand corner of the page:


    ![API Token Add](assets/permissions-token-add.png)


    A token will be generated and named, by default, **New Token** (though depending on whether you have existing tokens,
    it may be named New Token 2, or New Token 3, etc.).

    You can rename the token to something more easily referenceable by clicking the name to edit.


    This token will be associated with your agent profile, which we refer to as the API User in this document.


    ![API Token View](assets/permissions-token-view.png)


    For security purposes, you''ll only see a new token once before you navigate away from the page.


    ## Replacing/Rotating API Tokens


    Should you lose this token, or wish to rotate your application keys, you can do the following:


    1. Generate a new token.

    2. Store the new token in a secure location.

    3. Delete the old token.

    4. Update your applications/scripts with the new token.


    # Authentication


    <!-- ReDoc-Inject: <security-definitions> -->'
servers:
- url: https://{organization}.gladly.com/api/v1
  description: Production
  variables:
    organization:
      default: organization
      description: Your Gladly organization subdomain
- url: https://{organization}.gladly.qa/api/v1
  description: Sandbox
  variables:
    organization:
      default: organization
      description: Your Gladly QA organization subdomain
tags:
- name: Agents
  description: 'An **Agent** represents the user profile of a person who helps customers in Gladly.

    The API allows you to lookup Agents who participated in conversations with customers.

    '
- name: Public Answer
  description: 'A **Public Answer** in Gladly represents a consumer-facing Answer.


    The Public Answers API allows you to search and retrieve Public Answers (created

    directly in the Gladly UI), which you can display in the Chat

    web widget, use to build your website''s help center/FAQ page, or publish

    on any page on your website.


    This API can be used without an API token because it only provides access to

    public content. You may also work with Gladly Support to

    enable [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)

    access so the API can be used directly from client-side javascript.


    ### How a user creates a public answer in Gladly


    ![](assets/create-public-answer.png)


    ### How that answer is searched and displayed on the Chat Web widget


    ![](assets/sidekick-answer-search.png)

    '
- name: Answer Management
  description: "The **Answer Management API** allows you to create, update, and delete Answers in Gladly. To create an Answer\
    \ with content, two calls would be needed. \nOne call to create an Answer and subsequent call(s) to add content(s)\n"
- name: Audiences
  description: 'An **Audience** represents a brand (or segment) specially for a multi-brand company. They are used to categorize
    Answers, Help Centers and Chats for the specific brands.

    The API allows you to lookup the audiences that have been created for the organization.

    '
- name: Communications
  description: 'Communications API enables you to programmatically send messages to your customers. These messages are non-routable
    and non-searchable.


    ### Agent View

    ![Agent View](assets/agent-sms.png)


    ### Consumer View

    ![Customer View](assets/consumer-sms.png)

    '
- name: Customers
  description: 'A **Customer** in Gladly represents information about a customer of your organization including their profile,
    contact information,

    notes, and transactions.


    Customers API allows you to add, update, and get customer profile data.


    ### Error Handling

    Id, mobile phone number, and email address must be unique across customer records. 409 errors returned will

    include details on any conflicts, such as a field being taken.


    Additionally, errors may be returned due to customer profiles being merged. If a customer has been merged into

    another, requests to get a customer by id will return 301 errors specifying the new id of the customer,

    and requests to update a customer by id will return 404 errors.

    '
- name: Conversations
  description: '## Conversation


    A **Conversation** in Gladly contains the timeline of activity for a customer including communications to and from your
    organization along with other internal and external activity.

    Conversations API enables you to interact with the customer conversation timeline.


    ## Conversation Items


    A number of different types of items may appear in a customer''s timeline. Each is described below.


    | Item Type                     | Item Definition | Create | Read | Update | Delete | Media  |

    |-------------------------------|----------------|--------|------|--------|--------|--------|

    | Chat Message                  | A message sent/received via the [Chat](https://help.gladly.com/docs/add-and-configure-chat-entry-points#)
    channel | Yes    | Yes  | No     | No     | No     |

    | Conversation Status Change    | Conversation status changed (e.g.: from OPEN to WAITING, or OPEN to CLOSED) | Yes    |
    Yes  | Yes    | No     | No     |

    | Customer Activity             | Non-routable customer activity added to customer timeline via API | Yes    | Yes  |
    No     | Yes    | No     |

    | Email                         | A message sent/received via the [Email](https://help.gladly.com/docs/add-and-configure-email-entry-point)
    channel | Yes    | Yes  | No     | No     | No     |

    | Facebook Messenger Message    | A message sent/received via the [Facebook Messenger](https://help.gladly.com/docs/set-up-and-configure-facebook-messenger)
    channel | Yes    | Yes  | No     | No     | No     |

    | Instagram Direct              | A message sent/received via the [Instagram](https://help.gladly.com/docs/set-up-and-configure-instagram-messaging)
    channel | No     | Yes  | No     | No     | No     |

    | Note                          | An internal [Note](https://help.gladly.com/docs/add-a-note-to-a-conversation) on the
    Customer conversation | Yes    | Yes  | No     | No     | No     |

    | Phone Call                    | A [Phone Call](https://help.gladly.com/docs/add-and-configure-voice-entry-points) placed/received
    on Gladly | No     | Yes  | No     | No     | Yes    |

    | SMS Message                   | A message sent/received via the [SMS](https://help.gladly.com/docs/add-and-configure-sms-entry-points)
    channel | Yes    | Yes  | No     | No     | No     |

    | Task                          | A [Task](https://help.gladly.com/docs/what-is-a-task) on a Customer''s profile | Yes    |
    Yes  | Yes    | No     | No     |

    | Topic Change                  | A [Topic](https://help.gladly.com/docs/what-are-topics) added or removed on a Conversation
    | Yes    | Yes  | No     | Yes    | No     |

    | Twitter (decommissioned as of 04/20/23)                       | A message sent/received via the [Twitter](https://help.gladly.com/docs/setup-and-configure-twitter-direct-messages)
    channel | No     | Yes  | No     | Yes    | No     |

    | Voice AI Message              | A spoken message exchanged with Gladly''s voice AI during a voice AI session | No     |
    Yes  | No     | No     | No     |

    | Voicemail                     | A Voicemail received | No     | Yes  | No     | No     | Yes    |

    | WhatsApp                      | A message sent/received via the WhatsApp channel | No     | Yes  | No     | No     |
    No     |



    ### Chat Message


    Content of messages sent between Gladly and customers through Gladly Chat.


    ### Conversation Status Change


    Record of a change in the status of a conversation.


    ### Customer Activity


    Information about activities customers participated in, for example, emails they received, issues in another system, or
    customer satisfaction surveys they answered.

    These can be created through the API to bring in information from other systems.

    Adding an activity to the customer timeline is not customer facing.

    For example, posting an email activity to the timeline does not send an email to the customer.

    ![Customer Activity](assets/customer-activity.png)


    ### Email


    Content of emails sent between Gladly and customers.


    ###  Facebook Messenger Message


    Content of messages sent between Gladly and customers on Facebook Messenger.


    ### Instagram Direct


    Content of messages sent between Gladly and customers on Instagram Direct.


    ###  Note


    Content of the note recorded in Gladly.


    ### Phone Call


    Information about phone calls that took place between Gladly and customers.


    ### SMS Message


    Content of SMS text messages sent between Gladly and customers.

    To send SMS messages to customers through the API, see [Send SMS](#operation/sendSMS).


    ### Task


    Interacting with tasks through the conversations API is deprecated. Use [Tasks API](#tag/Tasks) instead.


    ### Topic Change


    Record of an agent adding or removing a topic from a conversation in Gladly.


    ### Twitter (decommissioned as of 04/20/23)


    Content of messages sent between Gladly and customers on Twitter.


    ### Voice AI Message


    A spoken message exchanged between a customer and Gladly''s voice AI during a voice AI session.


    ### Voicemail


    Information about voicemail left by customers in Gladly.


    ### WhatsApp


    Content of messages sent between Gladly and customers on WhatsApp.

    '
- name: Export
  description: 'Export API is a simple, comprehensive, file-based data export. You can export the lifetime of your customers''
    conversations in Gladly to a central data repository such as your data warehouse or data lake. You can export all communications
    successfully delivered within a specified date range.  The export date range could be the past hour, the past 24 hours,
    or a custom data range. Please note, for one-time exports covering a period greater than six months, a service fee may
    apply.


    Job results can be deleted once downloaded.  Delete will remove all result files along with the job metadata.  Files older
    than 14 days are removed from Gladly and jobs older than 14 days are not available from the API.  If you discover that
    you need the deleted files later, please contact Gladly Support to regenerate them for you.


    ### SCHEDULING EXPORT JOBS


    You can schedule a one-time or repeating - hourly or daily - data export job.  By default, each organization has a daily
    export job configured.  To schedule a one-time job or change the job frequency, please contact Gladly Support.

    '
- name: Events
  description: 'An **Event** is something that has happened in Gladly. The Events API allows you to extract event details
    from the past 24 hours.

    '
- name: Freeform Topics
  description: "Freeform Topics allow you to associate granular data like Order Number to a Conversation. This data can be\
    \ accessed for analysis via APIs, Webhooks, and AWS EventBridge. They are powered by custom attributes as you will see\
    \ throughout this API, the Conversations API, the Events API and events used in Webhooks. \n\nNote: These attributes are\
    \ currently associated to the Conversation entity only and are therefore different from customAttributes listed under\
    \ the Customer entity. See the Customer API for more information on Customer custom attributes.\n"
- name: Reports
  description: 'A **Report** in Gladly contains metrics that you need to run the contact center. Reports API allows you to
    access Gladly''s reports programatically.

    '
- name: Organization
  description: 'An **Organization** contains metadata about your company that Gladly is configured with.

    '
- name: Inboxes
  description: 'An **Inbox** receives customer communications in Gladly. The communications route to the inbox according to
    channel and destination endpoint configuration.

    For example, all calls to a specific phone number or emails to a specific address may go to an inbox.

    '
- name: Proactive Conversations
  description: 'A proactive conversation consists of a **campaign** and **recipients**. This APIs intended use-case would
    be to provide status updates to a customer and not for marketing purposes.

    '
- name: Tasks
  description: 'A task is a way to create and do internal follow-up work for a customer within Gladly. Tasks have a due date,
    an assignee, a description of what is needed for a customer, and can be commented on. These can be created through the
    API to assign items to work within Gladly.

    ![Task](assets/task.png)

    '
- name: Teams
  description: 'A **Team** represents a group of Agents. They may handle particular **Inboxes** or types of work within Gladly.

    '
- name: Business Hours
  description: '**Business Hours** define the operating schedule for your organization. They determine when your organization
    is available to handle customer communications and can be used to control routing, auto-responses, and other time-sensitive
    workflows.


    Business hours configurations include:

    - **Schedule blocks** for each day of the week specifying start and end times

    - **Timezone** in IANA format (e.g., America/Los_Angeles)

    - **Exceptions** for holidays or special dates


    One business hours configuration is marked as **primary** and serves as the default schedule for your organization. The
    primary business hours cannot be deleted.

    '
- name: Topics
  description: 'A **Topic** is a way of labeling a conversation in Gladly for specific business purposes. For example, an
    agent may apply the topic "Return" to a conversation where a customer returns merchandise.

    Topics are used for reporting and to control various workflows.


    Topics can be configured to have a nested hierarchy. For instance, the topic "Return" could be a parent of "Size" and
    "Color" child topics. Visit our [Help Pages](https://help.gladly.com/docs/principles-of-hierarchical-topics) to learn
    more about Hierarchical Topics.

    '
- name: Webhooks
  description: 'A **Webhook** is a way to send notifications about Gladly events as a POST request to the endpoint of your
    choice.

    '
- name: Summary
  description: "Gladly **webhooks** are an easy way to send notifications about Gladly events and have them delivered to the\
    \ endpoint of your choice, giving you a streamlined method to trigger associated actions in external systems that respond\
    \ to events in Gladly.\n\nSimply choose where to send notifications about events that you are interested in (e.g. when\
    \ a conversation is closed), and they’ll be delivered to the endpoint of your choice.\n\nConfigure webhooks using the\
    \ [Webhooks API](#operation/createWebhook) or the Webhooks Admin Page.\n\nUsers with API User permissions can configure\
    \ webhooks by navigating to Integrations > Webhooks.\n\n![Webhooks admin page](assets/webhooks-admin.png)\n\n## Securing\
    \ Webhooks\nWe provide two methods for your web service to authenticate requests from Gladly.\nWe recommend implementing\
    \ at least one **authentication** option.\n\n### Basic Authentication\n\nFor this method you will supply a username and\
    \ password with the webhooks `credentials` field. This will be sent with each request. You may optionally supply a realm\
    \ if needed.\n\n### Header Based Token Authentication\n\nFor this method you will configure one or more HTTP headers with\
    \ the webhook's `headers` field. Gladly will send in each request to your web service.\n\n## Ping Event\nWhenever you\
    \ enable a webhook or update a webhook's URL, we'll send you a special `PING` event.\n\nYour web service is expected to\
    \ respond with a 200 status code to this event. If it does not respond or times out, the webhook create or update will\
    \ not succeed.\n\n## Retry Policy\n\n**Effective 6/28/23**\n\nIf your service responds to an event with a response code\
    \ outside the 2XX range or times out after 15 seconds, Gladly considers that delivery as failed and will resend the request\
    \ up to 4 times over an hour. After the fourth attempt, we will deactivate the webhook and wil notify all API Users in\
    \ your organization's environment via email. \n\nTo reactivate the webhook, your team will first need to investigate the\
    \ issue and make the necessary changes for the webhook to start working again. Once the issue is resolved, you will be\
    \ able to re-activate the webhook via the Settings > Webhooks page.\n\nThe following table shows the intervals between\
    \ each retry attempt.\n\n| Attempt | Retry interval           |\n| ------- | ------------------------ |\n| 1       | 30\
    \ seconds               |\n| 2       | 5 minutes                |\n| 3       | 30 minutes               |\n| 4       |\
    \ 1 hour                   |\n\n## Logs\nWe provide the last 100 HTTP request logs for a webhook that occurred during\
    \ the past month. Logs can take up to 30 seconds to view and require you to refresh the page.\n\n![Webhook Logs](assets/webhook-log.png)\n\
    \nEach log displays the status, event type and occurred at timestamp for a given request. You can expand the log for more\
    \ details about the request and response.\nFor more information about webhook logs, please see our [Help Documentation](https://connect.gladly.com/docs/help-documentation/article/reactivate-deactivated-webhooks/?highlight=webhook).\n\
    \n## Payloads\nGladly payloads are intentionally small: they contain only Gladly IDs and event names rather than the object/data\
    \ that has been modified or created\n\nThis helps Gladly webhooks perform more quickly when many events occur throughout\
    \ the day. This also assists with security, so if you misconfigure a webhook, it does not send sensitive information to\
    \ an outside service.\n\nTo retrieve more information about the object in question, you may make an additional Gladly\
    \ API call to retrieve the Gladly object. For example, to know more about conversationId whose status was updated, call\
    \ the [GET Conversation API](#operation/getConversation) or the [List Items in Conversation API](#operation/getConversationItems).\n\
    \n## Available Events\nPlease see the [Help Documentation](https://help.gladly.com/docs/reporting-concepts) for more information\
    \ about many of the events listed below.\n\n| Event                         |  Triggered by Gladly when:             \
    \                       |\n| ------------------------------| --------------------------------------------------------------|\n\
    | AGENT_AVAILABILITY/UPDATED         | an Agent's availability is updated |\n| AGENT_STATUS/CHANGED_ACTIVE_REASON | an\
    \ Agent's active reason is updated |\n| AGENT_STATUS/LOGGED_IN             | an Agent logs in |\n| AGENT_STATUS/LOGGED_OUT\
    \            | an Agent logs out |\n| AGENT_STATUS/RETURNED_FROM_AWAY    | an Agent returns from away |\n| AGENT_STATUS/WENT_AWAY\
    \             | an Agent goes away |\n| CONTACT/ENDED                      | a Contact is ended |\n| CONTACT/FULFILLED\
    \                  | a Contact's SLA is fulfilled |\n| CONTACT/HOLD_ENDED                 | a Contact's hold is ended\
    \ |\n| CONTACT/HOLD_STARTED               | a Contact's hold is started |\n| CONTACT/JOINED                     | an Agent\
    \ joins a Contact |\n| CONTACT/MESSAGE_RECEIVED           | a Message is received |\n| CONTACT/MESSAGE_SENT          \
    \     | a Message is sent |\n| CONTACT/OFFER_ACCEPTED             | a Contact's offer is accepted |\n| CONTACT/OFFERED\
    \                    | a Contact is offered |\n| CONTACT/OFFER_REJECTED             | a Contact's offer is rejected |\n\
    | CONTACT/STARTED                    | a Contact is started |\n| CONTACT/TRANSFERRED                | a Contact is transferred\
    \ |\n| CONVERSATION/CLOSED                | a Conversation is closed                                      |\n| CONVERSATION/CREATED\
    \               | a new Conversation is created                                 |\n| CONVERSATION/CUSTOM_ATTRIBUTE_ADDED\
    \ | a custom attribute has been added to the conversation                                 |\n| CONVERSATION/CUSTOM_ATTRIBUTE_REMOVED\
    \ | a custom attribute has been removed from the conversation                                 |\n| CONVERSATION/NOTE_CREATED\
    \          | a Note is added to a Conversation |\n| CONVERSATION/REOPENED              | a Conversation is reopened\n\
    | CONVERSATION/TOPIC_ADDED           | a topic is added to a Conversation |\n| CONVERSATION/TOPIC_REMOVED         | a\
    \ Conversation's topic is removed |\n| CONVERSATION_ASSIGNEE/UPDATED      | a Conversation's assignee (inbox and/or Agent)\
    \ changes         |\n| CONVERSATION_STATUS/UPDATED        | a Conversation changes statuses (e.g.: from OPEN to CLOSED)\
    \   |\n| CUSTOMER/MERGED                    | a Customer Profile is merged with another profile                 |\n| CUSTOMER_PROFILE/CREATED\
    \           | a Customer Profile is created                                 |\n| CUSTOMER_PROFILE/DELETED           |\
    \ a Customer Profile is deleted                                 |\n| CUSTOMER_PROFILE/MERGED            | a Customer Profile\
    \ is merged with another profile       |\n| CUSTOMER_PROFILE/UPDATED           | a Customer Profile is updated (e.g.:\
    \ name is updated)         |\n| EXPORT_JOB/COMPLETED               | a [data export job](#operation/findJobs) is completed\
    \                               |\n| EXPORT_JOB/FAILED                  | a [data export job](#operation/findJobs) fails\
    \ to complete                           |\n| PAYMENT_REQUEST/CREATED            | a payment request is created |\n| PAYMENT_REQUEST/STATUS_CHANGED\
    \     | a payment request's status changes |\n| PAYMENT_REQUEST/VIEWED             | a payment request is viewed by the\
    \ Customer |\n| PING                               | a webhook is initially created to verify serivce availability |\n\
    | TASK/ASSIGNEE_UPDATED              | a task's assignee is updated |\n| TASK/CLOSED                        | a task is\
    \ closed |\n| TASK/COMMENT_ADDED                 | a comment is added to a task |\n| TASK/CONTENT_UPDATED            \
    \   | the content of a task is updated |\n| TASK/CREATED                       | a task is created |\n| TASK/DUE_DATE_UPDATED\
    \              | the due date of a task is updated |\n| TASK/FOLLOWER_ADDED                | a follower is added to a\
    \ task |\n| TASK/FOLLOWER_REMOVED              | a follower is removed from a task\n| TASK/REOPENED                  \
    \    | a closed task is reopened |\n"
- name: Customer Lookup
  description: '**Customer Lookup** allows you to provide a web service to search and get customer profile data and transactions.


    To support Customer Lookup, your organization will deploy an adaptor service (aka Lookup Adaptor) running on your network
    that implements the Lookup API.


    From there you can can connect the service to internal systems providing customer and transaction data.


    ![Lookup Architecture](assets/lookup-adapter-arch.svg)


    ### Overview


    Building a Lookup Adaptor will allow you to showcase extended customer profile information and actions in Gladly. For
    example, you may extend the customer profile in Gladly with loyalty points and lifetime value to assist with VIP routing.
    You can also display historical orders in Gladly to allow agents to view frequently used directly in Gladly without having
    to go to another system. You can even extend Gladly with Actions so that agents can cancel orders or award loyalty points
    directly in Gladly!


    On a high-level, Gladly will perform a request to your Customer Lookup integration(s) to retrieve extended information
    from your system(s) about a Customer Profile in Gladly.


    To ensure performance, Gladly recommends that your Customer Lookup integration(s) be able to respond back to the Gladly
    POST request in < 5 seconds. Gladly will terminate the request in 15 seconds if it receives no response from your integration(s).
    Please note that if one Customer Lookup integration times out / responds with an error that Gladly will consider this
    an error for all Customer Lookup integration(s).


    ### Sample code


    Sample code for building a Customer Lookup integration can be found [here](https://github.com/gladly/lookup-practice).


    ### Architecture, Setup, Authentication, Sample Requests and More


    A detailed overview of Lookup Adaptor architecture, requests, resposnes and more can be found [here](https://help.gladly.com/developer/docs/lookup-adapter-introduction).

    '
- name: Versioning
  description: "As we evolve the Gladly API over time, changes will be either added to the current version of the API (i.e.\
    \ **[backwards compatible changes](#backwards-compatible-changes)**),\nor result in a new version that you will need to\
    \ integrate with afresh (i.e. **[non-backwards compatible changes](#non-backwards-compatible-changes)**).\n\n## URL Path\
    \ Versioning\n\nThe various versions of the Gladly API will be differentiated via global versioning, with the relevant\
    \ version number reflected within the path parameter of the URL:\n\n    https://organization.gladly.com/api/v{major-version-number}/{resource\
    \ path}\n\n## Backwards Compatible Changes\n\nFor the most part, changes to the API will be backwards compatible, such\
    \ as adding resources, additional fields to response objects,\nnew value types for enums, or expanding a validation constraint\
    \ to be more accepting.\n\nEnsure your client can gracefully handle or ignore unfamiliar fields and values so it continues\
    \ to operate smoothly over the lifespan of an API version.\n\n## Non-Backwards Compatible Changes\n\nVersions will be\
    \ upleveled when a non-backwards compatible change occurs. This should not happen often, but can occur in the case of:\n\
    - a field being removed from an object\n- a resource path no longer being supported\n- changing the type of a field\n\
    - adding a new required parameter for a resource\n- constricting the validation parameters for a request\n\nThese will\
    \ only occur when absolutely necessary and a summary of the changes from version to version can be viewed in the release\
    \ notes.\nPrevious versions will be supported for a period of time before being removed after providing ample advanced\
    \ notice.\n"
- name: Error Handling
  description: "Wherever possible, Gladly uses standard HTTP status codes to signal the success or failure of a call.\nGenerally\
    \ speaking, `2xx` statuses indicate success, `3xx` statuses indicate the client must take further action such as redirection,\n\
    `4xx` statuses indicate an error with the input supplied by the client, `5xx` statuses indicate an unexpected error from\
    \ Gladly servers (these will be rare cases).\n\n## Common Status Codes\n\n| HTTP Status | Description |\n| -----------\
    \ | ------------------------------------------------- |\n| 200         | Success with results in response body       \
    \      |\n| 201         | Resource created                                  |\n| 204         | Success with empty response\
    \ body                  |\n| 301         | The resource location has moved                   |\n| 400         | API usage\
    \ error                                   |\n| 401         | Authentication not provided                       |\n| 403\
    \         | User does not have persmission to access resource |\n| 404         | Resource is not found               \
    \              |\n| 429         | Rate limit reached                                |\n\n## Programmatic Remediation\n\
    In the case of a `400` response, there will be a structured list of `error` objects that w

# --- truncated at 32 KB (414 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/openapi/gladly-rest-api-openapi.yml