Giter Club home page Giter Club logo

twilio-contact-center's Introduction

Twilio Contact Center Demo

Essence of a modern contact center is to serve customers on multiple channels (voice, web chat, video, email, social media, etc.), allow them to move seamlessly across channels and most importantly maintain context of the conversations.

The Twilio Contact Center demo is reference architecture for building a modern contact center. The focus of the demo is to show how to build a Twilio platform based contact center and the various backend and frontend components needed.

Twilio Contact Center

Note: We have done the basic work from an UX perspective and lot of opportunities remains to improve on it. It has been designed for demo purposes and has not been separately security checked.

This application is provided as-is. Twilio does not officially support it.

Features

  • Twilio Phone Numbers
  • Twilio Programmable Voice (PSTN, Twilio WebRTC Client)
  • Twilio Programmable Chat
  • Twilio Programmable SMS and Facebook Messenger
  • Twilio Programmable Video
  • Twilio TaskRouter
  • Twilio REST APIs

Customer Journey Flows:

Callback Voice Calling (PSTN):

Customer fills out online call request -> Form submitted to server -> Task on TaskRouter created -> Find available and matching agent -> Agent accepts reservation and dials customer out (PSTN) -> Connect customer to agent (WebRTC)

Customer Journey Call Back over PSTN

Inbound Voice Calling (PSTN):

Customer calls Twilio phone number -> Twilio requests webhook -> Server generates TwiML for IVR -> Caller selects IVR option -> Task on TaskRouter created -> Find available and matching agent -> Agent accepts reservation -> Connect customer to agent (WebRTC)

Customer Journey Inbound Call

Web Chat:

Customer fills out online web chat request form -> Form submitted to server -> Task on TaskRouter created -> Find available and matching agent -> Agent accepts reservation -> Start chat between customer and agent

Customer Journey Chat

Video Call:

Customer fills out video call request form -> Form submitted to server -> Task on TaskRouter and video room created -> Find available and matching agent -> Agent accepts reservation -> Agent joins video room

Customer Journey Video

Real-time TaskRouter Events Dashboard:

Real-time display of operational contact center metrics (for example: average call handle time, agent productivity, call metrics, TaskRouter stats, and more etc.). Please check out the following repo: https://github.com/ameerbadri/twilio-taskrouter-realtime-dashboard

Pre-requisites:

Installation

If you haven't used Twilio before, welcome! You'll need to Sign up for a Twilio account.

We recommend you create a separate project within Twilio and install this app using that project.

Note: It is recommended that you have an upgraded Twilio account to fully experience this demo.

Configuration Variables

Before you start the install, you’ll need to collect the following variables from the Twilio Account Portal.

  • TWILIO_ACCOUNT_SID
  • TWILIO_AUTH_TOKEN
  • TWILIO_WORKSPACE_SID
  • TWILIO_API_KEY_SID
  • TWILIO_API_KEY_SECRET

For web chat you need to set Twilio Programmable Chat environment variables:

  • TWILIO_CHAT_SERVICE_SID

The agent UI does not support handling of multiple tasks simultaneously, hence all tasks are routed on the same task channel with capacity of one simultaneous task. For more details please check TaskRouter Multitasking

Terraform Install - Heroku

You can deploy this project with all depencendies on Heroku with Terraform, an open-source infrastructure as code software tool.

Create the API key for Heroku, check the Heroku Platform API Guide for help.

Add the Heroku API key and your email address to terraform.tfvars.

Initialize the Terraform configuration files and run

terraform init

If you have not installed Terraform, follow the Terraform Getting Started.

Add the Twilio variables listed in section Configuration Variables to the terraform.tfvars variables file.

Set your Heroku application name in the infrastructure description file terraform_heroku.tf

Create an execution plan

terraform plan

Install the project on Heroku by executing

terraform apply

After the installation has completed please open https://<your-application-name>.herokuapp.com/setup and configure the application. The demo overview will be accessible at https://<your-application-name>.herokuapp.com.

One Click Install - Heroku

This will install the 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.

Deploy

After the installation has completed please open https://<your-application-name>.herokuapp.com/setup and configure the application. The demo overview will be accessible at https://<your-application-name>.herokuapp.com.

