Skip to contentSkip to navigationSkip to topbar
Rate this page:
On this page

Activity Resource


Activities describe the current status of your Workers, which determines whether they are eligible to receive task assignments. Workers are always set to a single Activity.

(information)

Info

TaskRouter pre-populates new Workspaces with "Offline", "Unavailable", and "Available" Activities. Add your own Activities to the list to get a more granular understanding of the way your Workers are spending their time!

Each Activity has:

A FriendlyName, which describes the Worker's state in human-readable terms, and

An Availability, which is a boolean that determines whether Workers are available for task assignment. The value cannot be changed after the Activity is created.

If a Worker is performing an Activity that has an availability of "true", it means that Worker is ready to have Tasks assigned to it. If a Worker is set to an Activity with an availability of "false", it means the Worker is not able to accept new Tasks and will not be considered for assignment.

By moving Workers from unavailable to available Activities you signal to TaskRouter that the Worker can be assigned new Tasks. When TaskRouter assigns the Worker a Task, it will automatically move the Worker to an unavailable Activity, so that the Worker is not assigned new Tasks while they are occupied. On completion of their work, the Worker can be moved to an available Activity to begin accepting new Tasks again.


Configuring Default Activities for Worker State Transitions

configuring-default-activities-for-worker-state-transitions page anchor

The current Activity for a given Worker is changed in the following operations:

  • Your application can update a Worker's Activity by posting to the Worker instance resource and providing the SID if any of the Activities in the Workspace.
  • If a Reservation times out, the Worker is placed in the TimeoutActivity identified by the Workspace. By default this is Offline .
  • When a new Worker is created, the Worker is placed in the DefaultActivity identified by the Workspace, unless a specific ActivitySid is passed. By default, this is Offline .

In addition, a single-tasking Workspace supports two additional automatic state transitions:

  • When the Worker is assigned a Task, the Worker is placed in the ReservationActivity identified by the TaskQueue that assigns the Worker the Task. By default this is the Reserved Activity.
  • When a Worker accepts a Task, the Worker is placed in the AssignmentActivity identified by the TaskQueue that assigns the Worker the Task. By default this is the Busy Activity.

In a multitasking Workspace, a Worker's state does not automatically update when a Task is assigned or accepted.


(warning)

Warning

Pagination is not supported under this resource. Please avoid usage of the page query parameter.

Resource properties
account_sidtype: SID<AC>Not PII

availabletype: booleanNot PII

Whether the Worker is eligible to receive a Task when it occupies the Activity. A value of true, 1, or yes indicates the Activity is available. All other values indicate that it is not. The value cannot be changed after the Activity is created.


date_createdtype: string<DATE TIME>Not PII

The date and time in GMT when the resource was created specified in ISO 8601(link takes you to an external page) format.


date_updatedtype: string<DATE TIME>Not PII

The date and time in GMT when the resource was last updated specified in ISO 8601(link takes you to an external page) format.


friendly_nametype: stringNot PII

The string that you assigned to describe the Activity resource.


sidtype: SID<WA>Not PII

The unique string that we created to identify the Activity resource.


workspace_sidtype: SID<WS>Not PII

The SID of the Workspace that contains the Activity.


urltype: string<URI>Not PII

The absolute URL of the Activity resource.


linkstype: object<URI MAP>Not PII

Create an Activity resource

create-an-activity-resource page anchor
POST https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Activities

(information)

Info

The maximum amount of Activities allowed for any given Workspace is 100.

Parameters

create-parameters page anchor
URI parameters
WorkspaceSidtype: SID<WS>Not PII
Path Parameter

The SID of the Workspace that the new Activity belongs to.


Request body parameters
FriendlyNametype: stringNot PII
Required

A descriptive string that you create to describe the Activity resource. It can be up to 64 characters long. These names are used to calculate and expose statistics about Workers, and provide visibility into the state of each Worker. Examples of friendly names include: on-call, break, and email.


Availabletype: booleanNot PII

