NAV

Introduction

All API methods should be called on the onLoad event

HFCHAT_CONFIG.onload = function() {

 var HappyFoxChat = this;

};

HappyFox Chat JavaScript API provides you more control over the chat widget. You can customize the widget behavior programmatically.

All API methods should be called only after the script is loaded.


HappyFox Chat REST API provides you options to fetch your data in a RESTful way. As of now you can only “fetch” data. Over time we will be adding methods for you to create/update objects.

JavaScript API

Set Visitor Info

To Set Visitor Info

HappyFoxChat.setVisitorInfo({
 'name': 'Bob',
 'email': 'bubblybob@gmail.com',
 'phoneNumber': '+18005251415'
}, function(err, resp) {
  /**
  * err  -> Incase of failure this will have error object
  * resp -> Passed visitor info object (Here: { 'name': 'Bob', 'email': 'bubblybob@gmail.com', 'phoneNumber': '+18005251415' })
  */
  if(err) {
    console.error('Failed to set visitor details. Error:', err);
  } else {
    console.log('Added visitor details:', resp);
  }
});

You can send in your signed-in user’s name and email by simply calling the setVisitorInfo method to pass those details. This is will skip the pre-chat form for the users.

Mandatory properties that needs to be set:

Syntax - setVisitorInfo

HappyFoxChat.setVisitorInfo(<visitorInfoObject>, <callback>);

Get Visitor Info

To Get Visitor Info

HappyFoxChat.getVisitorInfo(function(err, resp) {
  /**
  * err  -> Incase of failure this will have error object
  * resp -> Visitor Info object (Example: { 'name': 'Bob', 'email': 'bubblybob@gmail.com', phoneNumber: '+18005251415' })
  */
  if(err) {
    console.error('Failed to set visitor details. Error:', err);
  } else {
    console.log('Got visitor info:', resp);
  }
});

Properties returned by this method:

Syntax - getVisitorInfo

HappyFoxChat.getVisitorInfo(<callback>);

Unset Visitor

To Unset Visitor

HappyFoxChat.unsetVisitor(function(err) {
 if (err) {
  console.error('Failed to reset the visitor. Error:', err);
 } else {
  console.log('Visitor reset successful');  
 }
});

If you want to clear or unset the visitor details when your visitor logs off, you can call the method unsetVisitor API to clear the pre-filled data.

Syntax - unsetVisitor

HappyFoxChat.unsetVisitor(<callback>);

Set Custom Fields

To Set Custom Fields

HappyFoxChat.setCustomFields({
 'Account Number': '1234567890',
 'Branch': 'CA',
 'Type': 'Free'
}, function(err, resp) {
 if(err) {
  console.error('Failed to add given properties to custom fields. Error:', err);
 } else {
  console.log('Added custom field properties:', resp);
 }
});
HappyFoxChat.unsetCustomFields({
 'Account Number',
 'Branch'
}, function(err, resp) {
 /**
  * err  -> Incase of failure this will have error object
  */
 if(err) {
  console.error('Failed to unset given custom field values. Error:', err);
 } else {
  console.log('Successfully unset custom fields');
 }
});

The custom field is a way to pass more data about visitors from your website to HappyFox Chat without any action needed from them. Using this API, you can set or unset custom field values.

<customField[Object]> should have properties defined inside HappyFox Chat

Syntax - setCustomFields

HappyFoxChat.setCustomFields(<customFieldObject>, <callback>);

Syntax - unsetCustomFields

HappyFoxChat.unsetCustomFields(["<customFieldName>", "<customFieldName>", ... ], <callback>);

Get Custom Field

To Get Custom Field

HappyFoxChat.getCustomField("Type", function (err, value) {
 /**
  * err  -> Incase of failure this will have error object
  */
 if(err) {
  console.error('Failed to unset given custom field values. Error:', err);
 } else {
  console.log('Successfully got custom field value. Value:', value);
 }
});

Get a custom field value from the chat widget. This function will throw an error if the field is not set previously or if the field is not created in your account.

Syntax - getCustomField

HappyFoxChat.getCustomField("<customFieldName>", <callback>);

Add Custom Styles

To Add Custom Styles

HappyFoxChat.addCustomStyles('.hfc-title-text { color: #0000FF !important; } .hfc-title-bar { background-color: #00FF00 !important; }', function(err) {
 /**
  * err  -> Incase of failure this will have error object
  */
  if (err) {
    console.error('Failed to add custom styles. Error:', err);
  } else {
    console.log('Added custom styles');
  }
});

To make CSS customization or to change the style of the widget, use the below API.

Syntax - addCustomStyles

HappyFoxChat.addCustomStyles(<customStyle>);

Add Custom CSS File

To Add Custom CSS File

HappyFoxChat.addCustomCSSFile('http://mydomain.com/css/happyfoxchat-custom.css', function(err) {
 /**
  * err  -> Incase of failure this will have error object
  */
 if(err) {
  console.error('Failed to add custom CSS file. Error:', err);
 } else {
  console.log('Added custom CSS file');
 }
});

Pass in the URL of your own CSS file to customise the look & feel according to your brand aesthetics.

Syntax - addCustomCSSFile

HappyFoxChat.addCustomCSSFile(<customCSSFileUrl>);

Expand/Collapse Chatbox

To Expand/Collapse Chatbox

HappyFoxChat.expandChatbox(function(err) {
 /**
  * err  -> Incase of failure this will have error object
  */
 if(err) {
  console.error('Failed to expand chatbox. Error:', err);
 } else {
  console.log('Expanded chatbox');
 }
});

Expand and Collapse the chat widget programmatically using this function. This is of great use when you want to expand/collapse the chat widget for certain scenarios in your page. For exampe - you can expand the chat widget when users click “Chat with us” link anywhere on your website.

Syntax - expandChatbox

HappyFoxChat.expandChatbox(<callback>);

Syntax - collapseChatbox

HappyFoxChat.collapseChatbox(<callback>);

Show/Hide Widget

Show and hide the chat widget programmatically using this function. This is of great use when you want to optionally show the widget on some pages in your website.

Syntax - showWidget

HappyFoxChat.showWidget(<callback>);

Syntax - hideWidget