Google App Engine Installation

Download and install the Google Cloud SDK.

Create a new project

gcloud projects create <your-project-id> --set-as-default

Initialize your App Engine app with your project and choose its region:

gcloud app create --project=<your-project-id>

Add the Twilio variables listed in section Configuration Variables to the app.yaml variables file.

Deploy the app on App Engine by running the following command.

gcloud app deploy

To view your application run

gcloud app browse

After the installation has completed please open https://<your-project-id>.appspot.com/setup and configure the application. The demo overview will be accessible at https://<your-project-id>.appspot.com.

Manual Install - On Your Own Server

Fork and clone the repository. Then, install dependencies with

npm install

If you want to load environment variables from a file, install dotenv package to handle local environment variables.

npm install dotenv

In the root directory create a file called '.env', then add the following to top of app.js

require('dotenv').config()

In order to run the demo you will need to set the environment variables liste in Configuration Variables](#configuration-variables)

Start the application

npm start

Before you can use the demo please open http://<your-application-name>/setup and configure the application. The demo overview will be accessible at http://<your-application-name>. Please note, if process.env.PORT is not set the applications runs on port 5000.

If you are running the demo locally please remember that Twilio needs a publically-accessible address for webhooks, and the setup process registers these with Twilio. As such, you'll need to run something like ngrok instead of just hitting http://localhost:5000/. As you get new addresses from ngrok you'll need to also rerun the setup process to register the updated address with Twilio.

ngrok Setup

  • System Wide Install

  • Project Only Install

    • Install ngrok package

      npm install ngrok --dev

    • Add the following to the top of app.js

      const ngrok = require('ngrok')
      
      const ngrokUrl = async function () {
       	const url = await ngrok.connect((process.env.PORT || 5000))
       	console.log('ngrok url ->', url)
      }
      
      
    • In app.js call ngrokUrl in app.listen to log the ngrok url on server spin up

      ngrokUrl()

Note: On Google Chrome a secure HTTPS connection is required to do phone calls via WebRTC. Use a tunnel that supports HTTPS such as ngrok, which can forward the traffic to your webserver.

Contributions

Contributions are welcome and generally accepted. For not trivial amendments it is a good idea to submit an issue explaining the proposed changes before a PR. This allows the maintainers to give guidance and avoid you doing duplicated work.

Your changes must adhere a common project code style.

# please run this before "git commit"
npm run lint
# try automatic fix
./node_modules/.bin/eslint controllers --fix
./node_modules/.bin/eslint public --fix

To make life easier for other contributors and reviewer please rebase your commit in the same PR

git rebase -i HEAD^^^^^^
# then squash or fixup your shards
# and force push into your fork
git push origin [YOUR BRANCH] -f

Have a question?

You can follow me on Twitter - @mdamm_de

License

MIT

twilio-contact-center's People

Contributors

ameerbadri avatar fabriziomoscon avatar jlyman avatar skwid138 avatar vinu avatar yuto-yamada avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

twilio-contact-center's Issues

Token Issue

I've been attempting to get the demo up and running, but seem to be running into some issues with the initial configuration. I initially tried to set up the server locally. All 6 environment variables have been properly set (stuck a console.log in app.js), but whenever I attempt to access /setup I get

[SyntaxError: Unexpected token  ]

So I tried setting up the heroku instance. It spins up, but when I access /setup both /api/setup/workspace and /api/setup/activities return status 500 with

 {"status":401,"message":"Authentication Error - invalid username","code":20003,"moreInfo":"https://www.twilio.com/docs/errors/20003"}

I double checked all my ids and secrets, and everything seems to be in order.

Invalid Phone Number

Ok, well I seemed to be able to get it to login, however, the agent login isn't changing the agent status to available when you login.

Thank you,

error after set up SyntaxError: Unexpected token

SyntaxError: Unexpected token {
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object. (/root/twilio-contact-center/app.js:14:9)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)

The application could not access the TwiML Application.

The application could not access the TwiML Application. and also getting the error on setup page

Oh snap!
{ "stack": "Error: The requested resource /2010-04-01/Accounts/AC65baeed0743da28a3fb1c82bab432e0b/Applications/AP183378e0911ec8d9549015e0bd96bab4.json was not found\n at success (E:\Contact-Center\twilio-contact-center\node_modules\twilio\lib\base\Version.js:88:15)\n at Promise_then_fulfilled (E:\Contact-Center\twilio-contact-center\node_modules\q\q.js:766:44)\n at Promise_done_fulfilled (E:\Contact-Center\twilio-contact-center\node_modules\q\q.js:835:31)\n at Fulfilled_dispatch [as dispatch] (E:\Contact-Center\twilio-contact-center\node_modules\q\q.js:1229:9)\n at Pending_become_eachMessage_task (E:\Contact-Center\twilio-contact-center\node_modules\q\q.js:1369:30)\n at RawTask.call (E:\Contact-Center\twilio-contact-center\node_modules\asap\asap.js:40:19)\n at flush (E:\Contact-Center\twilio-contact-center\node_modules\asap\raw.js:50:29)\n at processTicksAndRejections (internal/process/task_queues.js:79:11)", "message": "The requested resource /2010-04-01/Accounts/AC65baeed0743da28a3fb1c82bab432e0b/Applications/AP183378e0911ec8d9549015e0bd96bab4.json was not found", "status": 404, "code": 20404, "moreInfo": "https://www.twilio.com/docs/errors/20404" }

waiting for your reply

Error: The requested resource /Services/undefined was not found

When trying to save the configuration from https://xxx.ngrok.io/setup/ or http://localhost:5000/setup, I'm getting this error:

{"stack": "Error: The requested resource /Services/undefined was not found
 at success (/Users/.../src/twilio-contact-center/node_modules/twilio/lib/base/Version.js:88:15)
 at Promise_then_fulfilled (/Users/.../twilio-contact-center/node_modules/q/q.js:766:44)
 at Promise_done_fulfilled (/Users/.../twilio-contact-center/node_modules/q/q.js:835:31)
 at Fulfilled_dispatch [as dispatch] (/Users/.../twilio-contact-center/node_modules/q/q.js:1229:9)
 at Pending_become_eachMessage_task (/Users/.../twilio-contact-center/node_modules/q/q.js:1369:30)
 at RawTask.call (/Users/.../twilio-contact-center/node_modules/asap/asap.js:40:19)
 at flush (/Users/.../twilio-contact-center/node_modules/asap/raw.js:50:29)
 at processTicksAndRejections (internal/process/task_queues.js:79:11)", "message": "The requested resource /Services/undefined was not found", "status": 404, "code": 20404, "moreInfo": "https://www.twilio.com/docs/errors/20404" }

(Note, my absolute file path has been masked)

Facing issue while setting up an application

While setting up the twilio contact center: Setup through this demo:
https://github.com/nash-md/twilio-contact-center,
I'm getting 404 error which has 20404 code
According to the save settings code, if configuration.twilio.applicationSid exist then only it will save the settings.The json which is dynamically created while saving settings,

"configuration": {
        "twilio": {
            "workerOfflineActivitySid": "WAfc1cXXXXXXXXXXXXee921",
            "workerIdleActivitySid": "WAfc1c13d94xxxxxxxx57dee921",
            "workerReservationActivitySid":"WA3fc5c9xxxxb236c60eeedba23a",
            "workerAssignmentActivitySid": "WA20c2690d8xxxxf44a0365124",
            "callerId": "+1520xxx3041",
            "facebookPageId": ""
        }
}

This json does not generate applicationSid.

Error: keySid is required

I got through the install, got the success on the /setup screen. Went to log in as an agent, and got this error:

Error: keySid is required
at new AccessToken (/var/www/twilio-contact-center/node_modules/twilio/lib/AccessToken.js:73:24)
at /var/www/twilio-contact-center/controllers/agents.js:55:23
at /var/www/twilio-contact-center/node_modules/twilio/node_modules/q/q.js:1920:17
at flush (/var/www/twilio-contact-center/node_modules/twilio/node_modules/q/q.js:108:17)
at process._tickCallback (node.js:355:11)

Is this because of a node module update?

I'm not using the IP Messaging piece, so I don't have those env vars set. Not sure if that matters.

Error on Setup 20001

While doing the setup both manually and with heroku, I'm having the same issues. An error message appears that says:

{ 
[Error: Queue named Chat Queue Testing already exists for workspace WS5a372d5824277c2bb4759f8b525c7ae3 for account ACa7acfd5f1b6f961eaf664b7107de54d0]
  status: 400,  message:
   'Queue named Chat Queue Testing already exists for workspace WS5a372d5824277c2bb4759f8b525c7ae3 for account ACa7acfd5f1b6f961eaf664b7107de54d0',
  code: 20001,
  moreInfo: 'https://www.twilio.com/docs/errors/20001',
  detail: undefined 
}

I changed nothing on the code, I only setted the environment variables.
I tried deleting the queues but nothing changed.
What can be causing this?

change language

Hi,
great git, congrats. How can i change the language because it set to default "men" "en-EN" and i would like to change it for eg. "female" "de-DE". Tried to change the configuration.json but without success.

Thanks

Missing application SID

Error on logging in from twilio.min.js:49
code: 31100
message: "Missing application SID"

I've got the env var set up right. Seems like it might be required somewhere else? Do I need to monkey with the app.json to include the keys or something?

Phone dialing hits IVR endpoint everytime

With a new installation, when I test the phone dialer and press call, what I hear is the IVR.

Looks to me like the TwiML app will route all inboud and outbound calls thought the TwiML enpoint.

Am I doing something wrong?

Dead .js scripts from Twilio CDN and SSL req of Twilio

First off, thank you for the detailed sample project. I am following along, but running into a few issues. I am installing it on a web server I run, GC, and using LetsEncrypt. Without HTTPS, Twilio is no longer allowing calls to be made. I think I got everything set up correctly, but getting the following in debug console of firefox. Tested the dialer, and the button seems to not function anymore. Could you offer any guidance? Thanks

Loading failed for the <script> with source “https://media.twiliocdn.com/sdk/js/client/v1.7/twilio.min.js”. workplace.html:282:1 Loading failed for the <script> with source “https://media.twiliocdn.com/taskrouter/js/v1.20/taskrouter.min.js”. workplace.html:283:1 Loading failed for the <script> with source “https://media.twiliocdn.com/sdk/js/common/v0.1/twilio-common.min.js”. workplace.html:284:1 Loading failed for the <script> with source “https://media.twiliocdn.com/sdk/js/chat/v3.3/twilio-chat.min.js”. workplace.html:285:1 Loading failed for the <script> with source “https://media.twiliocdn.com/sdk/js/video/v1/twilio-video.min.js”. workplace.html:287:1

Consider port to Angular 8

I'm curious if there has been any talk about porting this application to the latest angular 8.

The first commit to master was May 2016, when Angular was at 1.x

I'd just imagine a large group of engineers interested in learning about twilio services though an angular 8 example using typescript. Similar to those who learned about twilio using this repo, just those engineers that are just coming into contact with the twilio landscape now, in 2020

Twilio Debug Error 16011 - Outbound calls

This has been resolved, but I wanted to post just in case anyone else runs into this issue.

While making outbound calls from the client Twilio's debugger was showing an error code of 16011

"Got HTTP 500 response from https://47c30956.ngrok.io/api/phone/call/CA7e139f760ff6996fb905c6ec79f298f6/add-participant/12345678900"

Node was logging the following

{
    status: 403,
    message: "Access Denied",
    code: 12400,
    moreInfo: "https://www.twilio.com/docs/errors/12400",
    detail: undefined
}

I was able to resolve the issue by updating my Twilio conference settings from Twilio Conference to Agent Conference.
https://www.twilio.com/console/voice/conferences/settings

Invalid client name

After deploying and setup this app using Heroku I'm getting this error on Agent Interface:

{
"code": 31105,
"message": "Invalid client name"
}

It's coming from twilio.min.js:55

TWILIO_WORKSPACE_SID value not working

I was almost successful in getting the app set up, but the TWILIO_WORKSPACE_SID value in the config (which does match my Twilio settings) doesn't work. (I followed the instructions precisely, and triple checked everything)

Oh snap!
The environment variable TWILIO_WORKSPACE_SID is not set or incorrect. If you are on Heroku please update your application settings.

Maybe something has changed at Twilio? (possibly additional settings inside of Twilio -- perhaps to Channels or Workers or something?)

Thanks!

The new build fails when we load it in GCP

Lots of errors around missing workflow etc,. I had to rollback to the version from April 29th for it to work. Any ideas? Nothing works, I couldn't run the /setup I get into syntax errors etc,. very bizarre.

One click install not working

First of all thank you for creating this app.
I am trying to run the one click install but it gives me this error

bash 021-06-04T20:11:01.030011+00:00 app[web.1]: at Connection.parseE (/app/node_modules/pg/lib/connection.js:614:13) 2021-06-04T20:11:01.030012+00:00 app[web.1]: at Connection.parseMessage (/app/node_modules/pg/lib/connection.js:413:19) 2021-06-04T20:11:01.030012+00:00 app[web.1]: at Socket.<anonymous> (/app/node_modules/pg/lib/connection.js:129:22) 2021-06-04T20:11:01.030013+00:00 app[web.1]: at Socket.emit (events.js:198:13) 2021-06-04T20:11:01.030013+00:00 app[web.1]: at addChunk (_stream_readable.js:288:12) 2021-06-04T20:11:01.030014+00:00 app[web.1]: at readableAddChunk (_stream_readable.js:269:11) 2021-06-04T20:11:01.030015+00:00 app[web.1]: at Socket.Readable.push (_stream_readable.js:224:10) 2021-06-04T20:11:01.030015+00:00 app[web.1]: at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17) 2021-06-04T20:11:01.030016+00:00 app[web.1]: name: 'error', 2021-06-04T20:11:01.030017+00:00 app[web.1]: length: 166, 2021-06-04T20:11:01.030017+00:00 app[web.1]: severity: 'FATAL', 2021-06-04T20:11:01.030017+00:00 app[web.1]: code: '28000', 2021-06-04T20:11:01.030018+00:00 app[web.1]: detail: undefined, 2021-06-04T20:11:01.030018+00:00 app[web.1]: hint: undefined, 2021-06-04T20:11:01.030018+00:00 app[web.1]: position: undefined, 2021-06-04T20:11:01.030019+00:00 app[web.1]: internalPosition: undefined, 2021-06-04T20:11:01.030019+00:00 app[web.1]: internalQuery: undefined, 2021-06-04T20:11:01.030020+00:00 app[web.1]: where: undefined, 2021-06-04T20:11:01.030020+00:00 app[web.1]: schema: undefined, 2021-06-04T20:11:01.030020+00:00 app[web.1]: table: undefined, 2021-06-04T20:11:01.030021+00:00 app[web.1]: column: undefined, 2021-06-04T20:11:01.030021+00:00 app[web.1]: dataType: undefined, 2021-06-04T20:11:01.030021+00:00 app[web.1]: constraint: undefined, 2021-06-04T20:11:01.030022+00:00 app[web.1]: file: 'auth.c', 2021-06-04T20:11:01.030022+00:00 app[web.1]: line: '496', 2021-06-04T20:11:01.030022+00:00 app[web.1]: routine: 'ClientAuthentication' } 2021-06-04T20:11:01.037478+00:00 app[web.1]: { error: no pg_hba.conf entry for host "3.82.155.179", user "yiopqnaotjiegs", database "d9cjggvojcen42", SSL off

ReferenceError: Twilio is not defined Error while logging in as an agent

After I go through the setup page and add an agent.

I try to login as the agent I created, I get this error:

2018-10-25T23:12:21.130800+00:00 app[web.1]: ReferenceError: Twilio is not defined
2018-10-25T23:12:21.130818+00:00 app[web.1]:     at Object.module.exports.createWorkerCapabilityToken (/app/controllers/helpers/taskrouter-helper.js:71:30)
2018-10-25T23:12:21.130820+00:00 app[web.1]:     at createWorkerTokens (/app/controllers/agents.js:54:44)
2018-10-25T23:12:21.130821+00:00 app[web.1]:     at client.taskrouter.workspaces.workers.list.then.workers (/app/controllers/agents.js:25:20)
2018-10-25T23:12:21.130823+00:00 app[web.1]:     at Promise_then_fulfilled (/app/node_modules/q/q.js:766:44)
2018-10-25T23:12:21.130824+00:00 app[web.1]:     at Promise_done_fulfilled (/app/node_modules/q/q.js:835:31)
2018-10-25T23:12:21.130826+00:00 app[web.1]:     at Fulfilled_dispatch [as dispatch] (/app/node_modules/q/q.js:1229:9)
2018-10-25T23:12:21.130827+00:00 app[web.1]:     at Pending_become_eachMessage_task (/app/node_modules/q/q.js:1369:30)
2018-10-25T23:12:21.130829+00:00 app[web.1]:     at RawTask.call (/app/node_modules/asap/asap.js:40:19)
2018-10-25T23:12:21.130830+00:00 app[web.1]:     at flush (/app/node_modules/asap/raw.js:50:29)
2018-10-25T23:12:21.130832+00:00 app[web.1]:     at _combinedTickCallback (internal/process/next_tick.js:131:7)

Unable to setup due to invalid SmsUrl

When attempting to setup the application, I get the following error

{"status":400,"message":"SmsUrl is not valid: http://localhost/api/messaging-adapter/inbound","code":21402,"moreInfo":"https://www.twilio.com/docs/errors/21402"}

As I only need to test IP chat, and I'd like to do so in localhost (so unreachable url), can I bypass this somehow? Or how can I fix it?

node js app workspace error

This runs fine in heroku but when trying the node/ngrok version the following errors seen in browser & terminal. Have checked WS ID correct in console & .env ok

browser error:

oh_snap

terminal error:

{ [Error: The requested resource /Workspaces/WS********************************/Workers was not found]
status: 404,
message: 'The requested resource /Workspaces/WS********************************/Workers was not found',
code: 20404,
moreInfo: 'https://www.twilio.com/docs/errors/20404',
detail: undefined }

Rgds, Mick

P.S. 500 seen from ngrok terminal output:

POST /api/validate/setup 500 Internal Server Error

which I think is being generated from /twilio-contact-center/controllers/validate.js ?

Heroku One-click issues

Hi,

I'm trying the Heroku one-click but keep getting this error in the log:

2021-06-24T12:48:24.511230+00:00 app[web.1]:   column: undefined,
2021-06-24T12:48:24.511231+00:00 app[web.1]:   dataType: undefined,
2021-06-24T12:48:24.511231+00:00 app[web.1]:   constraint: undefined,
2021-06-24T12:48:24.511232+00:00 app[web.1]:   file: 'auth.c',
2021-06-24T12:48:24.511232+00:00 app[web.1]:   line: '496',
2021-06-24T12:48:24.511232+00:00 app[web.1]:   routine: 'ClientAuthentication' }
2021-06-24T12:48:24.595085+00:00 heroku[web.1]: Process exited with status 1
2021-06-24T12:48:24.700332+00:00 heroku[web.1]: State changed from starting to crashed
2021-06-24T12:49:07.334393+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/setup" host=my-app.herokuapp.com request_id=XXXXX-XXXX-XXXX-XXXX-XXXXXXXX fwd="XXX.XXX.XXX.XXX" dyno= connect= service= status=503 bytes= protocol=https
2021-06-24T12:49:08.066023+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=my-app.herokuapp.com request_id=XXXXX-XXXXX-XXXX-XXX-XXXXXX fwd="XXX.XXX.XXX.XXX" dyno= connect= service= status=503 bytes= protocol=https

Local Setup - "status": 400, "message": "Missing required parameter FriendlyName in the post body"

I received the following Error attempting to Save Settings during a local setup. It's been resolved, but I wanted to post in case anyone else runs into the same issue.

Oh snap!
{ 
    "status": 400,
    "message": "Missing required parameter FriendlyName in the post body",
    "code": 20001,
    "moreInfo": "https://www.twilio.com/docs/errors/20001"
}

I resolved it by adding the following keys to my .env

TWILIO_CHAT_SERVICE_SID = "ISxxx..."
TWILIO_API_KEY_SID = "SKxxx..."
TWILIO_API_KEY_SECRET = "xxx..."

Initially I thought these were optional unless you wanted to use Chat or Video, but it appears they're needed regardless.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.