Explore volume pricing tailored to your needs
First name is required
Last name is required
Work email is required.
tick greenred cross
Valid phone number is required
Detailed Requirement is required.
Primary Usecase is required
Thank you icon
Thank you for your submission.

Volume pricing starts at 200,000 units/ month. For lower volumes, check our standard pricing

Thank you for your interest in Plivo.
Unfortunately, based on the information you provided, we are unable to provide service at this time.
We apologize for any inconvenience this may cause and appreciate your understanding.

Thanks for your interest in Plivo. We have two account options available to meet customers’ varying needs:

  • Self-service: no commitment, standard pricing, free basic support.
  • Committed spend agreement: guided implementation, premium support options, and discounted rates. These packages involve an annual contract starting at $750 a month.
Based on the information that you provided, a self-service account seems like the right fit for your business. Use the links below to get started:
If you’d like to discuss a committed spend agreement, please provide us a bit more information by filling out this form.
Oops! Something went wrong while submitting the form.
Fill out Calender form
checks
You’re all set!
Thanks for submitting the form! Our team will reach out to you soon.
Featured

Top 7 SMS OTP service providers to secure your customers | How to choose the right one?

May 22, 2024
7 mins

Choosing the right OTP provider requires defining your requirements and goals, vetting various providers, and understanding how well each solution works with your existing tech stack. 

At the most practical level, your SMS OTP service provider should give you all the features you need to deliver OTPs to your customers. 

Every SMS one-time passcode (OTP) service provider is different. 

Some providers offer a more extensive network of carrier partnerships, enabling you to send OTPs worldwide with better deliverability. Others focus on building a strong infrastructure to manage domestic OTP deliveries. 

OTP providers also vary in the availability and flexibility of APIs and SDKs for integration into existing systems, impacting the ability to customize and implement the OTP experience in your existing tech stack. 

Choosing the right OTP provider requires defining your requirements and goals, vetting various providers, and understanding how well each solution works with your existing tech stack. 

In this guide, we’ll explain the features you need to look for in an SMS OTP service provider, the top seven most popular SMS OTP service providers in the market, and how to choose the right one for your needs. 

What features should I look for in an SMS OTP service provider?

Consider eight features when choosing an SMS OTP service provider. 

  • Time-to-deploy 
  • SMS OTP conversion rates
  • Fraud detection
  • Security and compliance
  • Analytics and tracking
  • Integrations
  • Customer support
  • Price

1. Time-to-deploy 

Developers already have enough on their plates— and adding a complicated tool t that requires intensive onboarding and implementation is counterproductive to achieving your other development needs. 

When selecting an OTP provider, look for services that require minimal setup. This will allow your team to start sending OTPs with little to no downtime. 

Your SMS OTP service provider should also provide clear documentation and SDKs that make it straightforward for developers to integrate OTP with your platforms, significantly reducing the time and resources needed for deployment.

2. SMS OTP conversion rates 

One of the most frustrating experiences a customer can have is receiving a delayed OTP, or worse, not receiving an OTP at all. Delayed or undelivered OTPs can cause anxiety, potentially leading the customer to abandon the transaction or lose trust in your brand. 

Verify that an SMS OTP provider has high delivery rates to ensure that your customers can receive and act upon OTP messages.

3. Fraud detection

In international markets, OTPs in SMS and voice channels are particularly susceptible to SMS Pumping fraud. 

Advanced fraud detection should include dynamic risk assessment algorithms that adapt to emerging threats and unusual patterns. 

4. Security and compliance

When assessing the security and compliance of an OTP service provider, there are two key aspects you need to consider: data encryption and regulatory compliance. 

End-to-end encryption ensures that an OTP is encrypted at the origin and only decrypts at the receiver’s device. This protects the OTP message from being intercepted or read by hackers. To verify the robustness of the encryption, look for an OTP service provider that uses recognized standards like AES (Advanced Encryption Standard) with a suitable key length (e.g., 256-bit).  

Additionally, look for OTP service providers that adhere to data protection regulations like the General Data Protection Regulation (GDPR) in the European Union, the California Consumer Privacy Act (CCPA), and the Health Insurance Portability and Accountability Act (HIPAA) as they are mandatory for different countries. 

5. Analytics and tracking

Choose an SMS OTP service provider that offers detailed analytics and tracking. Real-time insights into OTP delivery rates and failures help identify issues as they arise. 

Custom reports with a trend analysis of KPIs, such as success rates of OTP deliveries across different regions, can highlight areas for improvement, whether in technology or carrier partnerships. You can also leverage these reports to make strategic decisions and draw behavioral insights. 

6. Integrations

Even the most robust OTP provider must play well with your existing tech stack. Think about which platforms you need your OTP tool to communicate with. Does this OTP solution fit your long-term technological needs? 

Plivo, for example, integrates with most popular tools including Zapier, Microsoft Power Automate, Integromat, Pipedream, Integrately, GitHub Actions, EngageBay, and more. 

7. Customer support

Look for an SMS OTP service provider that is available 24/7. This level or service translates to immediate assistance, minimized downtime, and enhanced reliability. Having multiple support channels, such as email, phone, web-based chatbots, and SMS, will also provide more convenience, accessibility, and personalization for your company. 

8. Price

There’s no getting around pricing. Look for an OTP service provider with clear, straightforward pricing. Most OTP providers offer multiple pricing plans; look for one designed to scale with your business as you grow. Check out Plivo’s pricing.

The 7 best SMS OTP service providers for security and reliability

Here are our top seven picks for the best OTP service providers. Read a detailed analysis of why we chose these platforms below. 

1. Plivo 

Key features

  • Turnkey single-API solution: All you need to do is integrate using a single API with Plivo and it’ll take care of the heavy lifting. For instance, Plivo keeps numbers ready for usage, so customers do not need to purchase any numbers separately. Bottom line: Plivo customers can conveniently use a secure solution without worrying about compliance issues. 
  • Multichannel support: Plivo supports both SMS and voice OTP to ensure businesses have the flexibility they need to authenticate users. 
  • High deliverability: Verify API enjoys specialized routes from carriers that are not available with the SMS API. It also uses intelligent routing to identify optimal routes and number types for enhanced conversions. Plivo also ensures sender ID and template compliance to ensure carriers do not fail them due to compliance issues.   
  • Built-in fraud control: Plivo’s Fraud Shield includes an autopilot mode to help you monitor your messaging patterns, build thresholds for each country, and automatically send alerts with irregular patterns. 

You can fine-tune and override messaging throughput thresholds for each country and access an in-built reporting to evaluate your cost savings from preventing fraud attacks using Fraud Shield. 

  • Support: Premium 24-hour support, comprehensive documentation, seven global points of presence, and 99.99% uptime SLAs are available. 
  • No additional costs: Plivo has straightforward pricing plans where you only pay for what you use. There are no charges for authentication, regulatory compliance, fraud shield, and SMS verification, making it an ideal solution for those on a modest budget. 

{{cta-style-1}}

Pros 

  • Supports SMS OTP delivery in 220+ countries 
  • High deliverability rates, minimizing SMS failures
  • Customizable OTP templates for a personalized user experience
  • Detailed analytics for tracking OTP success rates
  • Robust security features protect data integrity
  • Comprehensive API and documentation support ease of integration
  • Scalable solutions cater to businesses of all sizes
  • 99.99% uptime SLAs available with 24-hour support 

Cons

  • The vast array of features can be overwhelming for new users.

Most suitable for Companies that need a scalable, customizable SMS OTP solution with extensive integration capabilities, security, and reliability. G2 rating: 4.5 stars, 724 reviews 

2. Twilio

G2 rating: 4.2 stars, 467 reviews

Key features

  • Multichannel authentication support: Twilio provides APIs that enable you to send OTPs through SMS, passkeys, WhatsApp, email, voice, and TOTP (authenticator apps like Authy and Google Authenticator), going beyond traditional email and website communication.
  • Fraud monitoring: Twilio uses one API endpoint to validate users and detect fraud. It also lets you customize geo-permissions, rate limits, and other fraud controls. 

Pros 

  • Wide range of additional communication channels available
  • Extensive API for custom integrations and workflow automation
  • Fraud detection and security features to protect customer data
  • Real-time analytics dashboard to monitor and optimize OTP deliveries
  • Global reach with localized number support

Cons

  • Steeper learning curve due to platform complexity
  • Pricing can become expensive as usage scales.

Most suitable forTech-savvy businesses and developers seeking a robust, customizable OTP solution.

3. Authkey.io 

G2 rating: 4.8 stars, 6 reviews  

Key features

  • Multichannel support: Authkey.io supports SMS, email, and voice OTP. 
  • Live analytics: It gives detailed analytics about OTP delivery, failure, and latency reports. 

Pros 

  • Cost-effective solution for businesses on a tight budget
  • User-friendly platform ideal for those new to OTP services
  • API support for straightforward integration
  • Quick and easy setup with minimal configuration required
  • Responsive customer support team

Cons

  • Limited advanced features for complex implementations
  • Somewhat restricted global coverage compared to larger providers

Most suitable forStartups and small to medium businesses looking for an affordable, reliable OTP service with basic features.

4. Exotel

G2 rating: 4.3 stars, 80 reviews

Key features

  • Real-time analytics: Exotel provides real-time analytics and delivery reports, allowing businesses to track the status of each OTP code sent. 
  • Customizable OTP timers and lengths: Exotel allows users to customize the length of the OTPs and set timers for how long an OTP is valid. 

Pros 

  • Simple and intuitive user interface
  • A reporting dashboard with conversational AI 
  • An extensive reach in the Asia-Pacific (APAC) and Southeast Asia (SEA) 
  • High delivery speed for OTPs

Cons

  • Limited global presence 

Most suitable forBusinesses primarily operating in APAC & SEA, as they have an extensive network in this region.

5. SMSCountry

G2 rating: 4.8 stars, 2 reviews  

Key features

  • Quick integration: SMSCountry allows you to send OTPs directly from anywhere with an easily integrable SMS API that supports several applications through SDK, XML, Web, and HTTP-API plug-ins.
  • Compliance and security: The OTP provider is powered by 100+ direct-to-carrier connections in 180+ countries, enabling users to send OTPs internationally. 

Pros 

  • Easy to use and integrate, reducing time to market
  • Supports 180+ countries
  • Cost-effective for businesses mindful of budget constraints
  • Real-time delivery reports for tracking OTP status
  • Dedicated account management and 24/7 customer support

Cons

  • Limited functionality for advanced customization needs
  • Fewer global direct carrier connections may affect delivery in certain regions.
  • No option to add team members from the dashboard

Most suitable for SMBs seeking a reliable, no-frills basic OTP service that's both affordable and easy to implement.

6. MSG91

G2 rating: 3.9 stars, 47 reviews  

Key features

  • Built-in IP security: The OTP service provider comes with in-built IP data security that ensures the flow is halted when an unusual login is attempted to prevent potential fraud activities. 
  • Multichannel support: MSG91 supports multiple channels including SMS, email, Voice, and Whatsapp. 

Pros 

  • Robust APIs for flexible OTP service integration
  • Comprehensive analytics for insights into OTP performance
  • Global coverage ensuring worldwide OTP delivery
  • Advanced data security protocols for customer data protection
  • Scalable pricing model that accommodates growing businesses
  • Exceptional uptime and reliability track record

Cons

  • Pricing transparency could be improved for clearer budget planning.
  • The platform's extensive features present a learning curve.
  • Limited reports—only offers a pre-selected timeframe for accessing reports. 

Most suitable forBusinesses that need multichannel support with other basic functionalities of an OTP provider.

7. TeleSign

G2 rating: 4.5 stars, 4 reviews 