HappyFoxChat.hideWidget(<callback>);

Show/Hide Badge

Show and hide the Badge on chat widget programmatically using this function.

Syntax - showBadge

HappyFoxChat.showBadge(<callback>);

Syntax - hideBadge

HappyFoxChat.hideBadge(<callback>);

Get Agents Availability

To Get Agents Availability

HappyFoxChat.getAgentsAvailability(function (err, agentsAvailability) {
  ...
});

Using this function, you can check whether your chat support agents are available to chat now.

Get Visitor State

To Get Visitor State

HappyFoxChat.getVisitorState(function (err, visitorState) {
  ...
  visitorState can be "passive"/"waiting_for_agent"/"chattting"
});

Using this function, you can fetch the Visitor’s current chat state.

Get Proactive Message

To Get Proactive Message

HappyFoxChat.getProactiveMessage(function (err, proactiveMessage) {
  ...
});

Get Widget Properties

To Get Widget Properties

HappyFoxChat.getWidgetProperties(function (err, widgetProperties) {
  ...
});

Events

To Listen Events

HappyFoxChat.on('click:badge', function () {
  console.log('Chat with us badge clicked');
});

You can listen to various events from the widget.

Supported Events:

REST API

Authentication

HappyFox Chat REST API uses API Tokens to allow access to the API. Admins can create new API Tokens in apps > Goodies section.

HappyFox Chat expects the API Token to be included in all API requests made to the server in the header with the following format:

Authorization: Bearer [API Token] (without the square brackets).

Pagination

All ‘LIST’ endpoints by default provides paginated response. Paginated responses have properties - meta, data and links.

Corresponding endpoints’ sections below can be referred for sample responses.

Page and Limit

The Page number and Number of records per page can be specified through query params page and limit respectively.

Meta

meta property has members page and totalPages indicating the current page and total number of pages for that request.

Data

data property contains the actual data that was queried for. data is of type array and may be empty or may contain one or more records, depending on the request.

links object contains properties with urls as their values. If there are more results available, property next is present, which can be used to fetch the next set of results.

API Rate Limit

All API endpoints have fixed Rate Limit. As of now it is 100 req/minute. If you want a higher limit, contact support@happyfoxchat.com .

Transcripts

Get All Transcripts

curl "https://api.happyfoxchat.com/v1/transcripts?page=1&limit=2"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
  "meta": {
      "page": 1,
      "totalPages": 6
  },
  "data": [
      {
        "_id": "5979bdee49eca059dae452cc",
        "visitor": {
          "_id": "5979bdee49eca059dae452cb",
          "createdAt": "2017-07-27T10:18:22.151Z",
          "updatedAt": "2017-07-27T10:18:22.151Z",
          "repeatVisitor": false,
          "stats": {
            "ipAddress": "182.73.135.26",
            "utmParams": null,
            "browser": {
                "patch": "3071",
                "minor": "0",
                "major": "59",
                "family": "Chrome"
            },
            "os": {
                "patchMinor": null,
                "patch": "5",
                "minor": "12",
                "major": "10",
                "family": "Mac OS X"
            },
            "device": {
                "family": "Other"
            },
            "timezone": "Asia/Calcutta",
            "pages": [
                {
                    "title": "HappyFox Live Chat",
                    "domain": "https://happyfoxchat.com",
                    "url": "https://happyfoxchat.com/chat/2c768310-6dd7-11e7-ae75-a9ecadeb7ee6",
                    "referrer": "",
                    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36",
                    "timestamp": "Thu, 27 Jul 2017 10:17:45 GMT",
                    "dimension": {
                        "width": 1440,
                        "height": 900
                    }
                }
            ]
          },
          "email": "viktor@acme.com",
          "name": "Viktor",
          "visitorChatId": 23485,
          "__v": 0,
          "lastEventTimestamp": "2017-07-27T10:18:20.000Z",
          "id": "5979bdee49eca059dae452cb"
        },
        "timestamp": "2017-07-27T10:17:59.000Z",
        "profile": {
          "_id": "597193eaa32cb73021e37420",
          "name": "Support"
        },
        "totalMessages": "3",
        "firstMessage": "Hello",
        "companyChatId": 2886,
        "hasTranslatedText": false,
        "rating": {
          "feedback": "Very Poor service",
          "pattern": "star",
          "ratedOn": "2017-07-27T10:18:48.417Z",
          "type": "visitor-given",
          "value": 1
        },
        "integrationLogs": [],
        "tags": [],
        "messages": [
          {
            "type": "VisitorSessionBegan",
            "timestamp": "2017-07-27T10:17:59.000Z"
          },
          {
            "messageId": 1,
            "type": "VisitorMessage",
            "author": {
                "id": 23485,
                "name": "Viktor"
            },
            "text": "Hello",
            "timestamp": "2017-07-27T10:18:01.000Z",
            "subType": ""
          },
          {
            "type": "AgentJoined",
            "author": {
                "id": 3872,
                "name": "Sam Mendis"
            },
            "timestamp": "2017-07-27T10:18:05.000Z"
          },
          {
            "messageId": 2,
            "type": "AgentMessage",
            "author": {
                "id": 3872,
                "name": "Sam Mendis"
            },
            "text": "Good Morning, How may I help you?",
            "timestamp": "2017-07-27T10:18:09.000Z",
            "subType": ""
          },
          {
            "messageId": 3,
            "type": "VisitorMessage",
            "author": {
                "id": 23485,
                "name": "Viktor"
            },
            "text": "Will there be a Black Friday Sale?",
            "timestamp": "2017-07-27T10:18:15.000Z",
            "subType": ""
          },
          {
            "type": "VisitorBecameInactive",
            "endEvent": "VisitorEndedTheConversation",
            "timestamp": "2017-07-27T10:18:20.000Z"
          }
        ],
        "stats": {
          "waitingTime": 8,
          "averageResponseTime": 8,
          "totalChatDuration": 14
        },
        "departments": [
          {
            "_id": "597193eca32cb73021e37421",
            "name": "Default"
          }
        ],
        "agents": [
          {
            "agentChatId": 3872,
            "name": "Sam Mendis",
            "_id": "5979bdee49eca059dae452cd"
          }
        ],
        "isMissed": false,
        "isTriggeredChat": true,
        "isProactiveChat": false,
        "agent_names": "Sam Mendis",
        "id": "5979bdee49eca059dae452cc"
    }
  ],
  "links": {
      "next": "https://api.happyfox.com/v1/transcripts?page=2&limit=1"
  }
}

