Task Resource
A Task represents a single item of work waiting to be processed. Tasks can represent whatever type of work is important for your team. Twilio applications can create tasks from phone calls or SMS messages. Your CRM or ticketing system can generate tasks from emails or chat messages sent in by your customers. Your own applications can create custom tasks representing whatever unique work your users handle.
Warning
Pagination is not supported under this resource. Please avoid usage of the page
query parameter.
Every Task has attributes, allowing you to pass along whatever data is required for your application to route the task and take the appropriate action on assignment. Attributes are expressed in JSON data, for example:
_10 "contact": "+15558675309",
_10 "customer-value": "gold",
_10 "task-reason": "support",
_10 "callSid": "CA42ed11..."
Tasks have a version, represented in the ETag
header when you POST
or GET
the Task Resource. ETags
are a method of showing whether a resource has changed; if the ETag
is the same, then the resource is the same.
Tasks can also use the If-Match
header when updating or deleting a Task Resource. If the ETag
does not match the provided version, the operation will fail with a 412
response. You can then GET
the latest version of the Task and try updating it again. When the If-Match
is not provided, the Task will update without a check.
You can read about Task Mutation and Conflict Resolution to learn about working with Task versions.
A Task does not have an explicit Lifecycle property, but it's an important concept for understanding how Tasks work. A Task's lifecycle is controlled by a Workflow, which will manage the Task's priority and find matching Workers to handle the Task. The Task State page and Workflows and Assignment page provide more detail on the Task lifecycle.
Info
If you wish to update the assignment status of a task to wrapping
or completed
and also update its attributes, you will need to send two API requests: one for changing the assignment status, and one for updating the attributes.
Resource properties
age
type: integer
The number of seconds since the Task was created.
assignment_status
type: enum<string>
The current status of the Task's assignment. Can be: pending
, reserved
, assigned
, canceled
, wrapping
, or completed
.
Possible values:
pending
reserved
assigned
canceled
completed
wrapping
attributes
type: string
The JSON string with custom attributes of the work. Note If this property has been assigned a value, it will only be displayed in FETCH action that returns a single resource. Otherwise, it will be null.
date_created
type: string<date-time>
date_updated
type: string<date-time>
task_queue_entered_date
type: string<date-time>
priority
type: integer
The current priority score of the Task as assigned to a Worker by the workflow. Tasks with higher priority values will be assigned before Tasks with lower values.
reason
type: string
The reason the Task was canceled or completed, if applicable.
sid
type: SID<WT>
The unique string that we created to identify the Task resource.
Pattern:
^WT[0-9a-fA-F]{32}$
task_queue_sid
type: SID<WQ>
The SID of the TaskQueue.
Pattern:
^WQ[0-9a-fA-F]{32}$
task_queue_friendly_name
type: string
The friendly name of the TaskQueue.
task_channel_sid
type: SID<TC>
The SID of the TaskChannel.
Pattern:
^TC[0-9a-fA-F]{32}$
task_channel_unique_name
type: string
The unique name of the TaskChannel.
timeout
type: integer
The amount of time in seconds that the Task can live before being assigned.
workflow_sid
type: SID<WW>
The SID of the Workflow that is controlling the Task.
Pattern:
^WW[0-9a-fA-F]{32}$
workflow_friendly_name
type: string
The friendly name of the Workflow that is controlling the Task.
workspace_sid
type: SID<WS>
The SID of the Workspace that contains the Task.
Pattern:
^WS[0-9a-fA-F]{32}$
url
type: string<uri>
The absolute URL of the Task resource.
links
type: object<uri-map>
The URLs of related resources.
virtual_start_time
type: string<date-time>
POST https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Tasks
URI parameters
WorkspaceSid
type: SID<WS>
The SID of the Workspace that the new Task belongs to.
Pattern:
^WS[0-9a-fA-F]{32}$
Request body parameters
Timeout
type: integer
The amount of time in seconds the new task can live before being assigned. Can be up to a maximum of 2 weeks (1,209,600 seconds). The default value is 24 hours (86,400 seconds). On timeout, the task.canceled
event will fire with description Task TTL Exceeded
.
Priority
type: integer
The priority to assign the new task and override the default. When supplied, the new Task will have this priority unless it matches a Workflow Target with a Priority set. When not supplied, the new Task will have the priority of the matching Workflow Target. Value can be 0 to 2^31^ (2,147,483,647).
TaskChannel
type: string
When MultiTasking is enabled, specify the TaskChannel by passing either its unique_name
or sid
. Default value is default
.
WorkflowSid
type: SID<WW>
The SID of the Workflow that you would like to handle routing for the new Task. If there is only one Workflow defined for the Workspace that you are posting the new task to, this parameter is optional.
Pattern:
^WW[0-9a-fA-F]{32}$
Attributes
type: string
A URL-encoded JSON string with the attributes of the new task. This value is passed to the Workflow's assignment_callback_url
when the Task is assigned to a Worker. For example: { "task_type": "call", "twilio_call_sid": "CAxxx", "customer_ticket_number": "12345" }
.
VirtualStartTime
type: string<date-time>
The virtual start time to assign the new task and override the default. When supplied, the new task will have this virtual start time. When not supplied, the new task will have the virtual start time equal to date_created
. Value can't be in the future.
_13// Download the helper library from https://www.twilio.com/docs/node/install
_13// Find your Account SID and Auth Token at twilio.com/console
_13// and set the environment variables. See http://twil.io/secure
_13const accountSid = process.env.TWILIO_ACCOUNT_SID;
_13const authToken = process.env.TWILIO_AUTH_TOKEN;
_13const client = require('twilio')(accountSid, authToken);
_13client.taskrouter.v1.workspaces('WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_13 .create({attributes: JSON.stringify({
_13 }), workflowSid: 'WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'})
_13 .then(task => console.log(task.sid));
_31 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "assignment_status": "pending",
_31 "date_created": "2014-05-14T18:50:02Z",
_31 "date_updated": "2014-05-15T07:26:06Z",
_31 "task_queue_entered_date": null,
_31 "virtual_start_time": "2014-05-14T18:50:02Z",
_31 "reason": "Test Reason",
_31 "sid": "WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "task_queue_sid": "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "task_channel_sid": "TCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "task_channel_unique_name": "unique",
_31 "url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks/WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workspace_sid": "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workflow_sid": "WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workflow_friendly_name": "Example Workflow",
_31 "task_queue_friendly_name": "Example Task Queue",
_31 "task_queue": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/TaskQueues/WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workflow": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Workflows/WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workspace": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "reservations": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks/WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Reservations"
GET https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Tasks/{Sid}
URI parameters
WorkspaceSid
type: SID<WS>
The SID of the Workspace with the Task to fetch.
Pattern:
^WS[0-9a-fA-F]{32}$
Sid
type: SID<WT>
The SID of the Task resource to fetch.
Pattern:
^WT[0-9a-fA-F]{32}$
_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
_11const accountSid = process.env.TWILIO_ACCOUNT_SID;
_11const authToken = process.env.TWILIO_AUTH_TOKEN;
_11const client = require('twilio')(accountSid, authToken);
_11client.taskrouter.v1.workspaces('WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_11 .tasks('WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_11 .then(task => console.log(task.taskQueueFriendlyName));
_31 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "assignment_status": "pending",
_31 "date_created": "2014-05-14T18:50:02Z",
_31 "date_updated": "2014-05-15T07:26:06Z",
_31 "task_queue_entered_date": "2014-05-14T18:50:02Z",
_31 "virtual_start_time": "2014-05-14T18:50:02Z",
_31 "reason": "Test Reason",
_31 "sid": "WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "task_queue_sid": "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "task_channel_sid": "TCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "task_channel_unique_name": "task-channel",
_31 "url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks/WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workflow_sid": "WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workspace_sid": "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workflow_friendly_name": "Test Workflow",
_31 "task_queue_friendly_name": "Test Queue",
_31 "task_queue": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/TaskQueues/WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workflow": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Workflows/WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workspace": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "reservations": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks/WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Reservations"
GET https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Tasks
URI parameters
WorkspaceSid
type: SID<WS>
The SID of the Workspace with the Tasks to read.
Pattern:
^WS[0-9a-fA-F]{32}$
Priority
type: integer
The priority value of the Tasks to read. Returns the list of all Tasks in the Workspace with the specified priority.
AssignmentStatus
type: array[string]
The assignment_status
of the Tasks you want to read. Can be: pending
, reserved
, assigned
, canceled
, wrapping
, or completed
. Returns all Tasks in the Workspace with the specified assignment_status
.
WorkflowSid
type: SID<WW>
The SID of the Workflow with the Tasks to read. Returns the Tasks controlled by the Workflow identified by this SID.
Pattern:
^WW[0-9a-fA-F]{32}$
WorkflowName
type: string
The friendly name of the Workflow with the Tasks to read. Returns the Tasks controlled by the Workflow identified by this friendly name.
TaskQueueSid
type: SID<WQ>
The SID of the TaskQueue with the Tasks to read. Returns the Tasks waiting in the TaskQueue identified by this SID.
Pattern:
^WQ[0-9a-fA-F]{32}$
TaskQueueName
type: string
The friendly_name
of the TaskQueue with the Tasks to read. Returns the Tasks waiting in the TaskQueue identified by this friendly name.
EvaluateTaskAttributes
type: string
The attributes of the Tasks to read. Returns the Tasks that match the attributes specified in this parameter.
Ordering
type: string
How to order the returned Task resources. By default, Tasks are sorted by ascending DateCreated. This value is specified as: Attribute:Order
, where Attribute
can be either DateCreated
, Priority
, or VirtualStartTime
and Order
can be either asc
or desc
. For example, Priority:desc
returns Tasks ordered in descending order of their Priority. Pairings of sort orders can be specified in a comma-separated list such as Priority:desc,DateCreated:asc
, which returns the Tasks in descending Priority order and ascending DateCreated Order. The only ordering pairing not allowed is DateCreated and VirtualStartTime.
HasAddons
type: boolean
Whether to read Tasks with Add-ons. If true
, returns only Tasks with Add-ons. If false
, returns only Tasks without Add-ons.
PageSize
type: integer
How many resources to return in each list page. The default is 50, and the maximum is 1000.
Page
type: integer
The page index. This value is simply for client state.
PageToken
type: string
The page token. This is provided by the API.
_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
_11const accountSid = process.env.TWILIO_ACCOUNT_SID;
_11const authToken = process.env.TWILIO_AUTH_TOKEN;
_11const client = require('twilio')(accountSid, authToken);
_11client.taskrouter.v1.workspaces('WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_11 .then(tasks => tasks.forEach(t => console.log(t.sid)));
_44 "first_page_url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks?TaskQueueSid=WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&Priority=1&TaskQueueName=task_queue_name&WorkflowName=workflow_name&WorkflowSid=WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&AssignmentStatus=pending%2Creserved&PageSize=50&Page=0",
_44 "next_page_url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks?TaskQueueSid=WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&Priority=1&TaskQueueName=task_queue_name&WorkflowName=workflow_name&WorkflowSid=WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&AssignmentStatus=pending%2Creserved&PageSize=50&Page=1",
_44 "previous_page_url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks?TaskQueueSid=WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&Priority=1&TaskQueueName=task_queue_name&WorkflowName=workflow_name&WorkflowSid=WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&AssignmentStatus=pending%2Creserved&PageSize=50&Page=0",
_44 "url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks?TaskQueueSid=WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&Priority=1&TaskQueueName=task_queue_name&WorkflowName=workflow_name&WorkflowSid=WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&AssignmentStatus=pending%2Creserved&PageSize=50&Page=0"
_44 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "assignment_status": "pending",
_44 "date_created": "2014-05-14T14:26:54Z",
_44 "date_updated": "2014-05-15T16:03:42Z",
_44 "task_queue_entered_date": "2014-05-14T14:26:54Z",
_44 "virtual_start_time": "2014-05-14T14:26:54Z",
_44 "reason": "Test Reason",
_44 "sid": "WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "task_queue_sid": "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "task_channel_sid": "TCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "task_channel_unique_name": "task-channel",
_44 "url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks/WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "workflow_sid": "WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "workspace_sid": "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "workflow_friendly_name": "Test Workflow",
_44 "task_queue_friendly_name": "Test Queue",
_44 "task_queue": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/TaskQueues/WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "workflow": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Workflows/WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "workspace": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "reservations": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks/WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Reservations"
Fetches all Tasks which have a language attribute of 'en' or 'fr' and a 'skill_rating' attribute with value greater than 5.1
_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
_14const accountSid = process.env.TWILIO_ACCOUNT_SID;
_14const authToken = process.env.TWILIO_AUTH_TOKEN;
_14const client = require('twilio')(accountSid, authToken);
_14client.taskrouter.v1.workspaces('WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_14 evaluateTaskAttributes: `(language == "en" OR language == "fr") AND skill_rating >= 5.1`,
_14 .then(tasks => tasks.forEach(t => console.log(t.sid)));
_44 "first_page_url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks?TaskQueueSid=WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&Priority=1&TaskQueueName=task_queue_name&WorkflowName=workflow_name&WorkflowSid=WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&AssignmentStatus=pending%2Creserved&PageSize=50&Page=0",
_44 "next_page_url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks?TaskQueueSid=WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&Priority=1&TaskQueueName=task_queue_name&WorkflowName=workflow_name&WorkflowSid=WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&AssignmentStatus=pending%2Creserved&PageSize=50&Page=1",
_44 "previous_page_url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks?TaskQueueSid=WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&Priority=1&TaskQueueName=task_queue_name&WorkflowName=workflow_name&WorkflowSid=WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&AssignmentStatus=pending%2Creserved&PageSize=50&Page=0",
_44 "url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks?TaskQueueSid=WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&Priority=1&TaskQueueName=task_queue_name&WorkflowName=workflow_name&WorkflowSid=WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&AssignmentStatus=pending%2Creserved&PageSize=50&Page=0"
_44 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "assignment_status": "pending",
_44 "date_created": "2014-05-14T14:26:54Z",
_44 "date_updated": "2014-05-15T16:03:42Z",
_44 "task_queue_entered_date": "2014-05-14T14:26:54Z",
_44 "virtual_start_time": "2014-05-14T14:26:54Z",
_44 "reason": "Test Reason",
_44 "sid": "WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "task_queue_sid": "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "task_channel_sid": "TCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "task_channel_unique_name": "task-channel",
_44 "url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks/WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "workflow_sid": "WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "workspace_sid": "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "workflow_friendly_name": "Test Workflow",
_44 "task_queue_friendly_name": "Test Queue",
_44 "task_queue": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/TaskQueues/WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "workflow": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Workflows/WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "workspace": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_44 "reservations": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks/WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Reservations"
Info
Tasks are deleted 5 minutes after either they are canceled or completed. You can still query events that occurred for a Task via the Events API.
You may use the following operators in your EvaluateTaskAttributes:
-
Equality:
==
,
=
-
Inequality:
!=
-
Greater than:
>
-
Less than:
<
-
Greater than or equal to:
>=
-
Less than or equal to:
<=
-
Use parentheses to indicate precedence of operations:
( )
-
Use brackets to indicate lists/arrays:
[ ]
-
HAS
,
>-
for determining whether the value of the Task attribute on the left-hand side of the expression contains the string on the right side of the comparison.
-
CONTAINS
- for determining whether the value of the Task attribute on the left-hand side of the expression contains the value on the right side of the comparison.
-
IN
,
<-
for determining whether the value of the Task attribute on the left-hand side of the expression is * contained in the list on the right-hand side.
-
NOT IN
,
<-
for determining whether the value of the Task attribute on the left-hand side of the expression is * not contained in the list on the right-hand side.
-
AND
if both the left and right subexpressions are true, resolves to true, otherwise false
-
OR
- if one or both of the left or right subexpressions are true, resolves to true, otherwise false
By default, this will return the first 50 Tasks. Supply a PageSize parameter to fetch more than 50 Tasks. See paging for more information.
POST https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Tasks/{Sid}
Request headers
URI parameters
WorkspaceSid
type: SID<WS>
The SID of the Workspace with the Task to update.
Pattern:
^WS[0-9a-fA-F]{32}$
Sid
type: SID<WT>
The SID of the Task resource to update.
Pattern:
^WT[0-9a-fA-F]{32}$
Request body parameters
Attributes
type: string
The JSON string that describes the custom attributes of the task.
AssignmentStatus
type: enum<string>
The new status of the task. Can be: canceled
, to cancel a Task that is currently pending
or reserved
; wrapping
, to move the Task to wrapup state; or completed
, to move a Task to the completed state.
Possible values:
pending
reserved
assigned
canceled
completed
wrapping
Reason
type: string
The reason that the Task was canceled or completed. This parameter is required only if the Task is canceled or completed. Setting this value queues the task for deletion and logs the reason.
Priority
type: integer
The Task's new priority value. When supplied, the Task takes on the specified priority unless it matches a Workflow Target with a Priority set. Value can be 0 to 2^31^ (2,147,483,647).
TaskChannel
type: string
When MultiTasking is enabled, specify the TaskChannel with the task to update. Can be the TaskChannel's SID or its unique_name
, such as voice
, sms
, or default
.
VirtualStartTime
type: string<date-time>
The task's new virtual start time value. When supplied, the Task takes on the specified virtual start time. Value can't be in the future.
_17// Download the helper library from https://www.twilio.com/docs/node/install
_17// Find your Account SID and Auth Token at twilio.com/console
_17// and set the environment variables. See http://twil.io/secure
_17const accountSid = process.env.TWILIO_ACCOUNT_SID;
_17const authToken = process.env.TWILIO_AUTH_TOKEN;
_17const client = require('twilio')(accountSid, authToken);
_17client.taskrouter.v1.workspaces('WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_17 .tasks('WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_17 assignmentStatus: 'canceled',
_17 reason: 'waiting too long',
_17 attributes: JSON.stringify({
_17 .then(task => console.log(task.taskQueueFriendlyName));
_31 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "assignment_status": "canceled",
_31 "date_created": "2014-05-14T18:50:02Z",
_31 "date_updated": "2014-05-15T07:26:06Z",
_31 "task_queue_entered_date": "2014-05-14T18:50:02Z",
_31 "virtual_start_time": "2023-08-02T12:34:56Z",
_31 "reason": "waiting too long",
_31 "sid": "WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "task_queue_sid": "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "task_channel_sid": "TCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "task_channel_unique_name": "task-channel",
_31 "url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks/WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workflow_sid": "WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workspace_sid": "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workflow_friendly_name": "Test Workflow",
_31 "task_queue_friendly_name": "Test Queue",
_31 "task_queue": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/TaskQueues/WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workflow": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Workflows/WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workspace": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "reservations": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks/WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Reservations"
When a pending Task's attributes are updated, the Task will be re-driven through the Workflow identified by the WorkflowSid associated with the task. Depending on the Workflow's filters, TaskRouter may move the Task into a different TaskQueue. The age of the Task will remain the same. If the Task is moved to a new TaskQueue, its TaskQueue position relative to other tasks will be determined by its age and priority, as usual.
Use the If-Match header to check Task Version
_15// Download the helper library from https://www.twilio.com/docs/node/install
_15// Find your Account SID and Auth Token at twilio.com/console
_15// and set the environment variables. See http://twil.io/secure
_15const accountSid = process.env.TWILIO_ACCOUNT_SID;
_15const authToken = process.env.TWILIO_AUTH_TOKEN;
_15const client = require('twilio')(accountSid, authToken);
_15client.taskrouter.v1.workspaces('WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_15 .tasks('WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_15 assignmentStatus: 'canceled',
_15 reason: 'waiting too long'
_15 .then(task => console.log(task.taskQueueFriendlyName));
_31 "account_sid": "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "assignment_status": "canceled",
_31 "date_created": "2014-05-14T18:50:02Z",
_31 "date_updated": "2014-05-15T07:26:06Z",
_31 "task_queue_entered_date": "2014-05-14T18:50:02Z",
_31 "virtual_start_time": "2023-08-02T12:34:56Z",
_31 "reason": "waiting too long",
_31 "sid": "WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "task_queue_sid": "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "task_channel_sid": "TCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "task_channel_unique_name": "task-channel",
_31 "url": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks/WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workflow_sid": "WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workspace_sid": "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workflow_friendly_name": "Test Workflow",
_31 "task_queue_friendly_name": "Test Queue",
_31 "task_queue": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/TaskQueues/WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workflow": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Workflows/WWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "workspace": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
_31 "reservations": "https://taskrouter.twilio.com/v1/Workspaces/WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Tasks/WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Reservations"
The previous version of Etag can be found in the client by accessing the following attribute:
client.httpClient.lastResponse.headers.etag
DELETE https://taskrouter.twilio.com/v1/Workspaces/{WorkspaceSid}/Tasks/{Sid}
Deletes the Task identified by TaskSid.
For all pending reservations associated with the deleted Task, these will also be deleted at task deletion time.
Request headers
URI parameters
WorkspaceSid
type: SID<WS>
The SID of the Workspace with the Task to delete.
Pattern:
^WS[0-9a-fA-F]{32}$
Sid
type: SID<WT>
The SID of the Task resource to delete.
Pattern:
^WT[0-9a-fA-F]{32}$
_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
_10const accountSid = process.env.TWILIO_ACCOUNT_SID;
_10const authToken = process.env.TWILIO_AUTH_TOKEN;
_10const client = require('twilio')(accountSid, authToken);
_10client.taskrouter.v1.workspaces('WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_10 .tasks('WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
Use the If-Match header to check Task Version
_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
_10const accountSid = process.env.TWILIO_ACCOUNT_SID;
_10const authToken = process.env.TWILIO_AUTH_TOKEN;
_10const client = require('twilio')(accountSid, authToken);
_10client.taskrouter.v1.workspaces('WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_10 .tasks('WTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
_10 .remove({ifMatch: '0'});