# Agents
Manage system agents. Accessible for administrators only.
# Agent Object
| Name | Type | Comment |
|---|---|---|
| id | integer | Unique agent identifier. |
| first_name | string | Agent's first name. |
| last_name | string | Agent's last name, |
| role | integer | Agent's role. |
| string | Agent's email. | |
| avatar | string | A link to user's avatar. |
| status | integer | User status identifier. |
| created_at | datetime | Agent creation timestamp. |
| updated_at | datetime | Agent update timestamp. |
| last_login_at | datetime | Timestamp for the agent's last login. |
The status attribute can take one of the following values:
| Status | Value |
|---|---|
| Active | 1 |
| Unconfirmed | 2 |
| Banned | 3 |
The role attribute can take one of the following values:
| Role | Value |
|---|---|
| Admin | 1 |
| Agent | 2 |
# Paginate Agents
GET
/agents# Request
curl --location --request GET 'https://yoursubdomain.support-hub.io/api/agents' \
--header 'Accept: aplication/json'# Example Response
{
"data": [
{
"id": 1,
"first_name": "John",
"last_name": "Doe",
"role": 1,
"email": "john.doe@example.com",
"avatar": "https://api.adorable.io/avatars/285/abott@adorable.png",
"status": 1,
"created_at": "2020-02-13T10:08:06Z",
"updated_at": "2020-02-13T10:08:06Z",
"last_login_at": "2020-02-13T10:08:06Z"
},
//...
],
"links": {
//...
},
"meta": {
//...
}
}
# Available includes
If provided, the available includes will be part of the response for each agent object.
notes-countA number of notes created by the agent.
assigned-categories-countA number of categories assigned to this agent.
unresolved-tickets-countA number of unresolved tickets assigned to this agent.
resolved-tickets-countA number of resolved tickets assigned to this agent.
# Partial filters
first_name, last_name, email
# Exact filters
status
# View an Agent
GET
/agents/{id}# Example Request
curl --location --request GET 'https://yoursubdomain.support-hub.io/api/agents/{id}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'# Example Response
{
"data": {
"id": 1,
"first_name": "John",
"last_name": "Doe",
"role": 1,
"email": "john.doe@example.com",
"avatar": "https://api.adorable.io/avatars/285/abott@adorable.png",
"status": 1,
"created_at": "2020-02-13T10:08:06Z",
"updated_at": "2020-02-13T10:08:06Z",
"last_login_at": "2020-02-13T10:08:06Z"
}
}
# Available includes
Same as for when paginating the agents.
# Create an Agent
POST
/agents# Parameters
| Parameter | Type | Required | Validation |
|---|---|---|---|
| first_name | string | Yes | Any string that is max 250 characters long. |
| last_name | string | Yes | Any string that is max 250 characters long. |
| Yes | Unique email address. | ||
| password | string | Yes | Any string that is min 6 characters long. |
| password_confirmation | string | Yes | The same as password field. |
# Headers
| Accept | application/json |
| Content-Type | application/json |
# Example Request
curl --location --request POST 'https://yoursubdomain.support-hub.io/api/agents' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"first_name": "John",
"last_name": "Doe",
"email": "john.d@example.com",
"password": "123123",
"password_confirmation": "123123"
}'# Example Response
Status: 201 Created
{
"data": {
"id": 1,
"first_name": "John",
"last_name": "Doe",
"role": 1,
"email": "john.doe@example.com",
"avatar": "https://api.adorable.io/avatars/285/abott@adorable.png",
"status": 1,
"created_at": "2020-02-13T10:08:06Z",
"updated_at": "2020-02-13T10:08:06Z",
"last_login_at": "2020-02-13T10:08:06Z"
}
}
# Update an Agent
PATCH
/agents/{id}# Parameters
| Parameter | Type | Required | Validation |
|---|---|---|---|
| first_name | string | No | Any string that is max 250 characters long. |
| last_name | string | No | Any string that is max 250 characters long. |
| No | Unique email address. | ||
| new_password | string | No | Any string that is min 6 characters long. |
| new_password_confirmation | string | Only if new_password field is present | The same as new_password field. |
| timezone | string | No | A valid timezone identifier according to the timezone_identifiers_list PHP function |
# Headers
| Accept | application/json |
| Content-Type | application/json |
# Example Request
curl --location --request POST 'https://yoursubdomain.support-hub.io/api/agents/{id}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"last_name": "Wick"
}'# Example Response
Status: 200 OK
{
"data": {
"id": 1,
"first_name": "John",
"last_name": "Wick",
"role": 1,
"email": "john.doe@example.com",
"avatar": "https://api.adorable.io/avatars/285/abott@adorable.png",
"status": 1,
"created_at": "2020-02-13T10:08:06Z",
"updated_at": "2020-02-13T10:08:06Z",
"last_login_at": "2020-02-13T10:08:06Z"
}
}
# Delete an Agent
DELETE
/agents/{id}# Example Request
curl --location --request DELETE 'https://yoursubdomain.support-hub.io/api/agents'# Example Response
Status: 200 OK
{
"success": true
}
# View Permissions
GET
/agents/{id}/permissions# Example Request
curl --location --request GET 'https://yoursubdomain.support-hub.io/api/agents/{id}/permissions' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'# Example Response
Status: 200 OK
{
"data": {
"manage_articles": true,
"manage_customers": false,
"view_all_tickets": true
}
}
# Update Permissions
PATCH
/agents/{id}/permissions# Example Request
curl --location --request GET 'https://yoursubdomain.support-hub.io/api/agents/{id}/permissions' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"view_all_tickets": true
}'# Example Response
Status: 200 OK
{
"data": {
"manage_articles": true,
"manage_customers": false,
"view_all_tickets": true
}
}
# View Notification Settings
GET
/agents/{id}/notifications# Example Request
curl --location --request GET 'https://yoursubdomain.support-hub.io/api/agents/{id}/notifications' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'# Example Response
Status: 200 OK
{
"data": {
"new_ticket": false,
"new_comment": true,
"ticket_reassigned": true
}
}
# Update Notification Settings
PATCH
/agents/{id}/notifications# Example Request
curl --location --request GET 'https://yoursubdomain.support-hub.io/api/agents/{id}/notifications' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"new_ticket": false
}'# Example Response
Status: 200 OK
{
"data": {
"new_ticket": false,
"new_comment": true,
"ticket_reassigned": true
}
}