This endpoint retrieves all Transcripts.

HTTP Request

GET https://api.happyfoxchat.com/v1/transcripts

REQUEST HEADER

Header Value
Timezone Timezone String

eg: America/New_York, Asia/Calcutta etc.

URL Queries

Query Description
agent_email e-mail of the agent, transcripts featuring whom needs to be retrieved.
agent_id ID of the agent, transcripts featuring whom needs to be retrieved.
visitor_email e-mail of the visitor, transcripts featuring whom needs to be retrieved.
visitor_id ID of the visitor, transcripts featuring whome needs to be retrieved.
department_id ID of the department to which the transcripts need to belong.
profile_id ID of the widget profile in which the transcripts need to have taken place.
date_from The start of the date range, after which the transcript has to have taken place.
date_to The end of the date range, before which the transcript has to have taken place.
time_period Time periods to which the transcripts should belong can be specified.
page Page number of the list of transcripts.
limit Number of transcripts per response for a given page number.
agents Agents participated in the Chat.

Get a Specific Transcript

curl "https://api.happyfoxchat.com/v1/transcripts/<transcriptId>"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
    "_id": "5979bdee49eca059dae452cc",
    "visitor": {
      "_id": "5979bdee49eca059dae452cb",
      "createdAt": "2017-07-27T10:18:22.151Z",
      "updatedAt": "2017-07-27T10:18:22.151Z",
      "repeatVisitor": false,
      "stats": {
        "ipAddress": "182.73.135.26",
        "utmParams": null,
        "browser": {
            "patch": "3071",
            "minor": "0",
            "major": "59",
            "family": "Chrome"
        },
        "os": {
            "patchMinor": null,
            "patch": "5",
            "minor": "12",
            "major": "10",
            "family": "Mac OS X"
        },
        "device": {
            "family": "Other"
        },
        "timezone": "Asia/Calcutta",
        "pages": [
            {
                "title": "HappyFox Live Chat",
                "domain": "https://happyfoxchat.com",
                "url": "https://happyfoxchat.com/chat/2c768310-6dd7-11e7-ae75-a9ecadeb7ee6",
                "referrer": "",
                "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36",
                "timestamp": "Thu, 27 Jul 2017 10:17:45 GMT",
                "dimension": {
                    "width": 1440,
                    "height": 900
                }
            }
        ]
      },
      "email": "viktor@acme.com",
      "name": "Viktor",
      "visitorChatId": 23485,
      "__v": 0,
      "lastEventTimestamp": "2017-07-27T10:18:20.000Z",
      "id": "5979bdee49eca059dae452cb"
    },
    "timestamp": "2017-07-27T10:17:59.000Z",
    "profile": {
      "_id": "597193eaa32cb73021e37420",
      "name": "Support"
    },
    "totalMessages": "3",
    "firstMessage": "Hello",
    "companyChatId": 2886,
    "hasTranslatedText": false,
    "rating": {
      "feedback": "Very Poor service",
      "pattern": "star",
      "ratedOn": "2017-07-27T10:18:48.417Z",
      "type": "visitor-given",
      "value": 1
    },
    "integrationLogs": [],
    "tags": [],
    "messages": [
      {
        "type": "VisitorSessionBegan",
        "timestamp": "2017-07-27T10:17:59.000Z"
      },
      {
        "messageId": 1,
        "type": "VisitorMessage",
        "author": {
            "id": 23485,
            "name": "Viktor"
        },
        "text": "Hello",
        "timestamp": "2017-07-27T10:18:01.000Z",
        "subType": ""
      },
      {
        "type": "AgentJoined",
        "author": {
            "id": 3872,
            "name": "Sam Mendis"
        },
        "timestamp": "2017-07-27T10:18:05.000Z"
      },
      {
        "messageId": 2,
        "type": "AgentMessage",
        "author": {
            "id": 3872,
            "name": "Sam Mendis"
        },
        "text": "Good Morning, How may I help you?",
        "timestamp": "2017-07-27T10:18:09.000Z",
        "subType": ""
      },
      {
        "messageId": 3,
        "type": "VisitorMessage",
        "author": {
            "id": 23485,
            "name": "Viktor"
        },
        "text": "Will there be a Black Friday sale",
        "timestamp": "2017-07-27T10:18:15.000Z",
        "subType": ""
      },
      {
        "type": "VisitorBecameInactive",
        "endEvent": "VisitorEndedTheConversation",
        "timestamp": "2017-07-27T10:18:20.000Z"
      }
    ],
    "stats": {
      "waitingTime": 8,
      "averageResponseTime": 8,
      "totalChatDuration": 14
    },
    "departments": [
      {
        "_id": "597193eca32cb73021e37421",
        "name": "Default"
      }
    ],
    "agents": [
      {
        "agentChatId": 3872,
        "name": "Sam Mendis",
        "_id": "5979bdee49eca059dae452cd"
      }
    ],
    "isMissed": false,
    "isTriggeredChat": true,
    "isProactiveChat": false,
    "agent_names": "Sam Mendis",
    "id": "5979bdee49eca059dae452cc"
}

This endpoint retrieves a specific Transcript.

HTTP Request

https://api.happyfoxchat.com/v1/transcripts/<transcriptId>

URL Parameters

Parameter Description
transcriptId The _id of the Transcript to retrieve.
Transcript Property Description
_id ID of the given transcript.
agents Agents associated with the Chat.
departments Departments associated with the Chat.
visitor Details of the visitor associated with the Chat.
companyChatId Secondary identifier of your Company.
stats Stats pertaining to the visitor associated with the Chat.
rating Rating provided by the Visitor for the Chat session.
createdAt Date when Transcript created.
updatedAt Date when Transcript updated.
timestamp Timestamp of the first user-message.
messages All messages under the transcript.
firstMessage First user-message in the Transcript.
totalMessages Total number of user-messages in the Transcript.
tags Tags that the Transcript is placed under.
customFields Custom Field values set via the JavaScript API.
profile Profile of the widget in which the Chat took place.
hasTranslatedText Boolean indicating whether or not the chat contains Live Translated content.
sourceLangCode Actual language the Chat took place in.
targetLangCode The Language to which the Chat was translated to.
isMissed Boolean indicating whether or not the chat is a Missed Chat.
isTriggeredChat Boolean indicating whether or not the chat is a Triggered Chat.
isProactiveChat Boolean indicating whether or not the chat is a Proactive Chat.

Offline Messages

Get All Offline Messages

curl "https://api.happyfoxchat.com/v1/offline-messages?page=1&limit=2"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
  "meta": {
      "page": 1,
      "totalPages": 5
  },
  "data": [
    {
      "_id": "59788ac89051246e91e1c7af",
      "profileId": "597193eaa32cb73021e37420",
      "message": "Hi, please get back to me.",
      "createdAt": "2017-10-24T06:04:48.073Z",
      "chatFromUrl": "https://happyfoxchat.com/chat/2c768310-6dd7-11e7-ae75-a9ecadeb7ee6",
      "name": "Xavier Brown",
      "email": "xavier72@hotmail.com",
      "phoneNumber": "+919380358107",
      "department": "597193eca32cb73021e37421",
      "tags": [],
      "events": [],
      "profileId": "597193eaa32cb73021e37420"
    },
    {
      "_id": "59788ac89051246e91e1c7aa",
      "profileId": "597193eaa32cb73021e37420",
      "message": "Hi, please get back to me.",
      "createdAt": "2017-10-27T06:04:48.073Z",
      "chatFromUrl": "https://happyfoxchat.com/chat/2c768310-6dd7-11e7-ae75-a9ecadeb7ee6",
      "name": "Xavier Brown",
      "email": "xavier72@hotmail.com",
      "department": "597193eca32cb73021e37421",
      "tags": [],
      "events": [],
      "profileId": "597193eaa32cb73021e37420"
    }
  ],
  "links": {
    "next": "https://api.happyfox.com/v1/offline-messages?page=2&limit=2"
  }
}

This endpoint retrieves all Offline Messages.

HTTP Request

GET https://api.happyfoxchat.com/v1/offline-messages

REQUEST HEADER

Header Value
Timezone Timezone String

eg: America/New_York, Asia/Calcutta etc.

URL Queries

Query Description
page Page number of the list of Offline Messages.
limit Number of Offline Messages per response for a given page number.

Get a Specific Offline Message

curl "https://api.happyfoxchat.com/v1/offline-messages/<offlineMessageId>"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
  "_id": "59788ac89051246e91e1c7af",
  "profileId": "597193eaa32cb73021e37420",
  "message": "Hi, please get back to me.",
  "createdAt": "2017-10-27T06:04:48.073Z",
  "chatFromUrl": "https://happyfoxchat.com/chat/2c768310-6dd7-11e7-ae75-a9ecadeb7ee6",
  "name": "Xavier Brown",
  "email": "xavier72@hotmail.com",
  "department": "597193eca32cb73021e37421",
  "tags": [],
  "events": []
}

This endpoint retrieves a particular Offline Message

HTTP Request

https://api.happyfoxchat.com/v1/offline-messages/<offlineMessageId>

URL Parameters

Parameter Description
offlineMessageId The _id of the Offline Message to retrieve.
Offline Message Property Description
_id ID of the given Offline Message.
name Name of the Visitor.
phoneNumber Phone Number of the Visitor.
email e-mail of the Visitor.
message Message from the Visitor.
department Department the Visitor intended to contact.
profileId ID of the profile of widget, via which the Visitor left a message.
createdAt Date when Offline Message was created.
updatedAt Date when Offline Message last updated.
tags Tags on the Offline Message.
events Events associated with the Offline Message.
chatFromUrl URL of the page, from where the Visitor left the message.
customFields Custom Field values, if set via the JavaScript API.

Agents

Get All Agents

curl "https://api.happyfoxchat.com/v1/agents?limit=2"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
  "meta": {
    "page": 1,
    "totalPages": 5
  },
  "data": [
    {
      "_id": "597193e2a32cb73021e3741e",
      "name": "Sam Mendis",
      "email": "sam@acme.com",
      "isAdmin": true,
      "agentChatId": 3873,
      "displayName": "Sam Mendis",
      "chatLimit": 4,
      "createdAt": "2017-07-13T11:09:11.913Z",
      "updatedAt": "2017-06-04T07:52:54.369Z",
      "deleted": false,
      "timezone": "UTC",
      "isOwner": true
    },
    {
      "_id": "59719494a32cb73021e37424",
      "name": "Mark Rylance",
      "agentChatId": 3872,
      "email": "mark@acme.com",
      "isAdmin": false,
      "invitedBy": "597193e2a32cb73021e3741e",
      "displayName": "Mark Rylance",
      "chatLimit": 0,
      "createdAt": "2017-07-13T12:08:11.913Z",
      "updatedAt": "2017-06-04T10:12:54.369Z",
      "ratings": {
          "average": 3.875,
          "totalRatedChats": 16,
          "fiveStarCount": 5,
          "fourStarCount": 8,
          "threeStarCount": 0,
          "twoStarCount": 2,
          "oneStarCount": 1
      },
      "deleted": false,
      "timezone": "UTC",
      "isOwner": false
    }
  ],
  "links": {
    "next": "https://api.happyfoxchat.com/v1/agents?page=2&limit=2"
  }
}

This endpoint retrieves all agents. data will consist of an array of agents.

HTTP Request

GET https://api.happyfoxchat.com/v1/agents

URL Queries

Query Description
page Page number of the list of agents.
limit Number of agents per response for a given page number.

Get a Specific Agent