Key features

  • Global coverage: Telesign’s verification API can authenticate customers across 230 countries and over 80 languages. 
  • Dynamic routing: The OTP provider’s API intelligently routes messages using the most effective routing available to provide high-speed delivery. 

Pros 

  • Extensive global network for reliable OTP delivery across different regions
  • Support for a wide range of languages and localizations
  • Developer-friendly APIs and SDKs for easy integration

Cons

  • Inflexible pricing plans with plenty of friction in free trials 
  • Significant delay in receiving OTPs 
  • Lacks accurate number validation 
  • Doesn’t support its entire list of countries and numbers 

Most suitable for Startups and small businesses needing a simple, budget-friendly OTP solution.

How to choose an SMS OTP service provider?

There is a wide range of SMS OTP service providers on the market right now—but how do you decide which one meets your needs best? 

If choosing an OTP provider feels daunting, here are six steps to help: 

Step 1: Determine your OTP requirements and goals

Before diving into the selection process, get clear on your specific needs for an OTP service. Consider things like the data security level of your application, the volume of OTPs you'll need to dispatch, and whether you anticipate significant growth as this will require a scalable solution. 

Step 2: Look at key features

Jot down a list of the must-have and nice-to-have features you need from your OTP provider, like high deliverability rates, speed of OTP delivery, the ability to customize your OTP messages, and authentication flows. 

Step 3: Research the best OTP service providers

Begin your search by compiling a list of potential OTP providers. Read online reviews, testimonials, and case studies to explore each provider's reputation. 

Step 4: Set your OTP provider budget

Seek out pricing plans that offer transparency and don't hide fees in the fine print. Consider how the pricing structure fits your expected volume of OTP messages and whether the provider offers the scalability you need without increasing costs.

Step 5: Check for integration support

Look for providers that offer robust support for integration, including SDKs, APIs, and comprehensive documentation. These tools and resources will significantly smooth the integration process and reduce the time to deployment.

Step 6: Test, analyze, and report on ROI

Once you’ve set up your new OTP system, take measures to determine its return on investment. The goal is to have an efficient tool with a positive ROI. 

The bottom line is that regardless of which OTP service provider you choose, it must deliver on your goals. It should give you complete control and flexibility over how, when, and where you want to send OTPs.  

Get started with Plivo today

Choosing the right SMS OTP service provider involves considering key factors. Start by understanding your business’s needs and goals, listing out specific of your must-have and nice-to-have features like customization, global presence, and customer support. 

Think Plivo might be the perfect OTP SMS service provider for your needs? Find out today with a trial

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Apr 14, 2025
5 mins

Support Agents: Who Are They, and What Do They Do?

Support agents serve as a middle ground between your company and its customers. Let’s see some steps to hire the best and build a functional team.

Needless to say, ​customer support is a vital organ for business success, directly affecting customer satisfaction, loyalty, and revenue. In fact, a study notes that in 2024, poor customer experiences cost organizations worldwide an estimated $3.7 trillion, marking a 19% increase from the previous year.

Customers often switch companies if they don't receive good customer service, regardless of product satisfaction. Conversely, they are often willing to go out of their way to do business with a company that offers better service. 

Support agents for eCommerce companies

Support agents are at the forefront of delivering these sensitive experiences, making their role crucial in fostering customer relationships and driving business growth.​

In this article, we’ll explain who they are, what they do, the essential skills needed to become one, and some steps to build your support team with the best support agents.

Who are support agents (and who are they not)?

A support agent is a trained representative of your company primarily tasked with resolving customers' complaints, answering inquiries, and providing usage guidance on your company’s products and services.

Beyond handling tickets, they also provide emotional support by ensuring customers feel heard, valued, and reassured throughout the interaction. This, in turn, strengthens customer trust and loyalty.

Support agents play a vital role in enhancing customer satisfaction—which indirectly drives ROI through repeat purchases—but they are not sales representatives or marketers. Marketers and sales reps acquire customers and sell. 

On the other hand, support agents retain these customers and boost repeat purchases through efficient assistance.

4 primary responsibilities of a support agent

A support agent's primary responsibilities include serving as the first point of contact, handling queries, providing proactive support, and gathering essential feedback.

1. Serving as a brand's first-line contact

When things go wrong, customers become frustrated and demand to speak with anyone—even the CEO. Your support agents step in to act as the first line of defense, de-escalate situations, and provide solutions professionally. 

They also represent your brand through every empathic response, ensuring customers leave with a positive experience and a lasting impression of excellent service.

2. Handling customer inquiries

Customer support agents handle all customer inquiries. Depending on the technicality of the query, they might sometimes involve a specialist or higher executive. 

For instance, if a customer has a dispute over billing that involves policy exceptions, your agent might need to coordinate with or escalate to a higher executive for approval.

3. Providing proactive support

Support agents detect customer needs ahead of time and promptly contact them even before they log a complaint. This helps reduce inbound tickets and boosts customer satisfaction. 

As an omnichannel customer support platform, Plivo CX’s proactive service enables your support team to provide a more refined and automated proactive support.

Image showing Plivo CX's proactive service tool
Reduce inbound tickets by proactively addressing customers’ needs

4. Gathering feedback to optimize product offerings and marketing

Your support agents are the most valuable source of feedback since they interact with customers daily. They can help you gather recurring concerns, pain points, and suggestions that drive meaningful product improvements. 

Plivo CX’s metrics tool automates this feedback collection process and ensures your agents focus on core tasks instead.

Image showing Plivo CX's Metrics and Reporting tool
Automate CSAT feedback collection to optimize product offerings

Essential soft skills of a good support agent

Being a support agent involves not only resolving queries but also understanding and communicating with customers on a personal level. This is why certain soft skills, beyond technical competency, are essential when recruiting one.

Active listening and empathy

Active listening involves paying close attention to every word and emotion communicated rather than focusing solely on the problem. 

Unsurprisingly, active listeners excel at expressing empathy since they’re more likely to understand how customers feel better. This deeper connection allows them to communicate effectively, provide reassurance, and de-escalate tense situations.

Good communication skills

A good support agent must convey their points concisely while considering the appropriate tone. 

They know when to avoid passive-aggressive words such as “actually, ought to,” colloquialisms, and slang to maintain clarity.

Comparison between negative and positive communication tone
Good support agents adopt a positive communication tone to address customer complaints

Adaptability

Different customers present with different complaints, personalities, and communication styles. Some are patient and easy to communicate with, whereas some are aggressive and impatient. 

So, a one-size-fits-all approach won’t work, and that’s why an ideal support agent must be able to adapt to each high and low while maintaining efficient support delivery.

Problem-solving skills

Customer support playbooks are valuable, but not every customer complaint will fit neatly into predefined solutions. Situations like this require your support agent to think outside the box while staying within your company’s guardrails. 

A good support agent must be able to devise quick solutions to new problems and escalate as soon as possible when necessary.

6 steps to hire the right support agent and build a functional support team

Your support team can either make or mar your business. Hiring the right agent and building a functional team is, therefore, essential. Let’s see how to do that.

1. Define your staffing needs and ideal agent

You can figure out how many support agents to hire based on your historical ticket volume, scale of business expansion, and anticipated growth in the next quarters. This ensures you don’t over-hire and bloat your expenses or under-hire and cripple your support delivery. 

Plivo CX’s reporting and metrics tool provides a comprehensive ticket summary, which helps you determine your historical ticket volume.

Image showing Plivo CX's Metrics and Reporting tool
Use your historical ticket volume to determine staffing needs

Simultaneously, you need to define who your ideal agent is—that is, the skills they should preferably possess, availability, technical proficiency, lingual capacities, and experience. You can diversify your recruitment process if you’re catering to multilingual audiences.

Once you’ve identified your staffing needs and ideal candidate profile, you can post your job listing on your company’s career page and on popular job boards like LinkedIn to attract qualified applicants.

2. Prioritize agents with empathy and problem-solving skills

You need a team of agents who can dialogue with different kinds of customers, resonate with them emotionally, and make them feel heard while providing adequate support. That’s why you should prioritize agents with empathy.

Also, look for agents with strong problem-solving skills—someone who can think quickly on their feet and provide solutions to out-of-the-script problems.

Tools like TestGorilla and Testify help you assess your applicant’s skills and ability to address different scenarios. For a more tailored assessment, present candidates with real scenarios or past customer complaints from your database and ask them to resolve the issue.

3. Test for relevant technical competency

Technical competency is your support agent’s ability to resolve customers’ technical queries. This could include troubleshooting software issues and providing answers to product-specific technical queries.

Usually, your agents don’t need to be tech geeks or specialists for L1 tickets. An entry-level customer support agent with the necessary soft skills can do a great job here.

However, it’s a different ball game for agents managing L2 and L3 tickets. They should have the necessary expertise to manage complex and product-related technical issues like specialists. 

This primarily hinges on their hard skills portfolio, which you need to consider when hiring. Provide real-world scenarios to assess these skills and ensure they genuinely have what it takes to be your ideal agents.

4. Provide comprehensive agent training

From the onboarding stage, you need to identify the gaps in your hires’ competencies and design individualized or group training to boost their efficiency. Training can include soft skills, lingual capacity, and upskilling hard skills for more proficiency.

Agent training is not a one-time process. Plivo CX’s coaching tools help your agents leverage past interactions with customers to continuously refine their delivery—how to respond or handle similar situations when they arise again.

Image showing Plivo CX's coaching tools
Provide continuous training with Plivo CX’s coaching tools

5. Equip your support agents with AI-powered tools

Gartner notes that more than 80% are either using or planning to integrate AI-powered chatbots in 2025. Advanced chatbots are essential because they can handle the majority of L1 tickets, thus freeing up your agents to do other complex tasks.

An example is Plivo CX’s openAI-powered AI chatbot, which can leverage your database in real time to make decisions, autonomously handle refund requests, modify orders, and make personalized recommendations.

Image showing Plivo CX's AI chatbot in action
Enhance customer support with AI-driven multilingual chatbots

Your team also needs an omnichannel platform that centralizes all communication channels into a single dashboard. This allows agents to access everything they need without constantly switching tabs, ultimately improving response time and efficiency.

An example is Plivo CX’s unified agent desktop designed to eliminate data silos, unify all incoming customer requests, and integrate with homegrown systems, CRM, ERP, helpdesk, and more.

Image showing Plivo CX's UAD in action
Centralize customer support with unified agent desktop

6. Establish KPIs and reasonable expectations

Establish KPIs, such as first response time, average resolution time, and first contact resolution, to assess the efficiency and effectiveness of your support agents. 

Customer Satisfaction Scores (CSATs) will help determine whether customers are getting the help they need and how they need it.

Plivo CX’s agent metrics and reporting tool enables you to monitor and measure your support agent’s performance while exposing gaps that need filling.

Image showing Plivo CX's Metrics and Reporting tool in action
Monitor and measure agent’s performance to identify areas for improvement

You also need to set individualized, SMART expectations and goals for your support agents. Ensure each agent does not handle more tickets—whether in quantity or complexity—than they can. This will reduce the incidence of customer service burnout and enhance the quality of your support delivery.

Scale your customer support operations with Plivo CX

Hiring the right support agent is just one part of building a functional customer support team. You also need to provide them with the right tools to enhance their efficiency and effectiveness.

That’s where Plivo CX comes in. 

As an omnichannel platform designed to streamline support delivery, Plivo CX offers a unified agent desktop to centralize your support channels, multilingual AI-powered voice support, and OpenAI-powered chatbots to slash your ticket queue.

