Kayako
Create and track support cases and conversations in Kayako via the Kayako REST API v1.
What It Does
Provides four operations against the Kayako REST API:
| Operation | HTTP | Endpoint |
|---|---|---|
list_cases |
GET | /api/v1/cases.json |
get_case |
GET | /api/v1/cases/{caseId}.json |
create_case |
POST | /api/v1/cases.json |
list_posts |
GET | /api/v1/cases/{caseId}/posts.json |
reply_case |
POST | /api/v1/cases/{caseId}/reply.json |
Authentication
Kayako uses HTTP Basic Authentication:
Authorization: Basic base64(email:password)
The apiKey input takes the literal email:password string — the tool base64-encodes it before sending.
Getting your credentials:
1. Log in to your Kayako instance as an agent or admin.
2. Use your agent email address and account password.
3. Set instance to your subdomain (e.g. acme for acme.kayako.com).
Inputs
| Field | Required | Description |
|---|---|---|
apiKey |
Yes | email:password credential pair for Basic auth |
instance |
Yes | Kayako subdomain (e.g. acme for acme.kayako.com) |
operation |
Yes | One of: list_cases, get_case, create_case, list_posts, reply_case |
caseId |
Conditional | Case ID — required for get_case, list_posts, reply_case |
subject |
Conditional | Case subject — required for create_case |
contents |
Conditional | Message body — required for create_case and reply_case |
channel |
Optional | Channel for create_case: MAIL, NOTE (default: MAIL) |
channelId |
Conditional | Channel ID — required for create_case when channel is MAIL |
requesterId |
Optional | Requester user ID (integer) for create_case |
priorityId |
Optional | Priority ID (integer) for create_case |
Outputs
| Field | Description |
|---|---|
result |
JSON response body from the Kayako API |
status |
HTTP status code as a string (e.g. 200, 201) |
Examples
List open cases
{
"input": {
"apiKey": "[email protected]:s3cr3t",
"instance": "acme",
"operation": "list_cases"
}
}
Get a specific case
{
"input": {
"apiKey": "[email protected]:s3cr3t",
"instance": "acme",
"operation": "get_case",
"caseId": "12345"
}
}
Create a new internal note case
{
"input": {
"apiKey": "[email protected]:s3cr3t",
"instance": "acme",
"operation": "create_case",
"subject": "Server is down",
"contents": "Customer reported the API is returning 503 errors since 14:00 UTC.",
"channel": "NOTE",
"requesterId": "789"
}
}
Add a reply to an existing case
{
"input": {
"apiKey": "[email protected]:s3cr3t",
"instance": "acme",
"operation": "reply_case",
"caseId": "12345",
"contents": "Thank you for reaching out. We are investigating and will update you shortly."
}
}
List all posts/messages in a case
{
"input": {
"apiKey": "[email protected]:s3cr3t",
"instance": "acme",
"operation": "list_posts",
"caseId": "12345"
}
}
API Reference
- Base documentation: https://developer.kayako.com/api/v1/reference/introduction/
- Authentication: https://developer.kayako.com/api/v1/reference/authentication/
- Cases: https://developer.kayako.com/api/v1/cases/cases/
Publishes
The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.
errorresultstatus
Input Properties
Every property this tool accepts, from its own tool.iml.
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
apiKey |
string | yes | — | DEPRECATED — bind an API Key credential to the task with credentialName instead. A key pasted here is stored in the workflow definition in clear and appears in every export of it. Still honoured for workflows built before the change. |
operation |
string | yes | — | One of: list_cases, get_case, create_case, list_posts, reply_case |
instance |
string | no | — | Your Kayako instance subdomain (the {instance} in https://{instance}.kayako.com). Required. |
caseId |
string | no | — | Case id for get_case, list_posts, and reply_case. |
subject |
string | no | — | Subject line for create_case. |
contents |
string | no | — | Message body for create_case, or the reply text for reply_case. |
channel |
string | no | — | Channel for create_case: MAIL, TWITTER, FACEBOOK, or NOTE (defaults to MAIL). |
channelId |
string | no | — | Channel id for create_case (required for all channels except NOTE). |
requesterId |
string | no | — | Requester user id (integer) for create_case. |
priorityId |
string | no | — | Optional priority id (integer) for create_case. |