curl "https://api.happyfoxchat.com/v1/agents/<agentId>"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

  {
      "_id": "59719494a32cb73021e37424",
      "name": "Mark Rylance",
      "agentChatId": 3872,
      "email": "mark@acme.com",
      "displayName": "Mark Rylance",
      "displayImageUrl": "https://cdn1.iconfinder.com/data/icons/ninja-things-1/1772/ninja-simple-512.png",
      "timezone": "UTC",
      "isOwner": false,
      "isAdmin": false,
      "invitedBy": "597193e2a32cb73021e3741e",
      "deleted" : false,
      "createdAt": "2017-07-13T12:08:11.913Z",
      "updatedAt": "2017-06-04T10:12:54.369Z",
      "ratings": {
        "oneStarCount" : 1,
        "twoStarCount" : 0,
        "threeStarCount" : 0,
        "fourStarCount" : 0,
        "fiveStarCount" : 0,
        "totalRatedChats" : 1,
        "average" : 1
      },
      "chatLimit": 0
  }

This endpoint retrieves a specific agent.

HTTP Request

https://api.happyfoxchat.com/v1/agents/<agentId>

URL Parameters

Parameter Description
agentId The _id of the Agent to retrieve.
Agent Property Description
_id ID of the given agent
name Name of the image as entered while Signing up.
email e-mail ID of the agent.
displayName Display name of the agent if set by them, also shown to visitors.
displayImageUrl URL of the Display Image as set by the agent.
agentChatId Secondary identifier of the given agent.
timezone Timezone of the agent.
isOwner Boolean indicating whether the agent is the Owner.
isAdmin Boolean indicating whether the agent is an Admin.
invitedBy Agent ID of agent who invited the given agent, If joined through invitation.
createdAt Date when agent created.
updatedAt Date when agent updated.
deleted Boolean indicating whether the agent has been deleted or not.
ratings Ratings received by the agent.
chatLimit Number of chats the agent can handle, if set by an Admin.

Visitors

Get All Visitors

curl "https://api.happyfoxchat.com/v1/visitors?page=1&limit=1"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
    "meta": {
        "page": 1,
        "totalPages": 5
    },
    "data": [
      {
        "_id": "5979bdee49eca059dae452cb",
        "createdAt": "2017-07-13T11:09:11.913Z",
        "updatedAt": "2017-06-04T07:52:54.369Z",
        "repeatVisitor": false,
        "stats": {
            "ipAddress": "182.73.135.26",
            "utmParams": null,
            "browser": {
                "patch": "3071",
                "minor": "0",
                "major": "59",
                "family": "Chrome"
            },
            "os": {
                "patchMinor": null,
                "patch": "5",
                "minor": "12",
                "major": "10",
                "family": "Mac OS X"
            },
            "device": {
                "family": "Other"
            },
            "timezone": "America/Chicago",
            "pages": [
              {
                  "title": "HappyFox Live Chat",
                  "domain": "https://happyfoxchat.com",
                  "url": "https://happyfoxchat.com/chat/2c768310-6dd7-11e7-ae75-a9ecadeb7ee6",
                  "referrer": "",
                  "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36",
                  "timestamp": "Thu, 27 Jul 2017 10:17:45 GMT",
                  "dimension": {
                      "width": 1440,
                      "height": 900
                  }
              }
            ]
          },
        "email": "haley@rediff.com",
        "name": "Haley Mancini",
        "lastEventTimestamp": "2017-07-27T10:18:20.000Z"
      }
    ],
    "links": {
        "next": "https://api.happyfox.com/v1/visitors?page=2&limit=1"
    }
}

This endpoint retrieves all visitors.

HTTP Request

GET https://api.happyfoxchat.com/v1/visitors

URL Queries

Query Description
page Page number of the list of visitors.
limit Number of visitors per response for a given page number.

Get a Specific Visitor

curl "https://api.happyfoxchat.com/v1/visitors/<visitorId>"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
  "_id": "5979afd50fdf371ad634dbc2",
  "createdAt": "2017-07-13T11:09:11.913Z",
  "updatedAt": "2017-06-04T07:52:54.369Z",
  "repeatVisitor": false,
  "stats": {
    "ipAddress": "182.73.135.26",
    "utmParams": null,
    "browser": {
      "patch": "3071",
      "minor": "0",
      "major": "59",
      "family": "Chrome"
    },
    "os": {
      "patchMinor": null,
      "patch": "5",
      "minor": "12",
      "major": "10",
      "family": "Mac OS X"
    },
    "device": {
        "family": "Other"
    },
    "timezone": "Asia/Calcutta",
    "pages": [
      {
        "title": "HappyFox Live Chat",
        "domain": "https://happyfoxchat.com",
        "url": "https://happyfoxchat.com/chat/2c768310-6dd7-11e7-ae75-a9ecadeb7ee6",
        "referrer": "",
        "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36",
        "timestamp": "Thu, 27 Jul 2017 09:12:56 GMT",
        "dimension": {
            "width": 1440,
            "height": 900
        }
      }
    ]
  },
  "email": "brad@icloud.com",
  "name": "Brad Hunt",
  "lastEventTimestamp": "2017-07-27T09:16:09.000Z"
}

This endpoint retrieves a specific visitor.

HTTP Request

https://api.happyfoxchat.com/v1/visitors/<visitorId>

URL Parameters

Parameter Description
visitorId The _id of the Visitor to retrieve.
Visitor Property Description
_id ID of the given agent
createdAt Date when Visitor was created.
updatedAt Date when Visitor was last updated.
repeatVisitor Boolean indicating whether the visitor has already been.
stats Stats of the user.
email e-mail address of the visitor.
phoneNumber Phone Number of the visitor.
name Name of the visitor.
lastEventTimestamp Timestamp of the last know event performed by the visitor.

Profiles

Get All Profiles

