This guide uses a PSTN connection to connect to Zoom. PSTN audio quality maxes out to 8KHz. You can also use a SIP-based connection, which captures audio at 16KHz and above.
symbl-node node package. You must have an active Zoom call (no one has to be in it but yourself) and whatever you speak in the Zoom call will be taken by our API and processed for conversational insights.
You must make sure your Zoom call allows phone dial-in for this example to work correctly.
- Getting Started
- Set Up Symbl SDK
- Connect to Zoom
- Grabbing the Conversation ID
- Full Code Sample
In this example we use the following variables which you must replace in the code examples for the code to work:
|String||The application ID you get from the home page of the platform.|
|String||The application secret you get from the home page of the platform.|
To get started, you’ll need your account credentials and Node.js installed (> v8.x) on your machine.
From the root directory of your project, run the following command to add
symbl-node in your project dependencies.
Your credentials include your App ID and App Secret, which you can find on the home page of the platform.
Create a new file named index.js in your project and add the following lines to initialize the Symbl SDK:
To connect to a Zoom call you need something called a DTMF Sequence. In simple terms, a DTMF sequence is the dial-pad keys you press after calling into a Zoom call. They consist of any key you find on a telephone keypad and commas (
,), which add a bit of artificial delay between key presses; with one comma being 500ms. Typically we add a bit of artificial delay after the pound key is pressed to give the conference call time to process which keys were pressed.
For Zoom a DTMF Sequence is made up of two items:
- The Zoom Meeting ID (read here for information on what the Zoom Meeting ID is.)
- The Zoom Participant ID (optional). This is uncommon. If the Zoom Meeting requires a partipant ID, set it as the value of the
ZOOM_PARTICIPANT_IDvariable. Read more here.
- The Zoom Meeting Passcode (optional). If there is no Zoom Meeting Passcode just make the variable an empty string.
If your Zoom call has a passcode you must set it to be all numerical digits.
View the Telephony API documentation to see the various configuration options.
Once the connection is established Symbl will call into your Zoom conference. Be patient, as this can take up to a minute in some cases. Once Symbl has connected to the call you will get a request to allow them in.
The Conversation ID is very useful for our other APIs such as the Conversation API. Using the Conversation API is how you get AI insights after the call is over. We don't use it in this example because it's mainly used for non-real-time data gathering, but it's good to know how to grab it as you can use the Conversation ID later to extract the conversation AI insights.
If you look closely at the success callback for
sdk.startEndpoint() promise, you can grab the Conversation ID like this:
With the Conversation ID you can do each of the following (and more!):
View conversation topics
Summary topics provide a quick overview of the key things that were talked about in the conversation.
View action items
An action item is a specific outcome recognized in the conversation that requires one or more people in the conversation to take a specific action, e.g. set up a meeting, share a file, complete a task, etc.
This is a category of action items with a connotation to follow-up a request or a task like sending an email or making a phone call or booking an appointment or setting up a meeting.
Here's the full Code Sample below:
To verify and check if the code is working:
Run your code:
And that's it! Once Symbl is connected to the call, the API will take in your conversation and work its magic. Once the call is over, the email address specified will be sent a summary of the conversation which includes a full-text transcript, action items and conversational insights. You can also use the Conversation ID returned from the connection to perform even more tasks using our Conversation API.