Automations

An automation is composed of a trigger and an action.

📘

Trigger + Action (automation example)

When a call is missed (trigger), a ticket is created (action) in your external system. This whole process consists of an automation.

Whenever an event occurs, an action will be triggered in the connection. This action is configured autonomously by you and will be triggered in your systems.

❗️

Actions configuration

Talkdesk doesn't manage actions from connections.
You must define and configure these actions according to your needs.

How to Configure an Automation

To configure an automation of a connection, go to the same place where any other integration is configured (make sure you are logged in to your Talkdesk account): AdminIntegrations → [intended connection].

Once you enter the intended connection, go to the Automations tab and click the Add automation button (as depicted below - Figure 38).

2880

Figure 38 - Automations tab

The input fields are dynamically generated from the query parameters and the input JSON schema. These are defined in the configuration of the chosen action.

2880

Figure 39 - Automation configuration page

You can see below (Figures 40 and 41) an example of a configuration of an action with:

  • ID - a query parameter of type number.
  • Request Status - a property of the input schema of type string.
  • Delivery Courier - a property of the input schema (an enum of strings).
  • Phones - a property of the input schema (an array of strings).
1239

Figure 40 - Configuration of an action - query parameters

2880

Figure 41 - Configuration of an action - Input and output schemas

When choosing the action above, in the automation configuration page (Figure 39), the fields that are rendered in the Configure the action section are the following (Figure 42 - right side):

2880

Figure 42 - Fields rendered in the configuring the action section

You can correlate the value types in the input schema/query parameters with the components rendered in the automation configuration page (Figure 39):

  • number and string are rendered as text boxes.
  • boolean is rendered as a checkbox.
  • enum is rendered as a dropdown.
  • array and object are rendered as text areas.

🚧

By using a JSON schema on the action’s input schema, there are multiple configurations you can make. Therefore, some valid and invalid examples are provided below, so you can have a better understanding of what is accepted or not. However, Talkdesk can’t predict all the possible scenarios when rendering the schema in the UI.

❗️

JSON Schemas

The Array without items, Array with empty items, Object without properties and Object with empty properties schemas are valid (see more below), but you won’t be able to configure anything in the automations configuration page.

You can render some other schemas in the automations configuration page, but you might not be able to have their automation saved (e.g.: oneOf, allOf, anyOf, if).

Not supported schemas will show a warning explaining that the respective action is not supported.

👍

JSON Schemas

Object with properties of different types and Array inside object, with items can be seamlessly rendered in the automations configuration page (see more below).

Schemas Rendered in the Automation Configuration Page

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "title": "Array"
}
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "array",
  "title": "Array",
  "items": []
}
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "title": "Object",
  "items": [
    "type": "array",
    "title": "Array",
    "items": [
      "type": "string",
      "title": "String"
    ]
  ]
}
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "title": "Object"
}
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "title": "Object",
  "properties": {}
}
{
  "$schema": "http://json-schema.org/draft-07/schema",
  "$id": "http://example.com/example.json",
  "type": "object",
  "title": "Input",
  "required": [
    "id",
    "status",
    "ready_to_deliver"
  ],
  "properties": {
    "id": {
      "type": "number",
      "title": "Request Id"
    },
    "status": {
      "type": "string",
      "title": "Request Status"
    },
    "ready_to_deliver": {
      "type": "boolean",
      "title": "Ready to Deliver",
      "description": "Description explaining what it is"
    },
    "delivery_courier": {
      "type": "string",
      "title": "Delivery Courier",
      "enum": [
        "CTT",
        "DHL",
        "MRW",
        "Chronopost"
      ]
    },
    "nr_packages": {
      "type": "number",
      "title": "Number of packages",
      "enum": [
        1,
        2,
        3,
        4
      ]
    },
    "phone": {
      "type": "object",
      "title": "phone",
      "properties": {
        "contact1": {
          "type": "number",
          "title": "contact1"
        },
        "contact2": {
          "type": "object",
          "title": "contact2",
          "properties": {
            "contact_object": {
              "type": "object",
              "title": "contact_object1",
              "properties": {
                "object_inside_object": {
                  "type": "number",
                  "title": "object_inside_object"
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "title": "Object",
  "properties": {
    "project_key": {
      "type": "string",
      "title": "Project Key",
      "description": "The ID for the JIRA project (e.g. INT)"
    },
    "issue_type": {
      "type": "string",
      "title": "Issue Type",
      "enum": [
        "Story",
        "Xray Test",
        "Epic",
        "Task",
        "Bug",
        "Initiative",
        "Feature",
        "Spike"
      ]
    },
    "summary": {
      "type": "string",
      "title": "Issue Summary/Title"
    },
    "description": {
      "type": "string",
      "title": "Issue Description"
    },
    "acceptance_criteria": {
      "type": "string",
      "title": "Acceptance Criteria"
    },
    "feasibility": {
      "type": "string",
      "title": "Feasibility",
      "enum": [
        "Green - Looks Possible",
        "Yellow - Stretch / Maybe",
        "Orange - Needs More Definition",
        "Red - Not Possible"
      ]
    }
  },
  "dependencies": {
    "issue_type": {
      "title": "oneOf",
      "oneOf": [
        {
          "properties": {
            "issue_type": {
              "title": "issue type enum",
              "enum": [
                "Story",
                "Task"
              ]
            },
            "epic_link_id": {
              "type": "string",
              "title": "Epic Link ID",
              "description": "The ID of the parent epic (e.g. INT-XXX)"
            }
          }
        },
        {
          "properties": {
            "issue_type": {
              "title": "issue type enum",
              "enum": [
                "Epic"
              ]
            },
            "epic_name": {
              "type": "string",
              "title": "Epic Name"
            }
          },
          "required": [
            "epic_name"
          ]
        }
      ]
    }
  },
  "additionalProperties": false
}

Troubleshooting

If you have questions or technical issues, please open a ticket using this form.