We also offer: 

  • Seamless integrations: Connect Plivo CX with your existing tools, including CRM, ERP, helpdesk, and more.
  • Data-driven optimization: Track real-time analytics and generate custom reports to gain insights into customer interactions and agent performance.
  • AI-enhanced efficiency: Prioritize urgent tickets, ensure brand consistency, and adapt quickly to changes with AI-powered support.
  • Rich communication: Enhance interactions with multimedia support, including images, videos, and documents.
  • Increased productivity: Streamline workflows with message templates, internal notes, and skills-based routing.
  • Comprehensive features: Leverage call recording, IVR, multi-language support, and robust security features for a complete solution.

Book a demo today and start building a world-class support team with Plivo CX.

Apr 3, 2025
5 mins

The Power of Multilingual Customer Support: 7 Must-Know Strategies

Multilingual customer support enhances user experience and expands global reach. Let’s explore its benefits and best practices for implementation.

It’s ten minutes past 2 pm. A new high-value customer submits a technical complaint—but, in Spanish. The problem? None of your service reps speak Spanish. 

Now, you have only two options.

First, you say, “Thank you for reaching out. We currently accept queries only in English. Please resend your message in English so we can assist you. Thank you for your understanding!

Or, you scramble from Google’s translator to other free versions of online interpreters, which might give you an inaccurate response. 

Whichever you choose, your customer will likely not find it encouraging. Your inability to efficiently serve customers in their native language passes a message; that they’re not a valued part of your brand. 

According to Hyken’s report, 65% of consumers want to be treated valuably. Failure to deliver this expectation results in a poor support experience, increased churn rates, and a negative brand reputation.

To avoid such outcomes, you need to implement multilingual customer support, and this article will show you how to do that.

What is multilingual customer support?

Multilingual customer support is the ability to provide consistent, high-quality assistance in multiple languages to your customers while accounting for geographical, cultural, and contextual differences that influence communication.

As your business scales, there is also an increasing need to serve a diverse market audience. This mandates your support team to be capable of sustaining interactions with individuals of different languages outside your native business borders.

Even within your business borders, you’re bound to interact with customers of different linguistic needs. According to the United States Census record, the number of residents who utilize other languages besides English has nearly tripled in the last decade. 

So, you must be ready to cater to this diversity once necessary.

Benefits of multilingual customer support

Multilingual support increases customer satisfaction, boosts retention, and ensures you can tap into diverse markets for more opportunities. Here’s how it does that:

Improved customer satisfaction

According to Unbabel’s 2021 multilingual CX report, one in three global consumers cite a lack of multilingual support as their top concern in localized customer experience. 

Uni- or bilingual provisions lead to frustration since your customers can’t express themselves the way they want, and this culminates in a bad customer experience. 

On the other hand, providing multilingual support can enhance customer satisfaction and boost your customers’ LTV. This explains why 64% say they will pay more for a service or product if the brand offers a multilingual support service.

Higher customer retention

57% of global consumers see it as a bias when a brand fails to offer multilingual support. Two in three will also switch to another brand if their current brand does not offer broader language support.

But what happens if you fill up this communication gap? 73% of respondents in Unbabel’s survey say they will remain loyal. 

This means multilingual provisions can help you retain your existing customers and also gain an edge over your competitors in attracting new ones. 

Interestingly, 40% of consumers will likely overlook poor customer service many times if it is offered in their native language. This gives you enough time to address issues plaguing your support delivery before customers bounce.

Broader reach and competitive advantage

Scaling your business often requires crossing borders and serving new audiences. Multilingual support ensures you can easily resolve the issues coming up in these regions, eliminate communication barriers, and rapidly build a robust brand reputation.

Also, multilingual support can serve as the spearhead of your competitive advantage in new markets. That’s because your potential customers will likely choose you over competitors who do not offer multilingual support, all things being equal. So, you can make it a focus of your marketing strategy.

7 must-know strategies to implement multilingual support

One in four consumers say they will not spend more than $500 on brands offering limited language support. You can avoid this by implementing a sturdy multilingual support system. 

Let’s go through how you can do that. 

1. Be upfront about your available language options

First, inform your customers and audience about your current capacity. Include the languages you support on your website, applications, social media profiles, and customer support pages. 

Image showing OpenPlanet’s response to a customer query
Be upfront with the languages you support

This helps to manage customer expectations and reduce frustrations pending the time you make provisions for multiple languages.

2. Embrace diversity in recruitment

The most direct approach to creating a multilingual support system is to recruit multilingual customer service reps. These reps are especially crucial for managing L2 and L3 tiers of requests that AI might not be able to handle.

Ensure you have at least one native or non-native representative for each region you serve. You can also organize language training for your existing service reps instead of overhauling the entire team. 

This reduces your employee acquisition cost and helps you work with people already in tandem with your support operations.

3. Use AI chatbots to provide multilingual support

Advanced AI chatbots use ML and NLP to analyze user inputs such as complaints and provide appropriate responses while leveraging customer data. This is like having an inbuilt translation system, making them a good fit for handling multilingual L1 requests regardless of the language.

As an omnichannel platform designed to scale your support team, Plivo CX offers an OpenAI-powered chatbot capable of handling multilingual tickets and addressing your customers in the language they choose.

Image showing Plivo CX's AI chatbot in action
Enhance customer support with AI-driven multilingual chatbots

4. Integrate multilingual voice support 

According to a 2024 report from Statista, 54% of customers prefer to resolve issues via phone calls over other digital channels and email. To cater to this group, you need to integrate multilingual voice support technology.

An example is Plivo CX’s voice software, which prompts your customers to choose their preferred language from over 27 supported languages right on the call.

With an integrated programmable IVR, your callers can self-select options for quicker routing, shorter wait times, and faster resolution.

Image showing Plivo CX's voice software
Eliminate communication barrier with multilingual voice support

5. Offer language preferences in self-service options

Self-service options include FAQs, knowledge bases, chatbots, AI-powered virtual assistants, and community forums. Your customers must be able to choose their preferred language of interaction on all of these platforms in order to cater to their needs.

Additionally, ensure that automated responses, IVR systems, and in-app customer support are available in multiple languages.

 Image showing Plivo CX's IVR software in action
Offer language preferences on voice IVRs

6. Train support agents in cultural sensitivity

Multilingual support should cater to lingua-cultural nuances that affect communication. Otherwise, you risk irking your customers. 

For instance, there are certain words or expressions that might be normal in American English but seen as aggressive in British English.

One example is the word “sure.” To an American, it’s simply a means of acknowledgment. But it could come off as passive-aggressive to a non-American. 

Train your support reps to understand these nuances and avoid them when speaking with individuals of different cultural backgrounds.

7. Localize knowledge base and FAQs  

Language location refers to adapting your website content to a visitor’s regional language based on factors like their browser settings, IP address, or geographical location. 

o do this, you first need to translate your knowledge base and FAQs into the different languages you support. You can do this manually or with AI. Then let your web development team handle the transitioning.

This method spares customers the hassle of manually selecting their preferred language. However, you should still offer a visible option on your support pages for them to adjust language preferences if needed.

Deliver modern multilingual support with Plivo CX

Language differences stifle quality support delivery and effective communication. 

To help you, Plivo CX offers a multilingual omnichannel support system through its Unified Agent Desktop, OpenAI-powered agentic chatbot, and inclusive voice support to help you overcome these challenges.

We also offer: 

  • Seamless integrations: Connect Plivo CX with your existing tools, including CRM, ERP, helpdesk, and more.
  • Data-driven optimization: Track real-time analytics and generate custom reports to gain insights into customer interactions and agent performance.
  • AI-enhanced efficiency: Prioritize urgent tickets, ensure brand consistency, and adapt quickly to changes with AI-powered support.
  • Rich communication: Enhance interactions with multimedia support, including images, videos, and documents.
  • Increased productivity: Streamline workflows with message templates, internal notes, and skills-based routing.
  • Comprehensive features: Leverage call recording, IVR, multi-language support, and robust security features for a complete solution.

Book a demo now!

Apr 3, 2025
5 mins

SMS Lead Generation: Everything You Need to Get Started

Struggling with SMS lead generation? Learn how Plivo CX's AI-powered SMS marketing helps e-commerce brands drive conversions, automate campaigns & boost ROI.

Let’s be real—getting leads isn’t the problem. Getting them to engage? That’s the real challenge. You can have the best offer, but if your message is not seen, it won’t get results.

The good news is that SMS is breaking through the noise. In fact, 76.2% of consumers say SMS is more effective at generating actions that lead to a purchase than email.

Why? Because texts land directly in your customer’s hands—no spam filters, no distractions, just instant, personal communication.

SMS lead generation is quickly becoming a cornerstone of modern marketing. In this article, we’ll dive into why SMS lead generation is rapidly becoming a must-have for businesses looking to engage, convert, and grow their customer base.

Why SMS is an effective lead generation tool

SMS marketing is a powerful tool for lead generation. It helps businesses build and nurture a qualified audience directly through SMS. Here are some key advantages that make SMS so effective for lead generation: 

High open rates & immediate attention

Text messages are almost always read – often within minutes. Studies confirm SMS open rates around 98%, higher than email​. The immediate visibility means your lead-gen offers (coupons, event invites, etc.) get seen right away, capturing customer attention in real time.

💡 Pro tip: Time your SMS campaigns strategically—sending messages when customers are most active can increase engagement and conversions.

Direct & personal communication

SMS creates a direct and personal connection between brands and potential customers. With the ability to personalize messages based on customer preferences, past interactions, or purchase history, SMS helps brands build stronger relationships and trust. 

Example: "Hi [Name], your favorite moisturizer is back in stock! Shop now before it’s gone: [link]."

💡Pro tip: Use first names, purchase history, or location-based offers to make SMS messages feel even more relevant and personal. 

Real-time engagement 

SMS enables businesses to engage with customers instantly. This makes SMS a preferred medium for promotions, updates, and limited-time offers. It allows for two-way conversations, where businesses can answer questions and send timely reminders when a lead is most interested. 

💡 Pro tip: Use SMS for flash sales or time-sensitive deals—customers are more likely to act quickly when they receive an offer with a clear deadline.

Cost-effective marketing

SMS campaigns are a cost-effective way to engage potential customers and increase sales. With message costs ranging from $0.015 to $0.050 per SMS, businesses can reach large audiences without significant money spent. 

Despite the low cost, SMS generates high response rates and a strong return on investment, making it an excellent text message lead generation tool for lead nurturing, promotions, and customer retention. For budget-conscious marketers, SMS offers maximum impact with minimal expense.

Example 1: A boutique clothing store replaces printed discount flyers with SMS promo codes, saving on printing costs while directly reaching active shoppers.

Example 2: Instead of investing in costly retargeting ads, a home décor brand uses SMS flash sale alerts to attract customers for exclusive discounts and limited-time offers

Automation & scalability 

With SMS automation, businesses can send messages to thousands of customers efficiently. Automated workflows allow brands to set up welcome messages, abandoned cart reminders, or follow-ups without manual effort. 

Whether you’re targeting a small segment or a nationwide audience, SMS can scale to meet your needs​

💡 Pro tip: Set up an automated drip campaign to send SMS messages over time. This helps to guide potential customers toward a purchase.

Together, these advantages explain why more businesses are leveraging SMS for lead generation. 

Proven SMS techniques for lead generation

You know SMS works—but how do you use it to drive more leads? Here are some tested strategies that top brands rely on to turn texts into conversions.

Offer exclusive content or discounts

People love getting something extra, especially when it feels exclusive. By offering discounts, special deals, or early access to new products via SMS, you create an immediate incentive for customers to respond.

Make sure your offer is time-sensitive to create urgency, which further motivates recipients to act quickly. Phrases like “For you only,” or “Exclusive offer just for our subscribers” can make recipients feel valued and increase the chances of conversion.

Image showing an SMS message offering an exclusive discount with a limited-time offer.
Source

Create compelling CTAs for immediate action 

Create your SMS messages with a clear, strong call-to-action (CTA) that urges instant response. Since texts are typically read quickly and have a character limit, use that brief moment to spark action.

Pro tip: Use action-oriented language like “Claim your offer now,” “Get started today,” or “Shop while stocks last” to prompt immediate responses.

SMS message with a strong call-to-action prompting immediate action.
Source

Lead generation through SMS thrives when your CTA is clear, direct, and compels the recipient to act fast.

Use opt-in keywords and shortcodes 

Simplify the process of joining your SMS list through keywords and shortcodes. For instance, you might advert JOIN to 12345 for updates. This text-to-subscribe approach makes opt-ins instant. A customer sends a one-word text and is automatically added to your campaign. 

Example:

A fitness apparel brand wants to grow its SMS list. They advertise:
“Text FIT to 56789 for 15% off your first order and exclusive updates!”

By texting “FIT” to 56789, customers are instantly added to the SMS list. This quick, frictionless opt-in process allows leads to sign up easily with just one text.

Pro tip: Make sure to choose an easy-to-remember keyword related to your campaign (e.g., text SALE, VIP, DEMO, etc.).

Segment your audience for targeted campaigns

One-size-fits-all messaging yields mediocre results. Instead, segment your SMS leads based on factors like demographics, purchasing behavior, and engagement history.

Example:

An online clothing store wants to send targeted offers. They segment their audience into two groups: frequent shoppers and seasonal browsers.

  • Frequent shoppers: Receive exclusive offers like “Thanks for being a loyal customer! Enjoy 25% off your next order.”
  • Seasonal browsers: Receive a message like “Welcome back! Get 15% off your next purchase, just for you.”

Businesses that segment their SMS campaigns see higher conversion because the messaging is more personalized and on-point​. 

Utilize SMS automation for timely follow-ups 

Don’t rely on manual texting, set up automated SMS workflows that send follow-up messages, reminders, or abandoned cart notifications. These automated texts can remind customers about products they’ve left behind, share additional offers, or provide updates on the status of their orders. 

SMS automation ensures no customer is left unattended and helps move prospects down the funnel with well-timed nudges.

Example:

An online home goods store uses SMS automation to follow up with leads.

  • Welcome message: As soon as a customer subscribes, they receive an immediate “Welcome! Get 10% off your first order. Shop now!”
  • Follow-up offer: If the customer hasn’t made a purchase within two days, they receive a reminder: “Still thinking it over? Here’s 15% off your first order!”

By implementing these techniques, you can steadily grow your list of SMS leads and keep them actively engaged. 

Best practices for SMS lead generation

While SMS is powerful, success largely depends on how you use it. Here are some best practices to ensure your SMS lead generation campaigns are effective and well-received:

Personalize and be relevant 

Treat SMS leads like individuals, not numbers on a list. Use personalization wherever possible—greet recipients by name and tailor messages to their interests or past interactions. 

For example, if you know a customer’s preferred product category, mention it. Personalization shows that your texts are for them, which improves response rates. 

In this SMS (image below), they address the customer by name (Elizabeth) and highlight their status as a “Platinum Comfort Crew member.” Personal touches like this make the recipient feel special and valued.

Screenshot showing a personalized SMS, offering first access to a sale.
Source

Optimal timing and frequency 

A staggering 90% of consumers respond to a text within 30 minutes, which underscores the importance of reaching your audience at the right moment. 

To maximize engagement, aim to send texts between 10 AM and 8 PM, avoiding early mornings before 8 AM, late evenings after 9 PM, Mondays, and rush hours. Mid-afternoon often works best. 

When it comes to frequency, it’s all about balance. Nearly 60% of smartphone users opt out of a brand’s messages when they feel overwhelmed by too many updates. 

Pro tip: Space out your messages and keep them meaningful—aim for one or two valuable texts per week to avoid overwhelming your audience and maintain engagement.

Keep messages concise and clear 

SMS has a character limit, which means you must communicate your message clearly and concisely. Your text should get to the point quickly, without any unnecessary fluff. 

Focus on one core message in each SMS, whether it's an offer, update, or reminder. Use short, direct language, and avoid long sentences or paragraphs.

Screenshot showing a clear SMS with a direct call to action
Source

For example, instead of saying, “We have a new collection of products that we think you might like, and it’s available on our website,” say, “New collection just dropped! Shop now and get 10% off!”

If more detail is needed, include a link to a mobile-friendly landing page for the lead to learn more. 

Track and analyze performance 

Treat SMS campaigns like any other marketing effort – track the results and adjust the strategy accordingly. Monitor key metrics such as open rate, click-through rate, response rate, and conversion rate. 

Also, pay attention to unsubscribe rates after each SMS campaign. Analyzing these data points will tell you what’s working and what isn’t. You can experiment with A/B testing for different CTAs, message lengths, or timing to see what drives the best results

For instance, you may find that messages sent on Friday evenings receive higher engagement or that one offer generates more conversions than another. Use this insight to refine your approach, perhaps adjusting send times, wording, or segment targeting. 

The role of SMS marketing automation in lead generation

Automation simplifies lead generation by handling manual tasks, ensuring no lead slips through the cracks. With SMS marketing automation, businesses can send the right message to the right lead at the right time—without manual effort for each interaction. This makes capturing and nurturing leads easier, faster, and more efficient.

Here’s why SMS automation is so important and how it works:

Key benefits of SMS marketing automation

Instant follow-ups: Automatically send a welcome message as soon as a lead opts in, keeping them engaged from the start.

Personalized offers: Use customer data to send relevant offers, product recommendations, and reminders tailored to their interests.

Higher conversion rates: Schedule automated follow-ups to nurture leads, recover abandoned carts, or re-engage inactive customers.

Timely touchpoints: Ensure leads receive timely updates, promotions, and reminders without manual effort.

Scalable communication: With the right SMS lead generation tool, you can manage high volumes of leads with automated workflows. This frees up your team while maintaining consistent outreach.

As a robust omnichannel customer engagement tool, Plivo CX checks all the boxes for a reliable and efficient SMS lead generation platform. 

With its user-friendly interface and powerful analytics tools, Plivo CX optimizes your SMS marketing for maximum impact and streamlines your lead generation and conversion process with automation.

As a testament to its efficiency, Deckers Brands found Plivo's queuing system to be a game-changer. Jacob Martine, project manager at Deckers Brands, states, 

"With fewer worries about rate limits and batch sizes, our developers face less burden. If we need to send 50,000 messages, we simply send them all—Plivo handles the rest, delivering without us worrying about the process."

Drive more leads with SMS marketing powered by Plivo CX

E-commerce managers face a tough challenge—reaching customers at the right time is harder than ever. Manual campaign management takes too long, and generic messages don’t drive conversions. Without automation and personalization, it’s easy to miss opportunities to connect with potential buyers

Plivo CX is an all-in-one customer engagement platform designed to maximize SMS lead generation results. It brings together real-time delivery, intelligent automation, and data-driven insights so businesses can capture and convert more leads via SMS. 

Here’s how Plivo CX can get more leads by elevating your SMS marketing:

  • Powerful audience targeting: Build highly focused campaigns by syncing your e-commerce platform data or importing contacts. With the Audiences feature, segment audiences based on purchase behavior, engagement data, and demographics to send highly personalized SMS campaigns.
Image showing Plivo CX’s customer segmentation dashboard
Target customers with precision using Plivo CX’s advanced segmentation tools.
  • Multi-channel engagement:  Connect with your customers on their preferred channels—whether it's SMS, MMS, or Email. This increases the chances of meaningful interactions and conversions.
  • AI-powered SMS personalization: Use the Copywriter AI to generate compelling, data-driven SMS messages instantly. Fine-tune your messages to resonate with your audience instantly.
 Image showing AI-generated SMS message template.
Create high-impact personalized SMS with AI-powered suggestions.
  • Send messages at the ideal time: Automate and schedule messages to align with optimal timings across different time zones, ensuring they reach customers when they are most likely to engage, maximizing impact.
Image displaying an SMS at different times.
Automate and schedule SMS to deliver across different time zones.
  • E-commerce integrations: Effortlessly connect with e-commerce platforms like Shopify, WooCommerce, BigCommerce, and Magento to personalize and send SMS directly from your e-commerce platforms.
  • Track conversions & optimize ROI: Gain valuable insights into what resonates with your audience and continuously optimize your campaigns for maximum ROI. 
Image showing campaign performance dashboard with tracking metrics.
Track campaign performance and optimize for better ROI.

With Plivo CX’s robust global messaging network covering 220+ countries, businesses can scale their SMS marketing effortlessly, reducing costs by up to 70% while tripling ROI.

Plivo CX users generate an average of $71 for every $1 spent, making it a must-have for data-driven, high-impact SMS campaigns.

Don’t let missed opportunities hold your business back—start driving more leads and conversions today with Plivo CX. 

Schedule a free demo now!

Subscribe to Our Newsletter

Plivo’s cloud communications platform is backed by a robust, reliable, fault-tolerant.

Oops! Something went wrong while submitting the form.
Dec 21, 2021
5 mins

How to Migrate Your .NET Voice Application from Twilio to Plivo

Plivo's SMS API and Voice API enables businesses to communicate with their customers at global scale. Sign up for free now.

Migration
Voice API

Migrating from Twilio to Plivo is a seamless and painless process. The two companies’ API structures, implementation mechanisms, XML structure, SMS message processing, and voice call processing are similar. We wrote this technical comparison between Twilio and Plivo APIs so that you can scope the code changes for a seamless migration.

Understanding the differences between Twilio and Plivo development

Most of the APIs and features that are available on Twilio are also available on Plivo and the implementation mechanism is easier as the steps involved are almost identical. This table gives a side-side comparison of the two companies’ features and APIs. An added advantage with Plivo is that not only can you code using the old familiar API/XML method, you can also implement your use cases using PHLO (Plivo High Level Objects), a visual workflow builder that lets you create workflows by dragging and dropping components onto a canvas — no coding required.

Features and APIs Twilio Plivo Similarities Implementation Interface
Voice API: Make phone calls Request and response variables’ structure API
PHLO
Programmatically manage call flows Twiml Plivo XML XML element and its attributes structure XML
PHLO
Geo Permissions Feature parity Console
Number Lookup API API Parity API
Phone number management Feature parity API
Console
Call Insights Feature parity Console
Validating Requests Feature parity API
XML
Subaccounts Feature parity API
Speech recognition Feature parity XML
SSML (Speech Synthesis Markup Language) Feature parity XML
PHLO
Browser and Mobile SDKs Feature parity Browser
Android
iOS
Transcription Feature parity API
XML
PHLO
Custom SIP Headers Feature parity API
XML
PHLO
Browser SDK
Mobile SDKs
HTTP callbacks Feature parity API
XML
PHLO

Plivo account creation

Start by signing up for a free trial account that you can use to experiment with and learn about our services. The free trial account comes with free credits, and you can add more as you go along. You can also add a phone number to your account to start testing the full range of our voice and SMS features. A page in our support portal walks you through the signup process.

You can also port your numbers from Twilio to Plivo, as we explain in this guide.

Migrating your voice application

As mentioned earlier, you can migrate your existing application from Twilio to Plivo by refactoring the code, or you can try our intuitive visual workflow builder PHLO. If you prefer the API approach, you can follow one of the voice quickstart guides based on your preferred language and web framework. Plivo offers server SDKs in seven languages: Python, Node.js, .NET, Java, Python, Ruby, and Go. For another alternative that lets you evaluate Plivo’s SMS APIs and their request and response structure, use our Postman collections.