curl "https://api.happyfoxchat.com/v1/profiles"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
  "meta": {
    "page": 1,
    "totalPages": 1
  },
  "data": [
    {
        "_id": "597195bea32cb73021e3742c",
        "createdAt": "2017-07-21T05:48:48.862Z",
        "updatedAt": "2017-08-25T09:34:27.259Z",
        "embedToken": "4362c740-6dd8-11e7-ae75-a9ecadeb7ee6",
        "name": "Checkout Page Widget",
        "url": "acme.com/checkout",
        "timezone": "Asia/Calcutta",
        "broadcastDepartment": "597195c2a32cb73021e3742d",
        "liveTranslationTargetLangCode": "en",
        "workHours": [],
        "isWorkHoursEnabled": false,
        "offline": {
            "phoneNumber": {
                "enabled": false
            }
        },
        "prechat": {
            "department": {
                "enabled": false
            },
            "phoneNumber": {
                "optional": true,
                "enabled": false
            },
            "email": {
                "optional": false,
                "enabled": true
            },
            "name": {
                "optional": false,
                "enabled": true
            },
            "enabled": true
        },
        "routing": {
            "queueWelcomeMessage": "Hey {visitorName}, All our agents are busy at the moment. You will be attended in a bit.",
            "isQueueEnabled": false,
            "agentsChatLimit": 4,
            "isMaxChatLimitEnabled": false,
            "reassignmentTimeLimit": 60,
            "isReassignmentChatEnabled": false,
            "mode": "broadcast"
        },
        "isDepartmentsEnabled": false,
        "isDeleted": false,
        "isDefault": false,
        "isInstalled": [],
        "language": "en",
        "general": {
            "transcriptEmail": {
                "active": false,
                "email": ""
            }
        },
        "text": {
            "departmentPickerLabel": "Select Department",
            "offlineSendMessageButton": "Leave a message",
            "startButton": "Start Live Chat",
            "companyGreetingSubtitle": "Live Chat",
            "companyGreeting": "Welcome!",
            "welcomeTextTitle": "Hey there!",
            "firstMessage": "Hi {visitorName}, how can we help you today?",
            "offlineBadge": "Leave us a message!",
            "badge": "Chat with us!",
            "titleBar": "Live Chat",
            "offlineWelcomeText": "Sorry, we are away. Leave us a message and we'll get back to you.",
            "welcomeText": "Welcome to Happyfox Chat. We are here to help you with all the questions you have."
        },
        "appearance": {
            "badgeStyle": "full",
            "showAgentPicture": true,
            "position": "bottomRight",
            "secondaryColor": "ffffff",
            "primaryColor": "d014ff",
            "theme": "flat"
        },
        "hideWidgetWhenOffline": false,
        "removeHfcBranding": false,
        "hideRatingForm": true,
        "maximizedOnLoad": false,
        "hideChatWidget": false,
        "hexColorCode": "cc8be0"
      }
  ],
  "links": {}
}

This endpoint retrieves all Profiles.

HTTP Request

GET https://api.happyfoxchat.com/v1/profiles

URL Queries

Query Description
page Page number of the list of profiles.
limit Number of profiles per response for a given page number.

Get a Specific Profile

curl "https://api.happyfoxchat.com/v1/profiles/<profileId>"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
  "_id": "597195bea32cb73021e3742c",
  "createdAt": "2017-07-21T05:48:48.862Z",
  "updatedAt": "2017-08-25T09:34:27.259Z",
  "embedToken": "4362c740-6dd8-11e7-ae75-a9ecadeb7ee6",
  "name": "Checkout Page Widget",
  "url": "acme.com/checkout",
  "timezone": "Asia/Calcutta",
  "broadcastDepartment": "597195c2a32cb73021e3742d",
  "liveTranslationTargetLangCode": "en",
  "workHours": [],
  "isWorkHoursEnabled": false,
  "offline": {
      "phoneNumber": {
          "enabled": false
      }
  },
  "prechat": {
      "department": {
          "enabled": false
      },
      "phoneNumber": {
          "optional": true,
          "enabled": false
      },
      "email": {
          "optional": false,
          "enabled": true
      },
      "name": {
          "optional": false,
          "enabled": true
      },
      "enabled": true
  },
  "routing": {
      "queueWelcomeMessage": "Hey {visitorName}, All our agents are busy at the moment. You will be attended in a bit.",
      "isQueueEnabled": false,
      "agentsChatLimit": 4,
      "isMaxChatLimitEnabled": false,
      "reassignmentTimeLimit": 60,
      "isReassignmentChatEnabled": false,
      "mode": "broadcast"
  },
  "isDepartmentsEnabled": false,
  "isDeleted": false,
  "isDefault": false,
  "isInstalled": [],
  "language": "en",
  "general": {
      "transcriptEmail": {
          "active": false,
          "email": ""
      }
  },
  "text": {
      "departmentPickerLabel": "Select Department",
      "offlineSendMessageButton": "Leave a message",
      "startButton": "Start Live Chat",
      "companyGreetingSubtitle": "Live Chat",
      "companyGreeting": "Welcome!",
      "welcomeTextTitle": "Hey there!",
      "firstMessage": "Hi {visitorName}, how can we help you today?",
      "offlineBadge": "Leave us a message!",
      "badge": "Chat with us!",
      "titleBar": "Live Chat",
      "offlineWelcomeText": "Sorry, we are away. Leave us a message and we'll get back to you.",
      "welcomeText": "Welcome to Happyfox Chat. We are here to help you with all the questions you have."
  },
  "appearance": {
      "badgeStyle": "full",
      "showAgentPicture": true,
      "position": "bottomRight",
      "secondaryColor": "ffffff",
      "primaryColor": "d014ff",
      "theme": "flat"
  },
  "hideWidgetWhenOffline": false,
  "removeHfcBranding": false,
  "hideRatingForm": true,
  "maximizedOnLoad": false,
  "hideChatWidget": false,
  "hexColorCode": "cc8be0"
}

This endpoint retrieves a specific Department.

HTTP Request

https://api.happyfoxchat.com/v1/profiles/<profileId>

URL Parameters

