TaskRouter is Twilio's skills based routing system. With this library, you can manage your Workers in the browser or view the state of your Workspace.
This TaskRouter module can be used with Twilio Flex or with TaskRouter standalone instances.
import { Worker } from "@twilio/flex-sdk/taskrouter";
const alice = new Worker("TOKEN");
alice.on("ready", (readyAlice) => {
console.log(`Worker ${readyAlice.sid} is now ready for work`);
});
alice.on("reservationCreated", (reservation) => {
console.log(`Reservation ${reservation.sid} has been created for ${alice.sid}`);
console.log(`Task attributes are: ${reservation.task.attributes}`);
reservation.on("accepted", (acceptedReservation) => {
console.log(`Reservation ${acceptedReservation.sid} was accepted.`);
});
reservation
.accept()
.then((acceptedReservation) => {
console.log(`Reservation status is ${acceptedReservation.status}`);
})
.catch((err) => {
console.log(`Error: ${err}`);
});
});
Usage with Flex SDK:
import { createClient } from "@twilio/flex-sdk";
import { Worker, Workspace } from "@twilio/flex-sdk/taskrouter";
async function initFlexSdk(token: string) {
// Initialize Worker and Workspace
const worker = new Worker(token);
const workspace = new Workspace(token);
// Pass them to the SDK client during initialization
const client = await createClient(token, { worker, workspace });
return client;
}