How to make an outbound call

Let’s take a look at the process of refactoring the code to migrate your app from Twilio to Plivo to set up a simple .NET application to make an outbound call by changing just a few lines of code.

Twilio Plivo
using System;
using Twilio;
using Twilio.Rest.Api.V2010.Account;


class Program
{
    static void Main(string[] args)
    {
        string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

        TwilioClient.Init(accountSid, authToken);
    
        var call = CallResource.Create(
            url: new Uri("http://demo.twilio.com/docs/classic.mp3"),
            to: new Twilio.Types.PhoneNumber("+14155551212"),
            from: new Twilio.Types.PhoneNumber("+14155551212")
        );
        Console.WriteLine(call.Sid);
    }
}
   
using System;
using System.Collections.Generic;
using Plivo;
using Plivo.Exception;

namespace PlivoExamples
{
    internal class Program
    {
        public static void Main(string[] args)
        {
           string authId = Environment.GetEnvironmentVariable("PLIVO_AUTH_ID");
           string authToken = Environment.GetEnvironmentVariable("PLIVO_AUTH_TOKEN");
            var api = new PlivoApi(authId,authToken);
            try
            {
                var response = api.Call.Create(
                    to:new List<String>{"+15671234567"},
                    from:"+14151234567",
                    answerMethod:"GET",
                    answerUrl:"https://s3.amazonaws.com/static.plivo.com/answer.xml"
                );
                Console.WriteLine(response);
            }
            catch (PlivoRestException e)
            {
                Console.WriteLine("Exception: " + e.Message);
            }
        }
    }
}

Alternatively, you can implement the same functionality using one of our PHLO templates. For example, if you want to make an outbound call, your PHLO would be this:

Create a PHLO for outbound calls

How to receive an incoming call

You can migrate an application for receiving and handling an incoming call from Twilio to Plivo just as seamlessly, as in this example:

Twilio Plivo
using System.Web.Mvc;
using Twilio.AspNet.Mvc;
using Twilio.TwiML;

public class VoiceController : 
TwilioController
{
    [HttpPost]
    public ActionResult Index()
    {
        var response = new VoiceResponse();
        response.Say("hello world!", voice: "alice");

        return TwiML(response);
    }
}
   
using System;
using Plivo.XML;
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;

namespace Receivecall
{
   public class ReceivecallController : Controller
    {
      public IActionResult Index()
      {
         Plivo.XML.Response resp = new 
Plivo.XML.Response();
         resp.AddSpeak("Hello, you just received
         your first call",
         new Dictionary<string, string>() 
            {
                  {"loop","3"}
            });
         var output = resp.ToString();
         Console.WriteLine(output);
         return this.Content(output, "text/xml");
        }
    }
}

Here again, you can implement the same functionality using one of our PHLO templates. Your PHLO would look like:

Create a PHLO to receive incoming call

For more information about migrating your Voice applications to Plivo, check out our detailed use case guides, available for all seven programming languages and PHLO.

How to forward an incoming call

You can migrate an application for forwarding an incoming call from Twilio to Plivo just as seamlessly, as in this example:

Twilio Plivo
using System.Web.Mvc;
using Twilio.AspNet.Mvc;
using Twilio.TwiML;

public class VoiceController : TwilioController
{
    [HttpPost]
    public ActionResult Index()
    {
        var response = new VoiceResponse();
        response.Dial("415-123-4567");
        response.Say("Goodbye");

        return TwiML(response);
    }
}
   
using System;
using Plivo.XML;
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;

namespace Receivecall
{
	public class ForwardcallController 
  : Controller
	{
		public IActionResult Index()
		{
		Plivo.XML.Response resp = 
    new Plivo.XML.Response();
		Plivo.XML.Dial dial = new
    Plivo.XML.Dial(new
		Dictionary<string, string>() {
		});

		dial.AddNumber("+15671234567",
			new Dictionary
      <string, string>() { });
		resp.Add(dial);
	
		var output = resp.ToString();
		Console.WriteLine(output);
	
		return this.Content(
    output, "text/xml");
		}
	}
}

Here again, you can implement the same functionality using one of our PHLO templates. Your PHLO would look like:

Create a PHLO to receive incoming call

For more information about migrating your Voice applications to Plivo, check out our detailed use case guides, available for all seven programming languages and PHLO.

More use cases

You can migrate your applications serving other use cases too.

Simple and reliable

And that’s all there is to migrating your .NET voice app from Twilio to Plivo. Our simple APIs work in tandem with our Premium Communications Network. See for yourself — sign up for a free trial account.

Dec 16, 2021
5 mins

How to Integrate Auth0 with Plivo for SMS MFA

How to get started using Auth0 for multifactor authentication using Plivo’s SMS API

Integration
SMS API

Looking for support for Auth0 authentication? Here are the steps to take to add SMS-based multifactor authentication (MFA) to the login flow for an Auth0 tenant. (A tenant is a specification for a group of users who share access to an application instance — for instance, a company with multiple employees.) We’ll assume you already have an Auth0 account and tenant and a Plivo account.

You must have a voice-enabled Plivo phone number to send SMS messages to numbers in the US and Canada; you can rent numbers from theNumbers page of the Plivo console, or by using the Numbers API.

We recommend testing your setup on a staging or development server before making changes to your production login flow.

Add the Action

To integrate Auth0, first sign up for an account. Add an Action (a triggerable function), then integrate it with your authentication flow.

  • Go to Actions > Library and select Add Integration.
actions-library
  • Read the necessary access requirements and click Continue.
requirements
  • Configure the integration by filling in the fields on the next screen with your Plivo Auth ID and Auth Token and your Plivo phone number.
configuration
  • Click Create to add the integration to your library.
  • Click the Add to flow link on the pop-up that appears.
add-flow
  • Drag the Action into the flow.
send-sms
  • Click Apply Changes. Now this flow will use the Plivo integration to send an SMS message whenever it’s called.

Activate custom SMS factor

Before you can use SMS as an authentication factor, your Auth0 tenant needs to have MFA enabled globally or for specific contexts. You can then configure the SMS factor to use your custom code.

Go to Dashboard > Security > Multi-factor Auth and click the Phone Message factor box. In the modal that appears, select Custom for the delivery provider, make any adjustments you’d like to the templates, then click Save and close the modal. Finally, enable the SMS factor using the toggle switch.

sms-factor

Auth0 will immediately begin using this factor for MFA during login. Before you activate your integration in production, make sure you’ve configured all of the components correctly and verified everything on a test tenant.

Test MFA flow

Navigate to the Authentication section in the Auth0 Manage Dashboard, choose your Connection, then select Try from the connection’s dropdown menu to verify that everything works as intended.

db-connection

You can then log into your Plivo account to verify that SMS messages are indeed being sent.

plivo-logs

If you don’t receive an SMS message as expected, look in your tenant logs for a failed Phone Message log entry. To learn which event types to search, see the Log Event Type Code list. You can use the Filter control to find MFA errors.

Make sure that:

  • The Action is in the Send Phone Message flow.
  • The secrets are the same Plivo Auth ID and Auth Token you created when you added the Action.
  • Your Plivo account is active (not suspended).
  • Your phone number is formatted in E.164 format.

Dec 14, 2021
5 mins

Plivo Adds Integration with Auth0

Plivo’s SMS API now supports multifactor authentication via SMS text messages using Auth0

Integration
SMS API

Auth0, the popular authentication and authorization platform, secures logins for thousands of global enterprises. Now you can leverage Auth0 with Plivo’s messaging platform to send SMS messages for multifactor authentication (MFA) — a feature Auth0 lacks. Sending an authentication code via text message lets people use a convenient device to improve security, reducing the risk of unauthorized entry by requiring an additional factor to grant access.

The new integration benefits users of both platforms. Current Plivo users can use Auth0 as their identity and access management (IAM) platform and leverage their existing Plivo investment, while Auth0 customers can add an economical SMS provider to enable MFA.

How it works

Integrating Plivo with Auth0 is a simple matter of dragging the new Plivo Action into an Auth0 flow. Once you’ve set it up, Auth0 will use Plivo to send SMS messages for multifactor authentication. For detailed steps, read more on how to integrate Auth0 with Plivo for SMS MFA guide.

Dec 13, 2021
5 mins

How to Migrate Your Java Voice Application from Twilio to Plivo

Plivo's SMS API and Voice API enables businesses to communicate with their customers at global scale. Sign up for free now.

Java SDK
Voice API
Migration

Migrating from Twilio to Plivo is a seamless and painless process. The two companies’ API structures, implementation mechanisms, XML structure, SMS message processing, and voice call processing are similar. We wrote this technical comparison between Twilio and Plivo APIs so that you can scope the code changes for a seamless migration.

Understanding the differences between Twilio and Plivo development

Most of the APIs and features that are available on Twilio are also available on Plivo and the implementation mechanism is easier as the steps involved are almost identical. This table gives a side-side comparison of the two companies’ features and APIs. An added advantage with Plivo is that not only can you code using the old familiar API/XML method, you can also implement your use cases using PHLO (Plivo High Level Objects), a visual workflow builder that lets you create workflows by dragging and dropping components onto a canvas — no coding required.

Features and APIs Twilio Plivo Similarities Implementation Interface
Voice API: Make phone calls Request and response variables’ structure API
PHLO
Programmatically manage call flows Twiml Plivo XML XML element and its attributes structure XML
PHLO
Geo Permissions Feature parity Console
Number Lookup API API Parity API
Phone number management Feature parity API
Console
Call Insights Feature parity Console
Validating Requests Feature parity API
XML
Subaccounts Feature parity API
Speech recognition Feature parity XML
SSML (Speech Synthesis Markup Language) Feature parity XML
PHLO
Browser and Mobile SDKs Feature parity Browser
Android
iOS
Transcription Feature parity API
XML
PHLO
Custom SIP Headers Feature parity API
XML
PHLO
Browser SDK
Mobile SDKs
HTTP callbacks Feature parity API
XML
PHLO

Plivo account creation

Start by signing up for a free trial account that you can use to experiment with and learn about our services. The free trial account comes with free credits, and you can add more as you go along. You can also add a phone number to your account to start testing the full range of our voice and SMS features. A page in our support portal walks you through the signup process.

You can also port your numbers from Twilio to Plivo, as we explain in this guide.

Migrating your Voice application

As mentioned earlier, you can migrate your existing application from Twilio to Plivo by refactoring the code, or you can try our intuitive visual workflow builder PHLO. If you prefer the API approach, you can follow one of the voice quickstart guides based on your preferred language and web framework. Plivo offers server SDKs in seven languages: Python, Node.js, .NET, Java, Python, Ruby, and Go. For another alternative that lets you evaluate Plivo’s SMS APIs and their request and response structure, use our Postman collections.

How to make an outbound call

Let’s take a look at the process of refactoring the code to migrate your app from Twilio to Plivo to set up a simple Java application to make an outbound call by changing just a few lines of code.

Twilio Plivo
import com.twilio.Twilio;
import com.twilio.rest.api.v2010.account.Call;
import com.twilio.type.PhoneNumber;

import java.net.URI;

public class Example {
public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID");
public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN");

    public static void main(String[] args) {
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        Call call = Call.creator(
                new com.twilio.type.PhoneNumber("+14155551212"),
                new com.twilio.type.PhoneNumber("+14155551212"),
                URI.create("http://demo.twilio.com/docs/classic.mp3"))
            .create();
    
        System.out.println(call.getSid());
    }
}
   
package com.plivo.api.samples.call;

import java.io.IOException;
import java.util.Collections;

import com.plivo.api.Plivo;
import com.plivo.api.exceptions.PlivoRestException;
import com.plivo.api.models.call.Call;
import com.plivo.api.models.call.CallCreateResponse;

class CallCreate {
public static final String AUTH_ID = System.getenv("PLIVO_AUTH_ID");
public static final String AUTH_TOKEN = System.getenv("PLIVO_AUTH_TOKEN");
    public static void main(String [] args) {
        Plivo.init(AUTH_ID,AUTH_TOKEN);
        try {
            CallCreateResponse response = Call.creator("+14151234567", 
            Collections.singletonList("+15671234567"), 
            "https://s3.amazonaws.com/static.plivo.com/answer.xml")
                .answerMethod("GET")
                .create();

            System.out.println(response);
        } catch (PlivoRestException | IOException e) {
            e.printStackTrace();
        }
    }
}

Alternatively, you can implement the same functionality using one of our PHLO templates. For example, if you want to make an outbound call, your PHLO would be this:

Create a PHLO for outbound calls

How to receive an incoming call

You can migrate an application for receiving and handling an incoming call from Twilio to Plivo just as seamlessly, as in this example:

Twilio Plivo
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.twilio.twiml.voice.Say;
import com.twilio.twiml.TwiMLException;
import com.twilio.twiml.VoiceResponse;

@SuppressWarnings("serial")
@WebServlet("/voice")
public class IncomingCallServlet extends
HttpServlet {
  protected void doPost(
     HttpServletRequest
     request, HttpServletResponse response)
      throws ServletException, IOException {
    VoiceResponse twiml = new
VoiceResponse.Builder()
        .say(new Say.Builder("Hello world!")
              .voice(Say.Voice.ALICE)
              .build())
        .build();
    response.setContentType("text/xml");

    try {
      response.getWriter().print(twiml.toXml());
    } catch (TwiMLException e) {
      e.printStackTrace();
    }



  }
}

   
import static spark.Spark.*;
import com.plivo.api.xml.Speak;
import com.plivo.api.xml.Response;

public class ReceiveCall {
    public static void main(String[] args) {
        post("/receive_call/", (request, 
        response) -> {
            response.type("application/xml");
            return new
Response().children(new Speak(
"Hello, you just received your first
call")).toXmlString();
        });
    }
}

Here again, you can implement the same functionality using one of our PHLO templates. Your PHLO would look like:

Create a PHLO to receive incoming call

For more information about migrating your Voice applications to Plivo, check out our detailed use case guides, available for all seven programming languages and PHLO.

How to forward an incoming call

You can migrate an application for forwarding an incoming call from Twilio to Plivo just as seamlessly, as in this example:

Twilio Plivo
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.twilio.twiml.voice.Dial;
import com.twilio.twiml.voice.Number;
import com.twilio.twiml.VoiceResponse;
import com.twilio.twiml.TwiMLException;
import java.io.IOException;
import java.util.Collections;

@SpringBootApplication
@RestController
public class TwilioVoiceApplication {

	public static void main(String[] args) {
		SpringApplication.run(TwilioVoiceApplication.class, args);
	}
	
	@GetMapping(value="/forward", produces={"application/xml"})
public String forwardCall() throws TwiMLException {
		Number number = new Number.Builder("415-123-4567").build();
        Dial dial = new Dial.Builder().number(number).build();
        VoiceResponse response = new VoiceResponse.Builder().dial(dial).build();
		  return response..toXml();
	}

}
   
package com.example.demo;
import com.plivo.api.Plivo;
import com.plivo.api.exceptions.PlivoRestException;
import com.plivo.api.models.call.Call;
import com.plivo.api.models.call.CallCreateResponse;
import com.plivo.api.xml.Dial;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.plivo.api.exceptions.PlivoXmlException;
import com.plivo.api.xml.Response;
import com.plivo.api.xml.Speak;
import com.plivo.api.xml.Number;
import java.io.IOException;
import java.util.Collections;

@SpringBootApplication
@RestController
public class PlivoVoiceApplication {

	public static void main(String[] args) {
		SpringApplication.run(PlivoVoiceApplication.class, args);
	}
	
	@GetMapping(value="/forward", produces={"application/xml"})
public String forwardCall(@RequestParam("From") String fromNumber) 
throws PlivoXmlException {
		Response res = new Response()
				.children(
						new Dial()
								.callerId(fromNumber)
								.children(
										new Number("+15671234567")
								)
				);
		return res.toXmlString();
	}

}

Here again, you can implement the same functionality using one of our PHLO templates. Your PHLO would look like:

Create a PHLO to receive incoming call

For more information about migrating your Voice applications to Plivo, check out our detailed use case guides, available for all seven programming languages and PHLO.

More use cases

You can migrate your applications serving other use cases too.

Simple and reliable

And that’s all there is to migrate your Java voice app from Twilio to Plivo. Our simple APIs work in tandem with our Premium Communications Network. See for yourself — sign up for a free trial account.

Dec 10, 2021
5 mins

How to Migrate Your Java SMS Application from Twilio to Plivo

Plivo's SMS API and Voice API enables businesses to communicate with their customers at global scale. Sign up for free now.

Java SDK
SMS API
Migration

Migrating your Java SMS app from Twilio to Plivo is a seamless and painless process. The two companies’ API structures, implementation mechanisms, XML structure, SMS message processing, and voice call processing are similar. We wrote this technical comparison so that you can scope between Twilio and Plivo APIs for a seamless migration.

Understanding the differences between Twilio and Plivo development

Most of the APIs and features that are available on Twilio are also available on Plivo and the implementation mechanism is easier as the steps involved are almost identical. This table gives a side-side comparison of the two companies’ features and APIs. An added advantage with Plivo is that not only can you code using the old familiar API/XML method, you can also implement your use cases using PHLO (Plivo High Level Objects), a visual workflow builder that lets you create workflows by dragging and dropping components onto a canvas — no coding required.

Features and APIs Twilio Plivo Similarities Implementation Interface
SMS API: Send SMS/MMS messages Request and response variables’ structure API
PHLO
Managed number pool for US/CA Messaging Copilot Powerpack Feature parity API
Console
Geo Permissions Feature parity Console
SMS Sender ID registration Feature parity Console
Number Lookup API API Parity API
Phone number management Feature parity API
Console
Validating Requests Feature parity API
XML
Subaccounts Feature parity API
HTTP callbacks Feature parity API
XML
PHLO

Plivo offers one unique advantage: Not only can you code using APIs and XML, you can also implement your use cases using PHLO (Plivo High Level Objects), a visual workflow builder that lets you create workflows by dragging and dropping components onto a canvas — no coding required.

Plivo account creation

Start by signing up for a free trial account that you can use to experiment with and learn about our services. The free trial account comes with free credits, and you can add more as you go along. You can also add a phone number to your account to start testing the full range of our voice and SMS features. A page in our support portal walks you through the signup process.

You can also port your numbers from Twilio to Plivo, as we explain in this guide.

Migrating your Java SMS application

You can migrate your existing application from Twilio to Plivo by refactoring the code, or you can try our intuitive visual workflow builder PHLO. To continue working with the APIs, use one of the quickstart guides to set up a development environment for your preferred language. Plivo offers server SDKs in seven languages: Python, Node.js, .NET, Java, Python, Ruby, and Go. For another alternative that lets you evaluate Plivo’s SMS APIs and their request and response structure, use our Postman collections.

How to send an SMS message

Let’s take a look at the process of refactoring the code to migrate your app from Twilio to Plivo to set up a simple Java application to send an SMS message by changing just a few lines of code.

Twilio Plivo
import com.twilio.Twilio;
import com.twilio.rest.api.v2010.account.Message;
import com.twilio.type.PhoneNumber;

public class Example {
    public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID");
    public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN");

    public static void main(String[] args) {
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        Message message = Message.creator(
                new com.twilio.type.PhoneNumber("+14159352345"),
                new com.twilio.type.PhoneNumber("+14158141829"),
                "Where's Wallace?")
            .create();
    
        System.out.println(message.getSid());
    }
}
   
import java.io.IOException;
import java.net.URL;
import java.util.Collections;

import com.plivo.api.Plivo;
import com.plivo.api.exceptions.PlivoRestException;
import com.plivo.api.models.message.Message;
import com.plivo.api.models.message.MessageCreateResponse;

class MessageCreate
{   
    public static final String AUTH_ID = System.getenv("PLIVO_AUTH_ID");
    public static final String AUTH_TOKEN = System.getenv("PLIVO_AUTH_TOKEN");
    public static void main(String [] args)
    {
        Plivo.init(AUTH_ID,AUTH_TOKEN);
        try
        {
            MessageCreateResponse response = Message.creator("14151113333","+14151112222",
                    "Hello, this is test message")
                    .url(new URL("https://foo.com/sms_status/") )
                    .create();
            System.out.println(response);
        }

        catch (PlivoRestException | IOException e)
        {
            e.printStackTrace();
        }
    }
}

Alternatively, you can implement the same functionality using one of our PHLO templates. For example, if you want to send an SMS message, your PHLO would be this:

Create PHLO for outbound SMS

How to receive and reply to SMS

You can migrate an application for receiving and replying to an incoming SMS from Twilio to Plivo just as seamlessly, as in this example:

Twilio Plivo
import com.twilio.twiml.MessagingResponse;
import com.twilio.twiml.messaging.Body;
import com.twilio.twiml.messaging.Message;

import static spark.Spark.*;

public class SmsApp {
    public static void main(String[] args) {
                get("/", (req, res) -> "Hello Web");
                post("/sms", (req, res) -> {
                    res.type("application/xml");
                    Body body = new Body.Builder("The Robots are coming! Head for the hills!").build();
                    Message sms = new Message.Builder().body(body).build();
                    MessagingResponse twiml = new MessagingResponse.Builder().message(sms).build();
                    return twiml.toXml();
        });
    }
}
   
package com.example.demo;
import com.plivo.api.exceptions.PlivoRestException;
import com.plivo.api.xml.Message;
import org.springframework.boot.SpringApplication;
import 
org.springframework.boot.autoconfigure.SpringBootApplication;
import 
org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import com.plivo.api.exceptions.PlivoXmlException;
import com.plivo.api.xml.Response;

import java.io.IOException;

@SpringBootApplication
@RestController
public class PlivoSmsApplication {


    public static void main(String[] args) {
        SpringApplication.run(PlivoSmsApplication.class, args);
    }
    
    // Receive incoming SMS
    @PostMapping("/incoming")
    public String postBody(String From, String To, String Text) {
        System.out.println(From + " " + To + " " + Text);
    	return "Message received!";
    }
    
    // Reply to incoming SMS
    @GetMapping(value = "/reply", produces = {"application/xml"})
    public String getBody(String From, String To, String Text) 
    throws PlivoXmlException {
        Response res = new Response().children(
            new Message(To, From, "Thank you, we have received your request"));
        return res.toXmlString();
    }

}

Here again, you can implement the same functionality using one of our PHLO templates. Your PHLO would look like:

With Dynamic Payload

For more information about migrating your SMS applications to Plivo, check out our detailed use case guides, available for all seven programming languages and PHLO.

How to send an MMS message

Let’s take a look at the process of refactoring the code to migrate your app from Twilio to Plivo to set up a simple Java application to send an MMS message by changing just a few lines of code.

Twilio Plivo
import com.twilio.Twilio;
import com.twilio.rest.api.v2010.account.Message;
import com.twilio.type.PhoneNumber;

import java.net.URI;
import java.util.Arrays;

public class Example {
public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID");
public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN");

    public static void main(String[] args) {
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        Message message = Message.creator(
                new com.twilio.type.PhoneNumber("+15558675310"),
                new com.twilio.type.PhoneNumber("+15017122661"),
                "This is the ship that made the Kessel Run in fourteen parsecs?")
.setMediaUrl(
Arrays.asList(URI
.create("https://c1.staticflickr.com/3/2899/14341091933_1e92e62d12_b.jpg")))
            .create();

        System.out.println(message.getSid());
    }
}
   
package com.plivo.api;
import java.io.IOException;
import com.plivo.api.exceptions.PlivoRestException;
import com.plivo.api.models.media.Media;

public class SendSMS {
public static final String AUTH_ID = System.getenv("PLIVO_AUTH_ID");
public static final String AUTH_TOKEN = System.getenv("PLIVO_AUTH_TOKEN");
    public static void main(String[] args) {
    Plivo.init(AUTH_ID, AUTH_TOKEN);
    MessageCreateResponse response = Message.creator("+14151234567",Collections.singletonList("+14157654321"),
        "Hello, from Java!").type(MessageType.MMS)
        .media_urls(new String[]{"https://media.giphy.com/media/26gscSULUcfKU7dHq/source.gif"})
        .media_ids(new String[]{"801c2056-33ab-499c-80ef-58b574a462a2"})
        .create();
    System.out.println(response);
      }
   }
}

Alternatively, you can implement the same functionality using one of our PHLO templates. For example, if you want to send an MMS message, your PHLO would be this:

Create PHLO for outbound MMS

More use cases

You can migrate your applications serving other use cases too.

Simple and reliable

And that’s all there is to migrate your Java SMS application from Twilio to Plivo. Our simple APIs work in tandem with our Premium Communications Network to guarantee the highest possible delivery rates and the shortest possible delivery times for your SMS messages. See for yourself — sign up for a free trial account.

Dec 7, 2021
5 mins

How to Migrate Your Python Voice Application from Twilio to Plivo

Plivo's SMS API and Voice API enables businesses to communicate with their customers at global scale. Sign up for free now.

Python SDK
Voice API
Migration

Migrating from Twilio to Plivo is a seamless and painless process. The two companies’ API structures, implementation mechanisms, XML structure, SMS message processing, and voice call processing are similar. We wrote this technical comparison between Twilio and Plivo APIs so that you can scope the code changes for a seamless migration.

Understanding the differences between Twilio and Plivo development

Most of the APIs and features that are available on Twilio are also available on Plivo and the implementation mechanism is easier as the steps involved are almost identical. This table gives a side-side comparison of the two companies’ features and APIs. An added advantage with Plivo is that not only can you code using the old familiar API/XML method, you can also implement your use cases using PHLO (Plivo High Level Objects), a visual workflow builder that lets you create workflows by dragging and dropping components onto a canvas — no coding required.

Features and APIs Twilio Plivo Similarities Implementation Interface
Voice API: Make phone calls Request and response variables’ structure API
PHLO
Programmatically manage call flows Twiml Plivo XML XML element and its attributes structure XML
PHLO
Geo Permissions Feature parity Console
Number Lookup API API Parity API
Phone number management Feature parity API
Console
Call Insights Feature parity Console
Validating Requests Feature parity API
XML
Subaccounts Feature parity API
Speech recognition Feature parity XML
SSML (Speech Synthesis Markup Language) Feature parity XML
PHLO
Browser and Mobile SDKs Feature parity Browser
Android
iOS
Transcription Feature parity API
XML
PHLO
Custom SIP Headers Feature parity API
XML
PHLO
Browser SDK
Mobile SDKs
HTTP callbacks Feature parity API
XML
PHLO

Plivo account creation

Start by signing up for a free trial account that you can use to experiment with and learn about our services. The free trial account comes with free credits, and you can add more as you go along. You can also add a phone number to your account to start testing the full range of our voice and SMS features. A page in our support portal walks you through the signup process.

You can also port your numbers from Twilio to Plivo, as we explain in this guide.

Migrating your voice application

As mentioned earlier, you can migrate your existing application from Twilio to Plivo by refactoring the code, or you can try our intuitive visual workflow builder PHLO. If you prefer the API approach, you can follow one of the voice quickstart guides based on your preferred language and web framework. Plivo offers server SDKs in seven languages: Python, Node.js, .NET, Java, Python, Ruby, and Go. For another alternative that lets you evaluate Plivo’s SMS APIs and their request and response structure, use our Postman collections.

How to make an outbound call

Let’s take a look at the process of refactoring the code to migrate your app from Twilio to Plivo to set up a simple Python application to make an outbound call by changing just a few lines of code.

Twilio Plivo
import os
from twilio.rest import Client

account_sid = os.environ
["TWILIO_ACCOUNT_SID"]
auth_token = os.environ
["TWILIO_AUTH_TOKEN"]
client = Client(account_sid, auth_token)

call = client.calls.create(
   url='http://demo.twilio.com/docs/voice.xml',
   to='+14155551212',
   from_='+15017122661'
)

print(call)
   
import os
import plivo


auth_id = os.environ
["PLIVO_AUTH_ID"]
auth_token = os.environ
["PLIVO_AUTH_TOKEN"]
client = plivo.RestClient(auth_id, auth_token)

call = client.calls.create(
   from_='+14151234567',
   to_='+14157654321',
   answer_url=
'http://s3.amazonaws.com/static.plivo.
com/answer.xml',
   answer_method='GET' )
print(call)

Alternatively, you can implement the same functionality using one of our PHLO templates. For example, if you want to make an outbound call, your PHLO would be this:

Create a PHLO for outbound calls

How to receive an incoming call

You can migrate an application for receiving and handling an incoming call from Twilio to Plivo just as seamlessly, as in this example:

Twilio Plivo
from flask import Flask
from twilio.twiml.voice_response 
import VoiceResponse

app = Flask(__name__)


@app.route("/receive_call", 
methods=['GET', 'POST'])
def receive_call():
"""Respond to incoming phone calls with a
'Hello world' message"""
    # Start our TwiML response
    resp = VoiceResponse()