Whether the Worker should be eligible to receive a Task when it occupies the Activity. A value of true, 1, or yes specifies the Activity is available. All other values specify that it is not. The value cannot be changed after the Activity is created.

Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_14
// Download the helper library from https://www.twilio.com/docs/node/install
_14
// Find your Account SID and Auth Token at twilio.com/console
_14
// and set the environment variables. See http://twil.io/secure
_14
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_14
const authToken = process.env.TWILIO_AUTH_TOKEN;
_14
const client = require('twilio')(accountSid, authToken);
_14
_14
client.taskrouter.v1.workspaces('WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_14
.activities
_14
.create({
_14
available: true,
_14
friendlyName: 'NewAvailableActivity'
_14
})
_14
.then(activity => console.log(activity.sid));

Output

_13
{
_13
"account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_13
"available": true,
_13
"date_created": "2014-05-14T10:50:02Z",
_13
"date_updated": "2014-05-14T23:26:06Z",
_13
"friendly_name": "NewAvailableActivity",
_13
"sid": "WAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_13
"url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Activities/WAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_13
"workspace_sid": "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_13
"links": {
_13
"workspace": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
_13
}
_13
}


Fetch an Activity resource

fetch-an-activity-resource page anchor
GET https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Activities/{Sid}

URI parameters
WorkspaceSidtype: SID<WS>Not PII
Path Parameter

The SID of the Workspace with the Activity resources to fetch.


Sidtype: SID<WA>Not PII
Path Parameter

The SID of the Activity resource to fetch.

Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_11
// Download the helper library from https://www.twilio.com/docs/node/install
_11
// Find your Account SID and Auth Token at twilio.com/console
_11
// and set the environment variables. See http://twil.io/secure
_11
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_11
const authToken = process.env.TWILIO_AUTH_TOKEN;
_11
const client = require('twilio')(accountSid, authToken);
_11
_11
client.taskrouter.v1.workspaces('WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_11
.activities('WAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_11
.fetch()
_11
.then(activity => console.log(activity.friendlyName));

Output

_13
{
_13
"account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_13
"available": true,
_13
"date_created": "2014-05-14T10:50:02Z",
_13
"date_updated": "2014-05-14T23:26:06Z",
_13
"friendly_name": "New Activity",
_13
"sid": "WAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_13
"url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Activities/WAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_13
"workspace_sid": "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_13
"links": {
_13
"workspace": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
_13
}
_13
}


Read multiple Activity resources

read-multiple-activity-resources page anchor
GET https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Activities

(information)

Info

By default, this will return the first 50 Activities. Supply a PageSize parameter to fetch more than 50 Activities. See paging for more information.

URI parameters
WorkspaceSidtype: SID<WS>Not PII
Path Parameter

The SID of the Workspace with the Activity resources to read.


FriendlyNametype: stringNot PII
Query Parameter

The friendly_name of the Activity resources to read.


Availabletype: stringNot PII
Query Parameter

Whether return only Activity resources that are available or unavailable. A value of true returns only available activities. Values of '1' or yes also indicate true. All other values represent false and return activities that are unavailable.


PageSizetype: integerNot PII
Query Parameter

How many resources to return in each list page. The default is 50, and the maximum is 1000.


Pagetype: integerNot PII
Query Parameter

The page index. This value is simply for client state.


PageTokentype: stringNot PII
Query Parameter

The page token. This is provided by the API.

Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_11
// Download the helper library from https://www.twilio.com/docs/node/install
_11
// Find your Account SID and Auth Token at twilio.com/console
_11
// and set the environment variables. See http://twil.io/secure
_11
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_11
const authToken = process.env.TWILIO_AUTH_TOKEN;
_11
const client = require('twilio')(accountSid, authToken);
_11
_11
client.taskrouter.v1.workspaces('WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_11
.activities
_11
.list({limit: 20})
_11
.then(activities => activities.forEach(a => console.log(a.sid)));

Output

_26
{
_26
"activities": [
_26
{
_26
"account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_26
"available": true,
_26
"date_created": "2014-05-14T10:50:02Z",
_26
"date_updated": "2014-05-14T23:26:06Z",
_26
"friendly_name": "New Activity",
_26
"sid": "WAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_26
"url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Activities/WAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_26
"workspace_sid": "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_26
"links": {
_26
"workspace": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
_26
}
_26
}
_26
],
_26
"meta": {
_26
"first_page_url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Activities?Available=true&FriendlyName=friendly_name&PageSize=50&Page=0",
_26
"key": "activities",
_26
"next_page_url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Activities?Available=true&FriendlyName=friendly_name&PageSize=50&Page=1",
_26
"page": 0,
_26
"page_size": 50,
_26
"previous_page_url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Activities?Available=true&FriendlyName=friendly_name&PageSize=50&Page=0",
_26
"url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Activities?Available=true&FriendlyName=friendly_name&PageSize=50&Page=0"
_26
}
_26
}


Update an Activity resource

update-an-activity-resource page anchor
POST https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Activities/{Sid}

URI parameters
WorkspaceSidtype: SID<WS>Not PII
Path Parameter

The SID of the Workspace with the Activity resources to update.


Sidtype: SID<WA>Not PII
Path Parameter

The SID of the Activity resource to update.


Request body parameters
FriendlyNametype: stringNot PII

A descriptive string that you create to describe the Activity resource. It can be up to 64 characters long. These names are used to calculate and expose statistics about Workers, and provide visibility into the state of each Worker. Examples of friendly names include: on-call, break, and email.

Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_11
// Download the helper library from https://www.twilio.com/docs/node/install
_11
// Find your Account SID and Auth Token at twilio.com/console
_11
// and set the environment variables. See http://twil.io/secure
_11
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_11
const authToken = process.env.TWILIO_AUTH_TOKEN;
_11
const client = require('twilio')(accountSid, authToken);
_11
_11
client.taskrouter.v1.workspaces('WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_11
.activities('WAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_11
.update({friendlyName: 'another_name'})
_11
.then(activity => console.log(activity.friendlyName));

Output

_13
{
_13
"account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_13
"available": true,
_13
"date_created": "2014-05-14T10:50:02Z",
_13
"date_updated": "2014-05-14T23:26:06Z",
_13
"friendly_name": "another_name",
_13
"sid": "WAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_13
"url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Activities/WAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_13
"workspace_sid": "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_13
"links": {
_13
"workspace": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
_13
}
_13
}


Delete an Activity resource

delete-an-activity-resource page anchor
DELETE https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Activities/{Sid}

URI parameters
WorkspaceSidtype: SID<WS>Not PII
Path Parameter

The SID of the Workspace with the Activity resources to delete.


Sidtype: SID<WA>Not PII
Path Parameter

The SID of the Activity resource to delete.

Node.js
Python
C#
Java
Go
PHP
Ruby
twilio-cli
curl

_10
// Download the helper library from https://www.twilio.com/docs/node/install
_10
// Find your Account SID and Auth Token at twilio.com/console
_10
// and set the environment variables. See http://twil.io/secure
_10
const accountSid = process.env.TWILIO_ACCOUNT_SID;
_10
const authToken = process.env.TWILIO_AUTH_TOKEN;
_10
const client = require('twilio')(accountSid, authToken);
_10
_10
client.taskrouter.v1.workspaces('WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_10
.activities('WAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_10
.remove();


Rate this page: