All Projects → ameerbadri → twilio-taskrouter-realtime-dashboard

ameerbadri / twilio-taskrouter-realtime-dashboard

Licence: other
Twilio TaskRouter Realtime Dashboard using Sync

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to twilio-taskrouter-realtime-dashboard

Realm Dotnet
Realm is a mobile database: a replacement for SQLite & ORMs
Stars: ✭ 927 (+1717.65%)
Mutual labels:  sync, realtime
Monstache
a go daemon that syncs MongoDB to Elasticsearch in realtime
Stars: ✭ 736 (+1343.14%)
Mutual labels:  sync, realtime
node-v
🔒 Secure ❄️ Synchronized ⚡️ Realtime ☁️ Cloud 🌈 Native JavaScript Variables & Events
Stars: ✭ 27 (-47.06%)
Mutual labels:  sync, realtime
twilio-taskrouter.js
JS SDK v2 for Twilio's TaskRouter skills based routing system.
Stars: ✭ 20 (-60.78%)
Mutual labels:  twilio, taskrouter
Realmcontent
Light Realm-powered content management system
Stars: ✭ 237 (+364.71%)
Mutual labels:  sync, realtime
Amazonriver
amazonriver 是一个将postgresql的实时数据同步到es或kafka的服务
Stars: ✭ 198 (+288.24%)
Mutual labels:  sync, realtime
multihack-brackets
Realtime collaboration for programmers. (Brackets Extension)
Stars: ✭ 24 (-52.94%)
Mutual labels:  sync, realtime
Realm Cocoa
Realm is a mobile database: a replacement for Core Data & SQLite
Stars: ✭ 14,778 (+28876.47%)
Mutual labels:  sync, realtime
Video-Engine-Dash
A Dash plugin for playing back video and optionally syncing video to timestamped CSV Data
Stars: ✭ 26 (-49.02%)
Mutual labels:  sync, realtime
py-mongo-sync
Oplog-based data sync tool that synchronizes data from a replica set to another deployment, e.g.: standalone, replica set, and sharded cluster.
Stars: ✭ 102 (+100%)
Mutual labels:  sync, realtime
Dracker
An iOS and React App to track debt and send/receive payments.
Stars: ✭ 22 (-56.86%)
Mutual labels:  twilio
syncwatch
Browser extension to watch videos together
Stars: ✭ 48 (-5.88%)
Mutual labels:  realtime
realtime-multiplayer-space-invaders
Realtime Multiplayer Space Invaders Game with Phaser 3 and Ably
Stars: ✭ 42 (-17.65%)
Mutual labels:  realtime
realtime-object-detection
Detects objects in images/streaming video
Stars: ✭ 16 (-68.63%)
Mutual labels:  realtime
mongofluxd
Real time sync from MongoDB into InfluxDB
Stars: ✭ 33 (-35.29%)
Mutual labels:  sync
accelerator-core-ios
Syntax sugar of OpenTok iOS SDK with Audio/Video communication including screen sharing
Stars: ✭ 30 (-41.18%)
Mutual labels:  realtime
TweetMigration
A WebGL heatmap of global Twitter activity
Stars: ✭ 42 (-17.65%)
Mutual labels:  realtime
aws-mobile-appsync-events-starter-ios
GraphQL starter application with Realtime and Offline functionality using AWS AppSync
Stars: ✭ 99 (+94.12%)
Mutual labels:  realtime
convergence-client-javascript
The Convergence JavaScript Client
Stars: ✭ 38 (-25.49%)
Mutual labels:  realtime
SyncUtil
Sync Utilities For UNET
Stars: ✭ 38 (-25.49%)
Mutual labels:  sync

Twilio TaskRouter Realtime Dashboard using Sync

In a modern contact center that serves customers over multiple channels, realtime monitoring of the tasks and their progress becomes an operational imperative. Twilio provides all the necessary building blocks to build a contact center (https://github.com/nash-md/twilio-contact-center) and the ability to build a realtime task monitoring dashboard using Twilio Sync (https://www.twilio.com/sync).

This demo shows how an operational monitoring dashboard could be built. I've used the following technologies to built this dashboard:

Technologies

  1. Twilio TaskRouter (https://www.twilio.com/taskrouter)
  2. Twilio Sync (https://www.twilio.com/sync)
  3. Server side app using Python and Twilio REST APIs (TaskRouter, Sync)
  4. Dashboard app components: 4.1) Javascript framework Vue.js (https://vuejs.org) 4.2) UI framework Semantic-ui (https://semantic-ui.com) 4.3) Twilio Sync JS SDK (https://www.twilio.com/docs/api/sync/quickstart-js)

Data flow

  1. TaskRouter generates the event and calls the Event Callback URL associated with the workspace
  2. This invokes the server side python app to consume the event and call the additional Twilio TaskRouter Statistics APIs to get aggregated statistics
  3. Next, the Sync documents are updated with changes using the Sync REST APIs
  4. The frontend web app subscribes to the same Sync documents for changes vis the Sync JS SDK
  5. When changes are detected by the frontend, the UI is updated

Note: Please keep in mind the source code shared here (JS and Python) is pretty much demo quality. For production use, I am sure the code can be optimized significantly.

Setup

Step 1: Installing the server side app

This will install the web application and all the dependencies on Heroku (login required) for you. As part of the installation, the Heroku app will walk you through configuration of environment variables. Please click on the following button to deploy the application.

One Click Heroku Deploy of the server side app

Deploy

Make a note of the URL that Heroku created for your app as you'll need it for the next Step

Step 2: Configuring TaskRouter Workspace

  1. In your Twilio console (login required), go to your TaskRouter workspaces (https://www.twilio.com/console/taskrouter/workspaces/)
  2. Select the correct workspace and click on "Settings" (https://www.twilio.com/console/taskrouter/workspaces/<WORKSPACE_SID/settings)
  3. Select the "Callback Events" as selected below
  4. Specify the "Event Callback URL" as https://<YOUR_HEROKU_APP_URL>/taskrouter_event
  5. Save the changes

Now, Navigate to https://<YOUR_HEROKU_APP_URL>/taskrouter_dashboard.html

As events are generated in your TaskRouter workspace the dashboard will display key metrics.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].