November 2021 Summaries
32 posts from Twilio
Filter
Month:
Year:
Post Summaries
Back to Blog
This tutorial demonstrates how to add a volume slider to the audience side of a video livestreaming application built with Twilio Live. The process involves adding an input range slider to the audience UI, implementing logic to control the player's volume based on the slider value, and testing the new feature. The tutorial also suggests further enhancements such as adding a realtime viewer count or building an audio-only livestreaming app.
Nov 30, 2021
954 words in the original blog post.
This tutorial guides you in creating REST APIs with Java Spring Boot to perform CRUD operations on an employee database. It covers the following steps:
1. Setting up prerequisites such as JDK, Maven, MySQL, and Eclipse IDE.
2. Explaining the advantages of using Spring Boot for developing REST APIs.
3. Creating a Spring Boot project using Spring Initializr.
4. Adding sub-packages to the project for DAO, Repository, Service, and Model layers.
5. Configuring MySQL database details in Spring Boot application properties file.
6. Creating model class Employee that maps Java objects to database entities.
7. Implementing EmployeeRepository interface extending JpaRepository for CRUD operations on the employee table.
8. Developing EmployeeService class containing business logic and calling methods of EmployeeRepository.
9. Designing EmployeeController class with REST API endpoints for CRUD operations using HTTP methods such as POST, GET, PUT, DELETE.
10. Building and testing the application in Eclipse IDE and Postman respectively.
Nov 30, 2021
3,792 words in the original blog post.
Twilio's security team has developed a set of metrics to quantify their security capabilities and demonstrate the value they bring to the company. These metrics are designed to help different audience groups within the organization, including executive-level leadership, VPs, product managers, and engineering managers. The metrics cover both the security health of the organization and the maturity of the security program. To generate these metrics, Twilio uses data from Jira, their issue management system, and automates the process using Python and Google Data Studio. By reimagining their security metrics, Twilio has seen teams actively take ownership of open vulnerabilities and fix them once they have seen the reports.
Nov 30, 2021
1,284 words in the original blog post.
In this tutorial, you will learn how to set up a Discord bot connected to Twilio Flex so agents can chat directly with customers on that platform while pulling in sentiment analysis of previous messages. The project uses IBM's Tone Analyzer API and Segment to calculate a user's sentiment from their texts in a Discord channel. This integration allows contact center teams to interact with customers directly in Discord, improving customer engagement and satisfaction.
Nov 30, 2021
2,109 words in the original blog post.
This article demonstrates how to use the Twilio API from Android's Tasker App, an automation tool for Android phones. The author explains how to create a task that sends an SMS using the Twilio API and attaches it to a profile that monitors battery level. The credentials to the Twilio account are stored in variables within Tasker, allowing for privacy and flexibility in usage. This integration can be useful for various reasons such as hiding phone numbers, handling incoming messages programmatically, reusing old phones without SIM cards, or using Android on non-phone devices.
Nov 30, 2021
1,395 words in the original blog post.
Anand Rengarajan shares his journey from an economics graduate with no clear career path, to a Software Engineer at Twilio. Despite having no computer science degree or coding boot camp experience, he leveraged his passion for automating tasks and gained valuable insights into the importance of software in customer experience during his time at Google, Zenefits, and later at Twilio. He was accepted into App Academy's three-month coding boot camp but faced financial challenges that prevented him from attending. Instead, with the support of Twilio's management, he transitioned into a Software Engineering role after proving his skills through side projects and internal tools development. Rengarajan offers four tips for those looking to make a similar career change: understand your strengths, evaluate company culture during interviews, automate tasks in your current role to build up your portfolio, and network extensively with professionals in the field.
Nov 30, 2021
999 words in the original blog post.
Kelley Robinson provides a comprehensive guide on how to implement push authentication using React Native and Twilio Verify. Push authentication is a secure and user-friendly method of verifying identities, replacing passwords or adding two-factor authentication to web or mobile logins. The tutorial covers setting up the development environment, running the sample backend, enabling push notifications, registering devices as secure keys for applications, customizing challenge views, and integrating Verify Push into your own application. It also suggests next steps such as reviewing the Verify Push technical overview, embedding the SDK into a mobile application, integrating with an application's backend, registering users and their devices, authenticating users using Verify Push, and building backup authentication channels.
Nov 29, 2021
1,355 words in the original blog post.
Mobile authentication involves verifying a user's identity through their mobile device and one or more authentication methods to ensure secure access. This is crucial for protecting sensitive information from potential hackers, especially as personal mobile devices are increasingly used in the workplace. To implement mobile authentication, users can use unique passwords for every login, enable two-factor authentication (2FA), use a virtual private network (VPN) when on public Wi-Fi networks, and install antivirus software that is kept updated. Twilio Verify offers an easy way to apply mobile authentication across devices by verifying users on any channel and enabling mobile push authentication.
Nov 29, 2021
973 words in the original blog post.
This tutorial guides users through setting up domain authentication for Twilio SendGrid, a crucial step when working with its APIs such as Inbound Parse. The process involves creating a free account on Twilio SendGrid and then authenticating the domain by adding DNS records provided by SendGrid to the domain's configuration. Verification of these changes can take up to 48 hours due to DNS propagation across servers worldwide. Once successful, users can proceed with using Twilio SendGrid APIs like Inbound Parse for receiving emails.
Nov 24, 2021
848 words in the original blog post.
Data loss can severely impact businesses' communication with customers and clients. To recover deleted text messages on an iPhone, ensure your iCloud account is active and has sufficient storage capacity. Check if there's a backup containing the lost messages, then reset your phone and restore data from the iCloud backup. For Android devices, set your phone on airplane mode to prevent overwriting of deleted messages. Utilize Google Drive backups or data recovery software for retrieval. Twilio offers a secure messaging platform to help businesses avoid losing important communication.
Nov 24, 2021
750 words in the original blog post.
In this tutorial, you'll learn how to authenticate uploads to an Amazon S3 bucket in a PHP application using Twilio Verify API. The app will verify users by sending them a one-time password via SMS before allowing them to upload images to the S3 bucket.
Here are the steps that we'll follow:
1. Set up your development environment.
2. Create an Amazon S3 bucket and configure it for public access.
3. Install Twilio Verify API SDK and set up a new service.
4. Configure the app to use Twilio Verify API and Amazon S3 services.
5. Implement the user authentication flow in the app.
6. Test the app.
By the end of this tutorial, you'll have built an application that can verify users before letting them upload images to an S3 bucket. In doing that, you'll have implemented a minimalist authorization layer around the bucket.
Let's get started!
1. Set up your development environment
To set up your development environment, follow these steps:
a. Install PHP 7.4 or later on your local machine.
b. Install Composer on your local machine.
c. Create a new directory for the app and navigate to it in your terminal.
d. Run `composer require slim/slim:"^3.0"` to install Slim Framework version 3.
e. Run `composer require aws/aws-sdk-php:^3.0` to install AWS SDK for PHP version 3.
f. Run `composer require twilio/twilio-php:^6.0` to install Twilio Verify API SDK version 6.
g. Create a new file named public/index.php and open it in your IDE or text editor.
h. Add the following code to the file, which will set up the basic structure of the app.
```php
<?php
require 'vendor/autoload.php';
$app = new \Slim\App();
// Define routes here...
$app->run();
```
2. Create an Amazon S3 bucket and configure it for public access
To create a new S3 bucket, follow these steps:
a. Sign in to the AWS Management Console and open the Amazon S3 console at https://console.aws.amazon.com/s3/.
b. Choose Create bucket.
c. In Bucket name, enter a DNS-compliant name for your new bucket, and then choose Next.
d. On the Set properties page, you can change the following settings:
- Versioning: Enable versioning to keep multiple versions of an object in the same bucket.
- Logging: Enable logging to record S3 API requests made to this bucket.
e. Choose Next until the final page, and then choose Create bucket.
f. To configure your new bucket for public access, follow these steps:
1. Open the Amazon S3 console at https://console.aws.amazon.com/s3/.
2. Choose the name of the bucket that you want to make publicly accessible.
3. Choose Permissions.
4. Under Bucket Policy, choose Edit.
5. In Policy Document, enter the following policy:
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/*"
}
]
}
```
6. Replace your-bucket-name with the name of your bucket, and then choose Save changes.
3. Install Twilio Verify API SDK and set up a new service
To install Twilio Verify API SDK and set up a new service, follow these steps:
a. Sign in to the Twilio Console at https://www.twilio.com/console.
b. Navigate to the Verify section by clicking on the "Products & Services" dropdown menu in the left-hand navigation bar and selecting "Verify."
c. Click on the "Get Started" button, which will take you to a page where you can create a new service.
d. Enter a name for your service (e.g., "ImageUpload"), select "SMS" as the channel, and then click on the "Create Service" button.
e. Once the service is created, Twilio will provide you with two important pieces of information: the Account SID and the Auth Token. Save these values somewhere safe, as you'll need them later in the tutorial.
4. Configure the app to use Twilio Verify API and Amazon S3 services
To configure your app to use Twilio Verify API and Amazon S3 services, follow these steps:
a. Open the .env file in your IDE or text editor and add the following lines of code, replacing the placeholders with your own values:
```ini
TWILIO_ACCOUNT_SID=your-twilio-account-sid
TWILIO_AUTH_TOKEN=your-twilio-auth-token
AWS_REGION=us-west-2
AWS_BUCKET=your-bucket-name
```
b. Open the config.php file in your IDE or text editor and add the following lines of code:
```php
<?php
return [
'allowedFileExtensions' => ['jpg', 'jpeg', 'png'],
'uploadDir' => __DIR__ . '/data/uploads/',
];
```
c. Open the index.php file in your IDE or text editor and add the following lines of code at the beginning of the file:
```php
<?php
require 'vendor/autoload.php';
$dotenv = Dotenv\Dotenv::create(__DIR__);
$dotenv->load();
$config = require 'config.php';
$app = new \Slim\App([
'settings' => [
'displayErrorDetails' => true,
],
]);
```
d. Add the following lines of code at the end of the file to set up Twilio Verify API and Amazon S3 services:
```php
$app->get('/', function (Request $request, Response $response) {
return $this->get('view')->render($response, 'index.html.twig');
});
$app->map(['GET', 'POST'], '/send-code', function (Request $request, Response $response, array $args) {
// Handle sending the verification code here...
});
$app->map(['GET', 'POST'], '/verify', function (Request $request, Response $response, array $args) {
// Handle verifying the user's identity here...
});
$app->map(['GET', 'POST'], '/upload', function (Request $request, Response $response, array $args) {
// Handle uploading the image to the S3 bucket here...
});
$app->get('/success', function (Request $request, Response $response, array $args) {
return $this->get('view')->render($response, 'success.html.twig');
});
```
5. Implement the user authentication flow in the app
To implement the user authentication flow in your app, follow these steps:
a. Create a new file named resources/templates/index.html.twig and open it in your IDE or text editor. Then, in that file, paste the following code.
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Enter Your Email Address</title>
<link href="/css/styles.css" rel="stylesheet">
</head>
<body>
<div class="min-h-screen flex items-center justify-center bg-gray-50 py-12 px-4 sm:px-6 lg:px-8">
<div class="max-w-md w-full space-y-8">
<div class="mt-8 space-y-6">
<h1 class="title">
Please Enter Your Email Address
</h1>
</div>
<form method="POST">
<div class="rounded-md shadow-sm">
<div class="mb-4">
<label for="email"
class="label mb-2 block">Email Address</label>
<input type="email"
id="email"
name="email"
{% if error %}class="input-field-with-error"{% else %}class="input-field"{% endif %}
placeholder="[email protected]">
{% if error %}<p class="error text-red-700">{{ error }}</p>{% endif %}
</div>
<button type="submit" class="btn">
Submit Email Address
</button>
</div>
</form>
</div>
</div>
</body>
</html>
```
Similar to the default route's template, this code contains a form with two elements:
A text field, named email, where the user can enter their email address.
A button to submit the form.
It also uses the default stylesheet that you downloaded earlier.
Next, it's time to define the route. To do that, after the default route's definition in public/index.php, paste the following code.
```php
$app->map(
['GET', 'POST'],
'/send-code',
function (Request $request, Response $response, array $args)
{
$template = 'send_code.html.twig';
$view = $this->get('view');
if ($request->getMethod() === 'POST') {
$email = $request->getParsedBody()['email'];
if (! filter_var($email, FILTER_VALIDATE_EMAIL)) {
return $view->render(
$response,
$template,
['error' => 'Please enter a valid email address.']
);
}
// TODO: Send the verification code to the user via SMS using Twilio Verify API...
}
return $view->render($response, $template);
});
```
As before, $app->map() is called to define the route with the path /send-code, which can accept both GET and POST requests. The route's handler starts by defining the template to render and retrieving the view service from the DI container.
Then, it checks if a POST request was made. If so, it retrieves the email address submitted in the request. If the email address is not valid (i.e., it doesn't match the pattern defined by FILTER_VALIDATE_EMAIL), then it renders the route's template, passing in an error message to display.
If the email address was valid, then you need to send a verification code to the user via SMS using Twilio Verify API. To do that, follow these steps:
a. Retrieve the Twilio client from the DI container by calling $this->get('twilioClient').
b. Use the Twilio client's verify service (created earlier) to send a verification code to the user via SMS. The code should look something like this:
```php
$verification = $twilioClient
->verify
->v2
->services($_ENV['VERIFY_SERVICE_SID'])
->verifications
->create($email, ["channel" => "sms"]);
```
c. Once the verification code has been sent successfully, redirect the user to the /verify route by calling $response->withHeader('Location', '/verify')->withStatus(302).
If a GET request was made, then the template is rendered, ready for the user to enter their email address.
Next, create another file named resources/templates/send_code.html.twig and open it in your IDE or text editor. Then, in that file, paste the following code.
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Verify Your Account</title>
<link href="/css/styles.css" rel="stylesheet">
</head>
<body>
<div class="min-h-screen flex items-center justify-center bg-gray-50 py-12 px-4 sm:px-6 lg:px-8">
<div class="max-w-md w-full space-y-8">
<div class="mt-8 space-y-6">
<h1 class="title">
Please verify your account {{ username }}
</h1>
</div>
<form method="POST">
<div class="rounded-md shadow-sm">
<div class="mb-4">
<label for="verification_code"
class="label mb-2 block">Enter the code sent to your phone</label>
<input type="password"
id="verification_code"
name="verification_code"
{% if error %}class="input-field-with-error"{% else %}class="input-field"{% endif %}
placeholder="verification code">
{% if error %}<p class="error text-red-700">{{ error }}</p>{% endif %}
</div>
<button type="submit" class="btn">
Submit Verification Code
</button>
</div>
</form>
</div>
</div>
</body>
</html>
Similar to the default route's template, this code contains a form with two elements:
A password field, named verification_code, where the user can enter the verification code that they received via SMS from Twilio after submitting the previous form.
A button to submit the form.
It also uses the default stylesheet that you downloaded earlier.
Next, it's time to define the route. To do that, after the default route's definition in public/index.php, paste the following code.
```php
$app->map(
['GET', 'POST'],
'/verify',
function (Request $request, Response $response, array $args)
{
$username = $_SESSION['username'];
$phoneNumber = $this->get('known_participants')[$username];
$template = 'verify.html.twig';
$view = $this->get('view');
if ($request->getMethod() === 'POST') {
$verificationCode = $request->getParsedBody()['verification_code'];
if ($verificationCode === '') {
return $view->render(
$response,
$template,
['error' => 'Please enter the verification code.']
);
}
$twilioClient = $this->get('twilioClient');
$verification = $twilioClient
->verify
->v2
->services($_ENV['VERIFY_SERVICE_SID'])
->verificationChecks
->create($verificationCode, ["to" => $phoneNumber]);
return ($verification->status === 'approved')
? $response
->withHeader('Location', '/upload')
->withStatus(302)
: $view->render(
$response, $template, ['error' => 'Invalid verification code. Please try again.']
);
}
return $view->render($response, $template);
});
```
As before, $app->map() is called to define the route with the path /verify, which can accept both GET and POST requests. The route's handler starts by retrieving the user's email address, username from the session, and uses it to retrieve the user's phone number from the known participant's database. After that, it sets the template to render and retrieves the view service from the DI container.
Then, it checks if a POST request was made. If so, it retrieves the verification code submitted in the request. If the code is empty, it renders the route's template, passing in an error message to display.
If the code was not empty, it attempts to validate it; again, using Twilio's Verify API, storing the response, a VerificationInstance object, in a new variable, $verification.
From this object, the app can determine if the code validated successfully, by checking the value of the status property. If it is set to approved then validation succeeded, so the user is redirected to the upload route. If validation failed, the user is shown the original form, along with an error message stating that the validation code was invalid.
status can have one of three values: pending, approved, and canceled.
The route's handler ends by implicitly checking if a GET request was made. If so, the user is shown the form, where they can submit the verification code.
Create the route to upload the image to the S3 bucket
As with the validation route, two things need to be done to create the upload route:
Create the route template.
Define the route.
As before, start by creating the template file, resources/templates/upload.html.twig and open it in your IDE or text editor. Then, in that file, paste the following code.
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Upload Your Image</title>
<link href="/css/styles.css" rel="stylesheet">
</head>
<body>
<div class="min-h-screen flex items-center justify-center bg-gray-50 py-12 px-4 sm:px-6 lg:px-8">
<div class="max-w-md w-full space-y-8">
<div class="mt-8 space-y-6">
<h1 class="title">
Please upload your image
</h1>
</div>
<form method="POST" enctype="multipart/form-data">
<div class="rounded-md shadow-sm">
<div class="mb-4">
<label for="image"
class="label mb-2 block">Image</label>
<input type="file"
id="image"
name="image"
accept="image/jpeg, image/png">
</div>
<button type="submit" class="btn">
Upload Image
</button>
</div>
</form>
</div>
</div>
</body>
</html>
```
Similar to the default route's template, this code contains a form with two elements:
A file input field, named image, where the user can select an image file to upload.
A button to submit the form.
It also uses the default stylesheet that you downloaded earlier.
Next, it's time to define the route. To do that, after the default route's definition in public/index.php, paste the following code.
```php
$app->map(
['GET', 'POST'],
'/upload',
function (Request $request, Response $response, array $args)
{
$template = 'upload.html.twig';
$view = $this->get('view');
if ($request->getMethod() === 'POST') {
// TODO: Handle uploading the image to the S3 bucket here...
}
return $view->render($response, $template);
});
```
As before, $app->map() is called to define the route with the path /upload, which can accept both GET and POST requests. The route's handler starts by defining the template to render and retrieving the view service from the DI container.
Then, it checks if a POST request was made. If so, it retrieves the image file submitted in the request. You can access this file using $request->getUploadedFiles()['image'].
Next, you need to upload the image file to the S3 bucket by following these steps:
a. Retrieve the Amazon S3 client from the DI container by calling $this->get('s3Client').
b. Use the Amazon S3 client's putObject method to upload the image file to the S3 bucket. The code should look something like this:
```php
$file = $request->getUploadedFiles()['image'];
if ($file->getError() === UPLOAD_ERR_OK) {
$s3Client = $this->get('s3Client');
$result = $s3Client->putObject([
'Bucket' => $_ENV['AWS_BUCKET'],
'Key' => $file->getClientFilename(),
'Body' => fopen($file->getRealPath(), 'r'),
]);
}
```
c. Once the image file has been uploaded successfully, redirect the user to the /success route by calling $response->withHeader('Location', '/success')->withStatus(302).
If a GET request was made, then the template is rendered, ready for the user to select an image file to upload.
6. Test the app
To test your app, follow these steps:
a. Start the PHP development server by running `php -S localhost:8000` in your terminal while you're in the root directory of your app.
b. Open a web browser and navigate to http://localhost:8000/.
c. Enter your email address in the form and click on the "Submit Email Address" button.
d. Check your phone for a text message containing the verification code.
e. Enter the verification code in the form and click on the "Submit Verification Code" button.
f. If validation was successful, you should be redirected to the image upload page. Select an image file to upload and click on the "Upload Image" button.
g. Check your Amazon S3 bucket for the uploaded image file.
h. If everything worked as expected, congratulations! You've successfully built an app that can verify users before letting them upload images to an S3 bucket using Twilio Verify API and Amazon S3 services.
Nov 23, 2021
4,789 words in the original blog post.
Group texts have become an essential tool for businesses to communicate effectively with their employees. With the majority of text messages being read within 30 minutes of receipt, group texting ensures that important information is seen and responded to in a timely manner. Twilio Conversations offers a reliable solution for initiating conversations between multiple people over various channels. Adding someone to a group text can be done easily across different devices such as iPhones, Android phones, and WhatsApp. By utilizing group texts, businesses can enhance their communication plan and increase productivity among employees.
Nov 23, 2021
712 words in the original blog post.
Twilio, a cloud communications platform, has announced the winners and finalists of their inaugural Startups Awards event. The awards celebrate innovative startups that use Twilio's APIs to build advanced communication experiences for customers worldwide. The overall winner was Vien Health, a health tech startup from Texas, USA. Other notable participants included HiJiffy, Vxt, Frankie, VoiceIQ, Legitify, Rowy, Safer Management, Voiceable, Chatgenie, Wishroute, Audience Republic, Mobiz, and Lisnic. These startups leverage Twilio's APIs for various communication channels such as SMS, voice, email, and video to enhance customer engagement and support.
Nov 23, 2021
1,491 words in the original blog post.
The integration of voice biometrics into Twilio's contact center platform, Flex, can help create friendly and natural ways to verify who is speaking on the phone. This technology can replace traditional security questions with a more secure and user-friendly method of verifying identity. Veridas Voice Biometric Authentication solution services facilitate the registration of a user’s biometric credentials when calling a contact center. Later, any agent will be able to verify or identify that person through their voice. The integration process involves setting up Twilio Flex accounts, installing necessary plugins and packages, creating web components, configuring functions, and testing the plugin.
Nov 19, 2021
3,212 words in the original blog post.
The Twilio Verify API now supports TOTP, which is a stronger authentication method compared to OTPs delivered via SMS or email. TOTPs work offline and are based on a standardized algorithm, making them suitable for use without PII and with various authenticator apps. To get started with Verify TOTP in under 5 minutes, users need a Twilio account, a Verify Service, and an authenticator app of their choice. The API creates a new TOTP Factor that connects the user (identity), the TOTP channel, and the application. Users can customize settings like code length and time step.
Nov 18, 2021
672 words in the original blog post.
Twilio has expanded its Verify API solution to include Time-based One-time Passcodes (TOTP) in public beta, offering a secure and low-cost second factor verification for applications. TOTP is a common form of two-factor authentication that generates expiring codes using a secret key and current system time as inputs. Unlike SMS OTPs, TOTP does not rely on cellular data or WiFi for code delivery, providing user-friendly account security. Verify TOTP eliminates telecom costs associated with OTPs and offers a scalable and predictable cost model. Twilio Verify supports various authentication methods, including SMS, Voice, Email, Push authentication, and now TOTP, helping businesses protect users while offering seamless UX and managing costs.
Nov 18, 2021
478 words in the original blog post.
This article provides a step-by-step guide on how to detect objects in a Twilio Programmable Video application using TensorFlow.js, a popular open-source machine learning library. The setup includes creating an account with Twilio and generating API Key SID and API Key Secret. The process involves importing TensorFlow.js and the coco-ssd model into the video.html file to detect objects defined in the COCO dataset. An estimate function is then created to load the model, get predictions, and pass those predictions to a renderPredictions function that displays the predictions along with a bounding box on the video canvas. The final code is provided for both assets/video.html and assets/index.js files. The author suggests potential applications of this technique such as building collaborative games or detecting mask-usage in videos.
Nov 16, 2021
1,353 words in the original blog post.
Acqueon Engagement Integration has been designed for Twilio Flex to provide businesses with a validated integration for outbound campaign management. The partnership between Acqueon and Twilio offers enhanced outbound operations, including leveraging the Twilio Flex programmable contact center platform for multichannel communications, supporting progressive and predictive dialing modes, enabling any Twilio Flex defined agents to participate in outbound campaigns, using Task Router and Twilio-defined skills for work distribution, adding a comprehensive set of campaign management capabilities with integrated compliance checks, and more. The integration supports various dialing modes and includes features like Configurable Call Progress Analysis (CPA) and Answering Machine Detection (AMD). Acqueon Engagement also provides an import utility, pre-built integrations, and APIs to load contacts from multiple sources.
Nov 16, 2021
436 words in the original blog post.
A movement towards bringing equity to the business world has gained momentum since 2020, driven by events such as the COVID-19 pandemic and the Black Lives Matter movement. Consumers, employees, and investors now expect companies to prioritize social good alongside profitability. Companies like Rothy's, Lyft, and Twilio have successfully integrated social impact into their business strategies, with Rothy's focusing on sustainability, Lyft using transportation to drive equity, and Twilio aligning its communication services with non-profit organizations. To build social impact into your business, start by defining a clear mission, anticipate and adapt to challenges, and influence leaders to prioritize equity. By doing so, you can create long-term value, meet stakeholder expectations, and establish a strong brand identity.
Nov 15, 2021
1,512 words in the original blog post.
Validity Period is a feature in Twilio's messaging platform that determines how long messages remain relevant before becoming stale. It ensures users do not receive outdated information due to delivery delays caused by factors such as carrier compliance and service disruptions. The default value for Validity Period is 4 hours, but it can be adjusted based on the specific use case. For promotional messages, a range of 3600-14400 seconds (1-4 hours) is recommended, while verification messages should have a shorter range of 5-300 seconds. It's crucial to set an appropriate Validity Period value to maintain deliverability and avoid delivery delays.
Nov 12, 2021
749 words in the original blog post.
This tutorial introduces the Twilio Runtime, a serverless hosting platform that can be used with the Twilio Serverless Toolkit for deploying Vue.js applications. The requirements include a Twilio account, Node.js version compatible with Twilio Functions, and Yarn package manager. To follow this tutorial, users need to create a new Vue application or use their own existing one. They then add Twilio Serverless support to the project by installing the Twilio CLI and the Twilio Serverless Toolkit plugin. The deployment process involves building the Vue application using yarn build and issuing the twilio serverless:deploy command with appropriate options. The final step is to create a default index page for the deployed application.
Nov 12, 2021
1,890 words in the original blog post.
This article provides an in-depth tutorial on how to use Goutte, a lightweight PHP library for web scraping, to extract data from external websites directly within your PHP script. The author guides readers through the process of installing and setting up Goutte, as well as demonstrating its functionality with practical code examples. Topics covered include finding HTML elements using CSS selectors or HTML tags, extracting text from HTML elements, clicking links and filling out forms, and parsing innerHTML. The article also touches on Goutte's limitations compared to more heavyweight web scraping libraries like Puppeteer or Selenium.
Nov 11, 2021
2,271 words in the original blog post.
This article demonstrates how to integrate Twilio and Segment to personalize your IVR system using customer interaction data. The integration allows for improved product experiences, tailored marketing messages, and customized customer service based on individual needs. By leveraging Segment's vast amount of information about customers, users can prioritize critical issues and route calls effectively. The tutorial provides step-by-step instructions on setting up the developer environment, creating data in Segment, configuring computed traits and audiences, reading and writing Segment data with Twilio Functions, and acting on Segment data from Twilio Studio.
Nov 11, 2021
2,295 words in the original blog post.
VHT's Mindful Callback technology allows customers to skip hold times when calling customer service by offering an automated callback option. This integration works as a natural extension of Twilio Flex contact center, enabling virtual queueing during high volume periods and automating callbacks. The solution is cloud-based and available for customers of all sizes with contact centers around the globe. It can be integrated natively into Twilio Flex to enable agents to interact directly through their desktop without switching tabs.
Nov 10, 2021
434 words in the original blog post.
The Firebase team has introduced three new extensions that bring the power of Twilio APIs to your Firebase application, making it quicker and easier to assemble your applications. These new extensions are Send Messages with Twilio, Sync Contacts with SendGrid Marketing Campaigns, and Send Abandoned Cart Reminders with SendGrid. The code for these extensions is open source and available in the Twilio Labs GitHub organization.
Nov 10, 2021
368 words in the original blog post.
In this tutorial, we learn how to create an OCR communication app using Tesseract.js and React. The project is divided into two parts: part one covers the front end development, while part two focuses on back end development and testing of the app. We start by setting up a Node.js server in the root directory of the project and store Twilio credentials in an .env file. Then, we create a proxy definition to package.json to prevent same origin policy errors when sending requests from the front end to the back end API server. Next, we retrieve Twilio credentials from environment variables and configure the endpoint for sending SMS. Finally, we test the app by running it in two terminal windows and checking its behavior. The completed app allows users to process images with OCR, edit the recognized text, and send the processed text as an SMS to a specified phone number.
Nov 10, 2021
970 words in the original blog post.
This tutorial demonstrates how to create an OCR communication app using React and Tesseract.js, an open-source OCR library that supports over 100 languages. The app allows users to upload images, perform OCR processing on them directly in the browser, edit the recognized text as needed, and send it as an SMS to a specified phone number. The tutorial is divided into two parts: part 1 covers project setup and front-end development, while part 2 covers back-end development and testing of the app. The app's structure includes a front end for displaying image upload buttons, OCR processing buttons, text editors, and SMS sending fields, as well as a back end using Node.js and Express to handle the SMS sending process.
Nov 10, 2021
2,270 words in the original blog post.
In this tutorial, you will learn how to set up environment variables in IntelliJ IDEA for a Java project. The requirements include having the Java Development Kit (JDK) version 8 or newer and IntelliJ IDEA Community Edition installed. To begin, start a new Java project in IntelliJ IDEA by creating a Gradle project with Java selected. Next, configure environment variables by navigating to Run > Edit Configurations... and adding the necessary variables in the Environment variables section. After that, create a Java class named "SMSApp" and define the environment variables using System.getenv(). Finally, run the application to ensure the environment variables were set correctly. This tutorial provides an essential foundation for configuring environment variables in IntelliJ IDEA for Java projects, allowing you to work with APIs and add API keys to your future projects.
Nov 07, 2021
708 words in the original blog post.
This tutorial teaches how to create a landing page that captures contact details of potential buyers and notifies the owner through email and SMS using Twilio API and PHP. The prerequisites include basic knowledge of HTML, CSS, Bootstrap, and PHP. The process involves creating a landing page with a functional form, validating and sanitizing form requests, integrating Twilio SMS API, and testing the functionality.
Nov 04, 2021
2,150 words in the original blog post.
This article provides a step-by-step guide to handling file uploads from Node.js to Express using third-party libraries like form-data and axios. It covers setting up the app structure, scaffolding the Node.js app, installing dependencies, writing code to upload files, processing form data with Multer middleware, and testing the application. The author also shares their experience of developing a CLI in Node.js that helps convert Markdown files to Google Docs format and upload them to authenticated Google Drive accounts.
Nov 03, 2021
1,447 words in the original blog post.
Twilio Flex, a digital contact center platform, announced updates during its annual conference, SIGNAL 2021. The company introduced Flex One, a single API that enables any digital channel for customer engagement in one place. It also released Flex UI 2.0, which is more accessible to people with disabilities and built on Twilio's design system, PASTE. Additionally, the company announced Flextensions, pre-built partner plugins for faster Flex deployments. Twilio showcased several customer success stories during SIGNAL, highlighting how companies like Allianz Direct, Norwegian Refugee Council, and Lyft use Flex to support their unique business needs.
Nov 03, 2021
1,389 words in the original blog post.
The article discusses a panel discussion at the 4th Annual Sistas In Sales Summit, focusing on how women in sales can balance work and family life during the COVID-19 pandemic. The panelists shared their experiences juggling childcare, remote working, and maintaining productivity. They emphasized the importance of having a flexible corporate culture that supports nursing mothers and offers time for employees to unplug and revive. Automation, delegation, and elimination were suggested as ways to reduce time spent on tasks. The panelists also discussed setting boundaries between work and family life, marking their territory with dedicated spaces or time blocks, and giving themselves a break when needed. They highlighted the evolving nature of sales careers in technology companies like Twilio and encouraged women to give themselves grace while navigating these challenges.
Nov 02, 2021
1,890 words in the original blog post.