Parameter Description
profileId The _id of the Profile to retrieve.
Profile Property Description
_id ID of the given profile.
name Name of the department.
url Website URL provided at the time of profile creation.
prechat Prechat form settings of the given profile.
routing Routing preferences for the given profile.
broadcastDepartment Default department to route visitors to, if visitors not allowed to choose departments.
text Text information shown to the user under the given profile.
appearance Appearance preferences of the given profile.
general general settings of the given profile.
hideChatWidget Boolean indicating whether or not to hide the Widget.
hideRatingForm Boolean indicating whether ratings prompt has to be shown.
hideWidgetWhenOffline Boolean indicating whether widget has to be hidden, when all agents are offline.
maximizedOnLoad Boolean indicating whether or not the widget should appear maximized, when loaded.
isInstalled Array of page URLs, on which the widget was embedded.
isDeleted Boolean indicating whether the profile has been deleted or not.
embedToken Embed Token for the given profile.
language Language preference for the given profile.
hexColorCode Hex Color Code of the profile.
isDefault Boolean indicating whether or not the Profile is a Default Profile.
timezone Timezone setting for the given Profile.
isWorkHoursEnabled Boolean indicating whether the Work Hour setting is enabled for the profile.
offline Profile settings that are applied when all agents are offline.
removeHfcBranding Boolean indicating whether HappyFox Chat branding has to be removed from Widgets.
isDepartmentsEnabled Boolean indicating whether the visitor should be prompted to choose a department before chat.
createdAt Date when Profile created.
updatedAt Date when Profile updated.
workHours Work Hours Timings.
liveTranslationTargetLangCode Language to be translated to, If Live Translation is enabled.

Departments

Get All Departments

curl "https://api.happyfoxchat.com/v1/departments"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
  "meta": {
    "page": 1,
    "totalPages": 1
  },

  "data": [
    {
      "_id": "59719576a32cb73021e37428",
      "name": "Sales",
      "profileId": "597193eaa32cb73021e37420",
      "createdBy": "597193e2a32cb73021e3741e",
      "updatedBy": "597193e2a32cb73021e3741e",
      "createdAt": "2017-07-21T05:50:26.884Z",
      "updatedAt": "2017-10-25T12:12:38.852Z",
      "isDefault": false,
      "isDeleted": false,
      "agents": [
        "597193e2a32cb73021e3741e",
        "59719494a32cb73021e37424"
      ]
    },
    {
      "_id": "59719576a32cb73021e37427",
      "name": "Default",
      "profileId": "597193eaa32cb73021e37420",
      "createdBy": "597193e2a32cb73021e3741e",
      "updatedBy": "597193e2a32cb73021e3741e",
      "createdAt": "2017-05-28T07:38:32.884Z",
      "updatedAt": "2017-10-25T12:12:38.852Z",
      "isDefault": true,
      "isDeleted": false,
      "agents": [
        "597193e2a32cb73021e3741c",
        "59719494a32cb73021e37419"
      ]
    },
    {
      "_id": "59719588a32cb73021e37429",
      "name": "Support",
      "profileId": "597193eaa32cb73021e37420",
      "createdBy": "597193e2a32cb73021e3741e",
      "updatedBy": "597193e2a32cb73021e3741e",
      "createdAt": "2017-07-21T05:50:05.536Z",
      "updatedAt": "2017-10-25T12:12:38.852Z",
      "isDefault": false,
      "isDeleted": false,
      "agents": [
        "597193e2a32cb73021e3741e",
        "597194aba32cb73021e37425"
      ]
    }
  ],
  "links": {}
}

This endpoint retrieves all Departments.

HTTP Request

GET https://api.happyfoxchat.com/v1/departments

URL Queries

Query Description
page Page number of the list of departments.
limit Number of departments per response for a given page number.
profile_id ID of Profile to which the departments trying to be retrieved have to belong to.

Get a Specific Department

curl "https://api.happyfoxchat.com/v1/departments/<departmentId>"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
  "_id": "59719576a32cb73021e37428",
  "name": "Sales",
  "profileId": "597193eaa32cb73021e37420",
  "createdBy": "597193e2a32cb73021e3741e",
  "updatedBy": "597193e2a32cb73021e3741e",
  "createdAt": "2017-07-21T05:50:05.536Z",
  "updatedAt": "2017-10-25T12:12:38.852Z",
  "isDefault": false,
  "isDeleted": false,
  "agents": [
    "597193e2a32cb73021e3741e",
    "59719494a32cb73021e37424"
  ]
}

This endpoint retrieves a specific Department.

HTTP Request

https://api.happyfoxchat.com/v1/departments/<departmentId>

URL Parameters

Parameter Description
departmentId The _id of the Department to retrieve.
Department Property Description
_id ID of the given Department.
name Name of the department.
profileId ID of the widget profile the department belongs to.
createdBy ID of the agent who created the department.
updatedBy ID of the agent who last updated the department properties.
createdAt Date when created.
updatedAt Date when last updated.
agents Agents belonging to the department.
isDefault Boolean indicating whether or not the department is a Default Department.
isDeleted Boolean indicating whether the departments has been deleted or not.

Canned Responses

Get All Canned Responses

curl "https://api.happyfoxchat.com/v1/canned-responses"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
  "meta": {
    "page": 1,
    "totalPages": 1
  },
  "data": [
    {
      "_id": "5979c42933054d5ada8cd63f",
      "profileId": "597193eaa32cb73021e37420",
      "agentId": "597193e2a32cb73021e3741e",
      "createdAt": "2017-10-13T10:12:54.913Z",
      "updatedAt": "2017-10-04T10:12:54.369Z",
      "isPublic": true,
      "text": "Hi, for pricing details kindly visit https://acme.com/pricing.",
      "shortcode": "pricing"
    },
    {
      "_id": "5979c43d33054d5ada8cd640",
      "profileId": "597193eaa32cb73021e37420",
      "agentId": "597193e2a32cb73021e3741e",
      "createdAt": "2017-10-13T10:54:33.913Z",
      "updatedAt": "2017-10-04T10:54:33.369Z",
      "isPublic": false,
      "text": "Hello, this is Sam, how may I help you today?",
      "shortcode": "hello"
    }
  ],
  "links": {}
}

This endpoint retrieves all Canned Responses.

HTTP Request

GET https://api.happyfoxchat.com/v1/canned-responses

URL Queries

Query Description
page Page number of the list of canned responses.
limit Number of canned responses per response for a given page number.

Get a Specific Canned Response

curl "https://api.happyfoxchat.com/v1/canned-responses/<cannedResponseId>"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
  "_id": "5979c42933054d5ada8cd63f",
  "profileId": "597193eaa32cb73021e37420",
  "agentId": "597193e2a32cb73021e3741e",
  "createdAt": "2017-10-13T10:12:54.913Z",
  "updatedAt": "2017-10-04T10:12:54.369Z",
  "isPublic": false,
  "text": "Hi, for pricing details kindly visit https://acme.com/pricing.",
  "shortcode": "pricing"
}

