{
  "service": "dixa",
  "displayName": "Dixa",
  "categories": [
    "Communication",
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "dixa_api_token",
      "description": "Dixa API token sent with the Authorization header. Administrators can create it in Dixa under Settings > Manage > Integrations > API Tokens: https://docs.dixa.io/docs/tutorial-create-an-api-token."
    }
  ],
  "homepageUrl": "https://www.dixa.com",
  "actions": [
    {
      "id": "dixa.get_agent",
      "service": "dixa",
      "name": "get_agent",
      "description": "Get one Dixa agent or admin by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Dixa user ID."
          }
        },
        "additionalProperties": false,
        "description": "Input for retrieving a Dixa user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Dixa user ID."
              },
              "createdAt": {
                "type": "string",
                "description": "The time when the user was created."
              },
              "displayName": {
                "type": "string",
                "description": "The user's display name."
              },
              "email": {
                "type": "string",
                "description": "The user's primary email address."
              },
              "avatarUrl": {
                "type": "string",
                "description": "The URL for the user's avatar."
              },
              "phoneNumber": {
                "type": "string",
                "description": "The user's primary phone number."
              },
              "additionalEmails": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "An email."
                },
                "description": "Additional email addresses for the user."
              },
              "additionalPhoneNumbers": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "A phone number."
                },
                "description": "Additional phone numbers for the user."
              },
              "firstName": {
                "type": "string",
                "description": "The user's first name."
              },
              "lastName": {
                "type": "string",
                "description": "The user's last name."
              },
              "middleNames": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "A middle name."
                },
                "description": "The user's middle names."
              },
              "roles": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "A Dixa role."
                },
                "description": "The user's roles."
              },
              "externalId": {
                "type": "string",
                "description": "The custom external identifier for the end user."
              },
              "customAttributes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "A Dixa custom attribute."
                },
                "description": "Custom attributes returned for the end user."
              }
            },
            "additionalProperties": true,
            "description": "A Dixa agent, admin, or end user."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Dixa response payload."
          }
        },
        "additionalProperties": false,
        "description": "A single Dixa user response."
      }
    },
    {
      "id": "dixa.get_conversation",
      "service": "dixa",
      "name": "get_conversation",
      "description": "Get one Dixa conversation by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "conversationId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Dixa conversation ID."
          }
        },
        "additionalProperties": false,
        "description": "Input for retrieving a Dixa conversation."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Dixa response object."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Dixa response payload."
          }
        },
        "additionalProperties": false,
        "description": "A Dixa conversation response."
      }
    },
    {
      "id": "dixa.get_end_user",
      "service": "dixa",
      "name": "get_end_user",
      "description": "Get one Dixa end user by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Dixa user ID."
          }
        },
        "additionalProperties": false,
        "description": "Input for retrieving a Dixa user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Dixa user ID."
              },
              "createdAt": {
                "type": "string",
                "description": "The time when the user was created."
              },
              "displayName": {
                "type": "string",
                "description": "The user's display name."
              },
              "email": {
                "type": "string",
                "description": "The user's primary email address."
              },
              "avatarUrl": {
                "type": "string",
                "description": "The URL for the user's avatar."
              },
              "phoneNumber": {
                "type": "string",
                "description": "The user's primary phone number."
              },
              "additionalEmails": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "An email."
                },
                "description": "Additional email addresses for the user."
              },
              "additionalPhoneNumbers": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "A phone number."
                },
                "description": "Additional phone numbers for the user."
              },
              "firstName": {
                "type": "string",
                "description": "The user's first name."
              },
              "lastName": {
                "type": "string",
                "description": "The user's last name."
              },
              "middleNames": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "A middle name."
                },
                "description": "The user's middle names."
              },
              "roles": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "A Dixa role."
                },
                "description": "The user's roles."
              },
              "externalId": {
                "type": "string",
                "description": "The custom external identifier for the end user."
              },
              "customAttributes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "A Dixa custom attribute."
                },
                "description": "Custom attributes returned for the end user."
              }
            },
            "additionalProperties": true,
            "description": "A Dixa agent, admin, or end user."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Dixa response payload."
          }
        },
        "additionalProperties": false,
        "description": "A single Dixa user response."
      }
    },
    {
      "id": "dixa.list_agents",
      "service": "dixa",
      "name": "list_agents",
      "description": "List Dixa agents and admins with optional email or phone filtering.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pageLimit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of results per page. May be used with pageKey between page requests."
          },
          "pageKey": {
            "type": "string",
            "minLength": 1,
            "description": "The base64 encoded pagination key returned by Dixa. Do not construct or modify it."
          },
          "email": {
            "type": "string",
            "description": "The email address filter.",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "description": "The phone number filter."
          }
        },
        "additionalProperties": false,
        "description": "Input for listing Dixa users."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Dixa user ID."
                },
                "createdAt": {
                  "type": "string",
                  "description": "The time when the user was created."
                },
                "displayName": {
                  "type": "string",
                  "description": "The user's display name."
                },
                "email": {
                  "type": "string",
                  "description": "The user's primary email address."
                },
                "avatarUrl": {
                  "type": "string",
                  "description": "The URL for the user's avatar."
                },
                "phoneNumber": {
                  "type": "string",
                  "description": "The user's primary phone number."
                },
                "additionalEmails": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "An email."
                  },
                  "description": "Additional email addresses for the user."
                },
                "additionalPhoneNumbers": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "A phone number."
                  },
                  "description": "Additional phone numbers for the user."
                },
                "firstName": {
                  "type": "string",
                  "description": "The user's first name."
                },
                "lastName": {
                  "type": "string",
                  "description": "The user's last name."
                },
                "middleNames": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "A middle name."
                  },
                  "description": "The user's middle names."
                },
                "roles": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "A Dixa role."
                  },
                  "description": "The user's roles."
                },
                "externalId": {
                  "type": "string",
                  "description": "The custom external identifier for the end user."
                },
                "customAttributes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "A Dixa custom attribute."
                  },
                  "description": "Custom attributes returned for the end user."
                }
              },
              "additionalProperties": true,
              "description": "A Dixa agent, admin, or end user."
            },
            "description": "The Dixa users returned by the request."
          },
          "meta": {
            "type": "object",
            "properties": {
              "previous": {
                "type": "string",
                "description": "The previous page URL."
              },
              "next": {
                "type": "string",
                "description": "The next page URL."
              }
            },
            "additionalProperties": true,
            "description": "Pagination metadata returned by Dixa."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Dixa response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "data",
          "raw"
        ],
        "description": "A paginated Dixa user list response."
      }
    },
    {
      "id": "dixa.list_conversation_messages",
      "service": "dixa",
      "name": "list_conversation_messages",
      "description": "List all messages for a Dixa conversation from oldest to newest.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "conversationId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Dixa conversation ID."
          }
        },
        "additionalProperties": false,
        "description": "Input for retrieving a Dixa conversation."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Dixa response object."
            },
            "description": "The Dixa messages returned by the request."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Dixa response payload."
          }
        },
        "additionalProperties": false,
        "description": "Dixa conversation messages."
      }
    },
    {
      "id": "dixa.list_end_users",
      "service": "dixa",
      "name": "list_end_users",
      "description": "List Dixa end users with optional email, phone, or external ID filtering.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pageLimit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of results per page. May be used with pageKey between page requests."
          },
          "pageKey": {
            "type": "string",
            "minLength": 1,
            "description": "The base64 encoded pagination key returned by Dixa. Do not construct or modify it."
          },
          "email": {
            "type": "string",
            "description": "The email address filter.",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "description": "The phone number filter."
          },
          "externalId": {
            "type": "string",
            "minLength": 1,
            "description": "The external ID filter."
          }
        },
        "additionalProperties": false,
        "description": "Input for listing Dixa end users."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Dixa user ID."
                },
                "createdAt": {
                  "type": "string",
                  "description": "The time when the user was created."
                },
                "displayName": {
                  "type": "string",
                  "description": "The user's display name."
                },
                "email": {
                  "type": "string",
                  "description": "The user's primary email address."
                },
                "avatarUrl": {
                  "type": "string",
                  "description": "The URL for the user's avatar."
                },
                "phoneNumber": {
                  "type": "string",
                  "description": "The user's primary phone number."
                },
                "additionalEmails": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "An email."
                  },
                  "description": "Additional email addresses for the user."
                },
                "additionalPhoneNumbers": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "A phone number."
                  },
                  "description": "Additional phone numbers for the user."
                },
                "firstName": {
                  "type": "string",
                  "description": "The user's first name."
                },
                "lastName": {
                  "type": "string",
                  "description": "The user's last name."
                },
                "middleNames": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "A middle name."
                  },
                  "description": "The user's middle names."
                },
                "roles": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "A Dixa role."
                  },
                  "description": "The user's roles."
                },
                "externalId": {
                  "type": "string",
                  "description": "The custom external identifier for the end user."
                },
                "customAttributes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "A Dixa custom attribute."
                  },
                  "description": "Custom attributes returned for the end user."
                }
              },
              "additionalProperties": true,
              "description": "A Dixa agent, admin, or end user."
            },
            "description": "The Dixa users returned by the request."
          },
          "meta": {
            "type": "object",
            "properties": {
              "previous": {
                "type": "string",
                "description": "The previous page URL."
              },
              "next": {
                "type": "string",
                "description": "The next page URL."
              }
            },
            "additionalProperties": true,
            "description": "Pagination metadata returned by Dixa."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Dixa response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "data",
          "raw"
        ],
        "description": "A paginated Dixa user list response."
      }
    },
    {
      "id": "dixa.list_presence",
      "service": "dixa",
      "name": "list_presence",
      "description": "List presence status for Dixa agents and admins.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "This action does not require input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "userId": {
                  "type": "string",
                  "description": "The Dixa user ID."
                },
                "requestTime": {
                  "type": "string",
                  "description": "The request time reported by Dixa."
                },
                "lastSeen": {
                  "type": "string",
                  "description": "The last time the user was seen."
                },
                "presenceStatus": {
                  "type": "string",
                  "enum": [
                    "Away",
                    "Working"
                  ],
                  "description": "The Dixa presence status."
                },
                "connectionStatus": {
                  "type": "string",
                  "enum": [
                    "Offline",
                    "Online"
                  ],
                  "description": "The Dixa connection status."
                },
                "activeChannels": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "A channel name."
                  },
                  "description": "The active Dixa channels."
                }
              },
              "additionalProperties": true,
              "description": "A Dixa presence record."
            },
            "description": "Presence records returned by Dixa."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Dixa response payload."
          }
        },
        "additionalProperties": false,
        "description": "Dixa presence status records."
      }
    }
  ]
}