    # Read a message aloud to the caller
    resp.say("hello world!", voice='alice')
    
    return str(resp)

if __name__ == "__main__":
    app.run(debug=True)
   
from flask import Flask, request,
make_response
from plivo import plivoxml

app = Flask(__name__)

@app.route('/receive_call',
methods=['GET','POST'])
def receive_call():
# Generate a Speak XML with the details 
of the text to play on the call.
response = (
   plivoxml.ResponseElement()
   .add(
   plivoxml.SpeakElement(
'Hello, you just received your first call')))
return(response.to_string())

if __name__ == "__main__":
    app.run(host='0.0.0.0', debug=True)

Here again, you can implement the same functionality using one of our PHLO templates. Your PHLO would look like:

Create a PHLO to receive incoming call

For more information about migrating your Voice applications to Plivo, check out our detailed use case guides, available for all seven programming languages and PHLO.

How to forward an incoming call

You can migrate an application for forwarding an incoming call from Twilio to Plivo just as seamlessly, as in this example:

Twilio Plivo
from flask import Flask
from twilio.twiml.voice_response
import Dial, VoiceResponse, Say

app = Flask(__name__)


@app.route("/forward_call", 
methods=['GET', 'POST'])
def forwardcall():
   """Forward the incoming phone calls to 
  connect the caller to another party"""
   # Start our TwiML response
   response = VoiceResponse()

   # Dial verb to forward the call
   response.dial('415-123-4567')
   response.say('Goodbye')

   return str(response)

if __name__ == "__main__":
   app.run(debug=True)
   
from flask import Flask,
request, make_response, Response
from plivo import plivoxml

app = Flask(__name__)



@app.route('/forward_call',
methods=['GET', 'POST'])
def forwardcall():

    response = plivoxml.ResponseElement()
    response.add(
        plivoxml.DialElement().add(
        plivoxml.NumberElement('15671234567')))
    return(response.to_string())

if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)

Here again, you can implement the same functionality using one of our PHLO templates. Your PHLO would look like:

Create a PHLO to receive incoming call

For more information about migrating your Voice applications to Plivo, check out our detailed use case guides, available for all seven programming languages and PHLO.

More use cases

You can migrate your applications serving other use cases too.

Simple and reliable

And that’s all there is to migrate your Python voice app from Twilio to Plivo. Our simple APIs work in tandem with our Premium Communications Network. See for yourself — sign up for a free trial account.

Dec 2, 2021
5 mins

Lessons in CPaaS Leadership: Managing Costs at Scale

Manage costs at scale with Plivo. Lower unit costs than Twilio for voice calls and SMS text messaging.

CPaaS

Let’s face it — among communications platforms as a server (CPaaS), Twilio is the 800-pound gorilla in terms of market share. It’s the modern embodiment of the old saying “Nobody ever got fired for buying IBM.” But one thing you can’t say about Twilio is that it’s budget-friendly.

Fortunately, just as there were worthwhile alternatives to Big Blue back in the day, there are good alternatives to Twilio today. Plivo of course is one of them, and a key advantage is that it lets businesses of all sizes better manage their costs at scale. In this latest post in our Lessons in CPaaS Leadership series, we focus on all the ways a platform can save — or cost — a business money.

What costs do businesses that use cloud communications platforms have to consider? They start with unit costs to send messages and make calls, but they also include things like support contracts and sometimes phone number rental.

On a unit cost basis, it’s easy to see Plivo’s advantages. Check out our prices; check out Twilio’s. Individual line items vary, but Plivo is lower in every case — on average around 35% lower. We wrote a blog post that dives into the details.

In both cases, the individual rate differences are tiny: It costs half a cent to send an SMS text message through Plivo, .75 cents through Twilio, for instance. But you wouldn’t need a CPaaS platform if you were sending just a few messages a day. When you scale up to business volumes, those tiny differences add up to tens of thousands of dollars per month. That’s a significant amount you can save with Plivo every month.

Quality affects cost

But there’s more to the cost equation than unit costs. Consider quality of service. If your CPaaS can’t reliably deliver text messages across every locale where you have customers, you have to add in the cost of resends. Similarly, with voice calls, poor connections can require people to hang up and try again. You pay for every voice call made and received, so if you need multiple attempts to get a clear line as a result of poor quality, the costs increase quickly. Lower quality also leads to higher customer support costs.

Plivo emphasizes connection quality because our customers demand reliable, high-quality routes. Over the past decade we’ve built a premium communications network that none of our competitors can match, thanks to direct partnerships with Tier 1 carrier networks all across the globe. We rely on high-quality local carriers, and don’t try to cut costs by using cheaper aggregators that exploit lower-quality routes. Low latency and high reliability mean your messages and voice calls need fewer retries than with other CPaaS alternatives.

Our direct partnerships and strong carrier relationships also let us lower costs, because the volume of traffic we send across our partners networks enables them to charge lower rates, and the savings we receive are reflected in the rates we offer.

It works for Deckers

Plivo customer Deckers Brands has seen how well Plivo can save an organization money. In an effort to lower support costs, the footwear giant built an application that texted customers to let them know where their orders were every step of the way. Adopting Plivo was nearly seamless — with a simple API and great documentation,​ implementing Plivo only took a week, says Jacob Martinez, project manager for Deckers’ ecommerce team.

With better communication, the company succeeded in reducing its support costs. The average cost per contact, Martinez says, is less than half of one percent of the cost of telephone contact, and track-package calls have decreased between 15 and 20% year-over-year since the launch of SMS delivery status notification. Using SMS to preempt those calls has paid for itself many times over.

What’s better than low cost? No cost!

What better way to manage costs at scale than to have no cost? In countries where receiving SMS messages is supported, Plivo lets businesses get incoming text messages for free. Unit costs of zero scale very well.