This endpoint retrieves a specific Canned Response.

HTTP Request

https://api.happyfoxchat.com/v1/agents/<cannedResponseId>

URL Parameters

Parameter Description
cannedReponseId The _id of the Canned Response to retrieve.
Canned Response Property Description
_id ID of the given Canned Response.
createdAt Date when Canned Response created.
updatedAt Date when Canned Response updated.
profileId The ID of the profile under which the Canned Response is nested.
agentId The ID of the agent who created the Canned Response.
isPublic Boolean indicating whether the Canned Response is shared by all Agents.
text The Canned Reponse text.
shortcode The shortcode with which the agent can use the Canned Response text in chats.

Custom Fields

Get All Custom Fields

curl "https://api.happyfoxchat.com/v1/custom-fields"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
  "meta": {
    "page": 1,
    "totalPages": 1
  },
  "data": [
    {
      "_id": "5979ea52034476cfdfa8a2de",
      "createdAt": "2017-07-27T13:27:46.997Z",
      "updatedAt": "2017-07-27T13:27:46.997Z",
      "label": "Plan",
      "type": "string",
      "required": false
    },
    {
      "_id": "5979ea67034476cfdfa8a2df",
      "createdAt": "2017-07-27T13:28:07.013Z",
      "updatedAt": "2017-07-27T13:28:07.013Z",
      "label": "Subscription Months",
      "type": "number",
      "required": false
    }
  ],
  "links": {}
}

This endpoint retrieves all Custom Fields.

HTTP Request

GET https://api.happyfoxchat.com/v1/custom-fields

URL Queries

Query Description
page Page number of the list of custom fields.
limit Number of custom fields per response for a given page number.

Get a Specific Custom Field

curl "https://api.happyfoxchat.com/v1/custom-fields/<customFieldId>"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
  "_id": "5979ea52034476cfdfa8a2de",
  "createdAt": "2017-07-27T13:27:46.997Z",
  "updatedAt": "2017-07-27T13:27:46.997Z",
  "label": "CustomerID",
  "type": "string",
  "required": false
}

This endpoint retrieves a specific Custom Field.

HTTP Request

https://api.happyfoxchat.com/v1/custom-fields/<customFieldId>

URL Parameters

Parameter Description
customFieldId The _id of the Custom Field to retrieve.
Custom Field Property Description
_id ID of the given Custom Field.
label The key of the Custom Field.
type The type of the value of the Custom Field expected.
createdAt Date when Custom Field created.
updatedAt Date when Custom Field created.
required Boolean indicating whether or not Custom Field is mandatory.

Triggered Chats

Get All Triggers

curl "https://api.happyfoxchat.com/v1/triggered-chats"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

[
    {
        "_id": "5979ebd4034476cfdfa8a2e0",
        "createdAt": "2017-07-13T12:08:11.913Z",
        "updatedAt": "2017-06-04T10:12:54.369Z",
        "name": "Pricing Trigger",
        "description": "",
        "active": true,
        "profile": "597193eaa32cb73021e37420",
        "departmentChoice": "597193eca32cb73021e37421",
        "agent": "597193e2a32cb73021e3741e",
        "message": "Hi {visitorName}, need help choosing the right plan for you?",
        "conditions": [
            {
                "type": "url",
                "evaluator": "equals",
                "value": "https://acme.com/pricing"
            },
            {
                "type": "time",
                "evaluator": "gt",
                "value": "60"
            }
        ],
        "conjunction": "and"
    },
    {
        "_id": "5979ec3e034476cfdfa8a2e1",
        "name": "Checkout",
        "description": "",
        "active": true,
        "profile": "597193eaa32cb73021e37420",
        "departmentChoice": "59719576a32cb73021e37428",
        "agent": "597193e2a32cb73021e3741e",
        "message": "Hi {visitorName}, Just let me know If you need help placing an order. I'm right here for ya!",
        "conditions": [
            {
                "type": "visitor",
                "evaluator": "true",
                "value": "first"
            },
            {
                "type": "url",
                "evaluator": "equals",
                "value": "https://acme.com/checkout"
            }
        ],
        "conjunction": "or"
    }
]

This endpoint retrieves all Triggers.

HTTP Request

GET https://api.happyfoxchat.com/v1/triggered-chats

URL Queries

Query Description
page Page number of the list of triggers.
limit Number of triggers per response for a given page number.

Get a Specific Trigger

curl "https://api.happyfoxchat.com/v1/triggered-chats/<triggerId>"
  -H "Authorization: Bearer [API Token]"

The above command returns JSON structured like this:

{
    "_id": "5979ebd4034476cfdfa8a2e0",
    "name": "Pricing Trigger",
    "createdAt": "2017-07-13T12:08:11.913Z",
    "updatedAt": "2017-06-04T10:12:54.369Z",
    "description": "",
    "active": true,
    "profile": "597193eaa32cb73021e37420",
    "departmentChoice": "597193eca32cb73021e37421",
    "agent": "597193e2a32cb73021e3741e",
    "message": "Hi {visitorName}, need help choosing the right plan for you?",
    "conditions": [
        {
            "type": "url",
            "evaluator": "equals",
            "value": "https://acme.com/pricing"
        },
        {
            "type": "time",
            "evaluator": "gt",
            "value": "60"
        }
    ],
    "conjunction": "and"
}

This endpoint retrieves a specific Trigger.

HTTP Request

https://api.happyfoxchat.com/v1/triggers/<triggerId>

URL Parameters

Parameter Description
triggerId The _id of the Trigger to retrieve.
Trigger Property Description
_id ID of the given Trigger.
name Name of the Trigger.
createdAt Date when Trigger created.
updatedAt Date when Trigger updated.
active Boolean indicating whether or not the Trigger is active.
profile Widget Profile, under which the Trigger is available.
agent ID of the agent who created the Trigger.
message Message sent to the user when triggered.
description Description of the Trigger.
departmentChoice Department to which the Trigger reply is to be sent to.
conditions Conditions for the trigger.
conjunction Factor to decide if any or all conditions must be met to trigger.