We also offer free trial accounts, and even give prospective customers usage credits so they can try building applications for any use case.

What’s the bottom line?

If two solutions can meet their needs, people generally decide between them on the basis of cost. Plivo is a cost-effective solution for small, midsize, and enterprise businesses because it helps them manage costs as their usage scales up. After a one-time migration project (and we make migration easy) you can be banking savings every month on your voice and SMS communications.

For more information on Plivo’s advantages, read our other Lessons in CPaaS Leadership blog posts: Find out why reliability, a strong carrier network, consultative customer support, and feature parity with Twilio make Plivo stand out among cloud communications platforms.

Dec 1, 2021
5 mins

How to Migrate Your Python SMS Application from Twilio to Plivo

Plivo's SMS API and Voice API enables businesses to communicate with their customers at global scale. Sign up for free now.

Python SDK
SMS API
Migration

Migrating your Python SMS app from Twilio to Plivo is a seamless and painless process. The two companies’ API structures, implementation mechanisms, XML structure, SMS message processing, and voice call processing are similar. We wrote this technical comparison so that you can scope between Twilio and Plivo APIs for a seamless migration.

Understanding the differences between Twilio and Plivo development

Most of the APIs and features that are available on Twilio are also available on Plivo and the implementation mechanism is easier as the steps involved are almost identical. This table gives a side-side comparison of the two companies’ features and APIs. An added advantage with Plivo is that not only can you code using the old familiar API/XML method, you can also implement your use cases using PHLO (Plivo High Level Objects), a visual workflow builder that lets you create workflows by dragging and dropping components onto a canvas — no coding required.

Features and APIs Twilio Plivo Similarities Implementation Interface
SMS API: Send SMS/MMS messages Request and response variables’ structure API
PHLO
Managed number pool for US/CA Messaging Copilot Powerpack Feature parity API
Console
Geo Permissions Feature parity Console
SMS Sender ID registration Feature parity Console
Number Lookup API API Parity API
Phone number management Feature parity API
Console
Validating Requests Feature parity API
XML
Subaccounts Feature parity API
HTTP callbacks Feature parity API
XML
PHLO

Plivo offers one unique advantage: Not only can you code using APIs and XML, you can also implement your use cases using PHLO (Plivo High Level Objects), a visual workflow builder that lets you create workflows by dragging and dropping components onto a canvas — no coding required.

Plivo account creation

Start by signing up for a free trial account that you can use to experiment with and learn about our services. The free trial account comes with free credits, and you can add more as you go along. You can also add a phone number to your account to start testing the full range of our voice and SMS features. A page in our support portal walks you through the signup process.

You can also port your numbers from Twilio to Plivo, as we explain in this guide.

Migrating your Python SMS application

You can migrate your existing application from Twilio to Plivo by refactoring the code, or you can try our intuitive visual workflow builder PHLO. To continue working with the APIs, use one of the quickstart guides to set up a development environment for your preferred language. Plivo offers server SDKs in seven languages: Python, Node.js, .NET, Java, Python, Ruby, and Go. For another alternative that lets you evaluate Plivo’s SMS APIs and their request and response structure, use our Postman collections.

How to send an SMS message

Let’s take a look at the process of refactoring the code to migrate your app from Twilio to Plivo to set up a simple Python application to send an SMS message by changing just a few lines of code.

Twilio Plivo
import os
from twilio.rest import Client

account_sid =
os.environ["TWILIO_ACCOUNT_SID"]
auth_token =
os.environ["TWILIO_AUTH_TOKEN"]
client = Client(account_sid, auth_token)

message = client.messages.create(
    body="Hi there", 
    from_=" 15017122661", 
    to=" 15558675310"
)

print(message)
   
import os, plivo

auth_id =
os.environ["PLIVO_AUTH_ID"]
auth_token =
os.environ["PLIVO_AUTH_TOKEN"]
client = plivo.RestClient(auth_id, auth_token)

message = client.messages.create(
    src="+14151234567",
    dst="+14157654321",
    text="Hi there",
)
print(message)

Alternatively, you can implement the same functionality using one of our PHLO templates. For example, if you want to send an SMS message, your PHLO would be this:

Create PHLO for outbound SMS

How to receive and reply to SMS

You can migrate an application for receiving and replying to an incoming SMS from Twilio to Plivo just as seamlessly, as in this example:

Twilio Plivo
from flask import Flask, request, redirect
from twilio.twiml.messaging_response
import MessagingResponse

app = Flask(__name__)

@app.route("/reply_sms", methods=
["GET", "POST"])
def sms_reply():
    """Respond to incoming calls with a simple
    text message."""
    # Start our TwiML response
    resp = MessagingResponse()

    # Add a message
    resp.message("Thank you, we have 
received your request.")
    
    return str(resp)


if __name__ == "__main__":
    app.run(debug=True)
   
from flask import Flask, request,
make_response, Response
from plivo import plivoxml

app = Flask(__name__)


@app.route("/reply_sms",
methods=["GET", "POST"])
def sms_reply():

    from_number = request.values.get("From")
    to_number = request.values.get("To")
    text = request.values.get("Text")
    
    # Plivo Message XML to handle Reply
    response = plivoxml.ResponseElement()
    response.add(
        plivoxml.MessageElement(
            "Thank you, we have received your
            request.", 
            src=to_number, 
            dst=from_number
        )
    )
    
    return Response(response.to_string(),
    mimetype="application/xml")


if __name__ == "__main__":
    app.run(debug=True)

Here again, you can implement the same functionality using one of our PHLO templates. Your PHLO would look like:

With Dynamic Payload

For more information about migrating your SMS applications to Plivo, check out our detailed use case guides, available for all seven programming languages and PHLO.

How to send an MMS message

Let’s take a look at the process of refactoring the code to migrate your app from Twilio to Plivo to set up a simple Python application to send an MMS message by changing just a few lines of code.

Twilio Plivo
import os
from twilio.rest import Client

account_sid = os.environ['TWILIO_ACCOUNT_SID']
auth_token = os.environ['TWILIO_AUTH_TOKEN']
client = Client(account_sid, auth_token)

message = client.messages.create(
    body='This is the ship that made the Kessel Run in fourteen parsecs?',
    from_='+15017122661',
    media_url=
['https://c1.staticflickr.com/3/2899/14341091933_1e92e62d12_b.jpg'],
    to='+15558675310')
print(message)
   
import os, plivo

auth_id = os.environ["PLIVO_AUTH_ID"]
auth_token = os.environ["PLIVO_AUTH_TOKEN"]
client = plivo.RestClient(auth_id, auth_token)

message = client.messages.create(
    src='+14151234567',
    dst='+14157654321',
    text='hey there!',
    media_urls=
['https://media.giphy.com/media/26gscSULUcfKU7dHq/source.gif'],
    type_='mms')
print(message)

Alternatively, you can implement the same functionality using one of our PHLO templates. For example, if you want to send an MMS message, your PHLO would be this:

Create PHLO for outbound MMS

More use cases

You can migrate your applications serving other use cases too.

Simple and reliable

And that’s all there is to migrate your Python SMS app from Twilio to Plivo. Our simple APIs work in tandem with our Premium Communications Network to guarantee the highest possible delivery rates and the shortest possible delivery times for your SMS messages. See for yourself — sign up for a free trial account.

Nov 29, 2021
5 mins

Deepgram AI Summit — Voice is an Essential Asset for All Companies

Plivo CEO Venky B joined the Deepgram AI Summit to discuss the importance of voice as an essential asset for companies.

Company

Plivo co-founder and CEO Venky B. spoke during a recent online summit about voice-enabled experiences. The event was sponsored by speech-to-text platform Deepgram, which provides speech APIs to deliver AI-enhanced transcription.

Deepgram CEO and Co-Founder Scott Stephenson started the event with a keynote in which he pointed out that voice can bring people together during these days when we’re all staying apart. He noted the value of AI to handle tasks and save expensive human time for uses for which humans are best suited. You can check out the recording of the event for his discussion on the relative ease of labeling images, which is a mature technology, and extracting insights from audio.

Some of the difficulties with speech recognition up until now that Stephenson noted included one-size-fits-all speech models that don’t take into account specific use cases, such as a company’s product names or industry acronyms, and may be challenged by things like accents and background noise. Customers can’t improve the accuracy of these off-the-shelf models. AI-assisted technology like Deepgram’s can train models to perform better — and better performance, meaning both speed and accuracy, matters for downstream tasks. And to be useful, actions have to be repeatable, which means they have to be cost-effective.

The roundtable Venky participated in was the first of three during the summit, and focused on the potential for voice technology and voice data. Moderator Dan Miller, Lead Analyst and Founder of Opus Research, hosted the panel, which also included

  • Pete Ellis — Chief Product Officer, Red Box
  • Shadi Baqleh — Chief Operating Officer, Deepgram
  • Ted McKenna — SVP, Research and Innovation, Tethr

Venky noted that we’re seeing more adoption of voice for sales and customer use cases. In the post-COVID world there’s been huge acceleration around voice interactions, voice transcription, and voice analytics.

Miller cited an Opus Research survey that confirmed a trend toward real-time transcription use cases. Ellis noted that real-time transcription for sales and agent assistance has exploded in the last four months.

Baqleh said that over the last five or six months, half of Deepgram’s opportunities have involved real-time assistance. He cited as an example the benefit of immediate close-captioning for meetings that involve remote workers, and he pointed out that people are now more willing to be recorded than they were before the pandemic.

Ellis raised contact centers as an example, pointing out that there can be about 50 pieces of metadata per call for contact center agents. Getting a company to adopt voice transcriptions and perform analysis on them is a challenge because people don’t know what they don’t know, he said.

Venky agreed that agent assist is a huge use (which, though it didn’t come up, is part of the reason for Plivo’s new Contacto contact center platform). He pointed out the potential benefit of tagging and categorizing conversations and using support conversation information to inform marketing and sales initiatives. McKenna agreed with the value of “closed-loop actions” post conversations — taking steps to make sure customers are happy. Miller also pointed out the value of detecting in real time whether agents have fallen out of compliance with some mandated compliance practice.

Moderator Miller then wondered whether, given user acceptance of chatbots over the last few years, there were implications for voicebots. Venky said, “We’re seeing hybrid interactions. Internally we call this Jarvis. How do we augment customer assists, even if there’s a human being in the interaction — then how do we take this intelligence back and feed it into the bots?”

McKenna brought up the trend toward automating rote tasks in customer interactions, but asked, “Is it for them or for us? Do customers prefer that? I think that’s an open question.”

Baqleh said, “I think it’s both.” He said if you can involve AI into conversation and workflow you’re better off. You’ll have more efficient and faster ways to have customer responses and solve customer problems. The more you can help customers with their personal workflows, he said, the better off you are.

How to start exploiting voice technology

In the final part of the discussion, all the participants agreed that voice technology today is scalable and reliable, and each suggested a good way to start using it.

Ellis said you start by capturing information and putting it into a format that’s usable. Then you can figure out what you can do with it. You can use it to see how your company is dealing with its customers.

Baqleh said that if companies don’t start doing that now they’re going to fall behind. But, he suggested, “don’t boil the ocean” — pick one use case, win at that, then expand.

McKenna agreed, saying customer disloyalty is the place to start. Businesses should look for ways to improve situations with unhappy customers.

With the final word, Venky suggested picking a use case with a high ROI, so if you execute well it will have the most impact.

To close the session, Miller pointed out that voice technology isn’t just a call center story. It’s useful across the whole organization. Multiple touchpoints can benefit from the ingestion of all conversations and treating that information as valuable input.

It’s easy to get started.
Sign up for free.

Create your account and receive trial credits or get in touch with us.

Grid
Grid