What is SMS Pumping: Plivo’s Quick Guide
Learn about SMS pumping, the risks it poses to businesses, how fraudsters generate fake traffic to exploit them, and how to prevent it.
In the digital age, SMS remains a cornerstone for user authentication, particularly through One-Time Passwords (OTPs). However, this reliance has made businesses vulnerable to a growing threat: SMS pumping fraud.
What is SMS pumping?
SMS pumping, also known as Artificially Inflated Traffic (AIT) or SMS toll fraud, is a fraudulent scheme where attackers exploit SMS-based services to generate large volumes of fake traffic. This is typically achieved by:
- Automated Bots: Using bots to flood online forms with fake OTP requests.
- Premium Rate Numbers: Directing these requests to phone numbers that incur higher charges, often controlled by the fraudsters or complicit telecom operators.
The perpetrators profit by receiving a share of the revenue generated from these inflated SMS charges, leaving businesses to bear the financial burden.
Real-World Impact: The Twitter Case
A notable example of SMS pumping's financial impact is Twitter (now X). In 2023, Elon Musk revealed that the platform was losing approximately $60 million annually due to SMS pumping fraud. The scheme involved over 390 telecom operators worldwide, who were either complicit or negligent in allowing the abuse of SMS services.
How does SMS pumping work?
The process typically unfolds as follows:
- Targeting Vulnerable Endpoints: Attackers identify websites or applications that send OTPs via SMS.
- Flooding with Requests: Bots submit numerous fake requests, often using disposable or premium-rate phone numbers.
- Revenue Generation: Each SMS sent to these numbers incurs a cost, which is shared with the fraudsters.
This leads to significant financial losses for businesses, as they pay for messages that serve no legitimate purpose.
Signs Your Business Might Be a Target
Be vigilant if you notice:
- Unusual Traffic Patterns: A sudden spike in OTP requests, especially from unfamiliar regions.
- Sequential Number Requests: Multiple OTP requests to consecutive phone numbers, indicating automated bot activity.
- Low Conversion Rates: A high number of OTPs sent but a low rate of successful authentications.
Preventive Measures: Safeguarding Your Business
To protect against SMS pumping fraud, consider implementing the following strategies:
- Rate Limiting: Restrict the number of OTP requests per user or IP address within a specified time frame.
- Bot Detection: Use CAPTCHA or other bot detection mechanisms to prevent automated submissions.
- Geo-Blocking: Limit OTP requests to regions where your user base is located.
- Traffic Monitoring: Regularly analyze traffic patterns to identify and mitigate suspicious activities.
Plivo’s Solutions to SMS Pumping
Recognizing the growing threat of SMS pumping, Plivo is proud to offer two innovative tools, free of charge, designed to protect your business from fraudulent SMS traffic:
- SMS Pumping Protection for OTP Traffic: This solution is specifically built to safeguard your SMS API endpoints that handle OTP traffic. By detecting and preventing fraudulent OTP requests, it helps ensure your messaging services remain both secure and cost-effective. Read more about SMS Pumping Protection here.
- Fraud Shield for Verify Applications: Designed for applications leveraging Plivo’s Verify API, Fraud Shield delivers advanced fraud detection by analyzing traffic patterns, identifying anomalies, and blocking suspicious activities. This ensures your verification processes stay protected from abuse. Read more about Fraud Shield here.
Learn more about Plivo’s tools for combating SMS pumping by requesting a trial.
.jpg)
RCS Marketing 101: Your Complete Guide
Discover how RCS marketing delivers rich, branded messages that drive engagement for your business.
SMS marketing works, but let’s be honest: it feels a bit outdated compared to modern apps.
But what if you could send rich, interactive messages with branded content, images, buttons, and carousels straight to your customers’ native messaging apps?
Rich communication services (RCS) makes that possible.
If you’re ready to explore how RCS marketing can transform your engagement strategy, this guide will walk you through everything you need to know. Let’s get started.
What is RCS marketing?
RCS marketing uses rich communication services to send interactive, branded messages through a customer’s default messaging app. It’s a modern upgrade to SMS that lets businesses share images, buttons, carousels, and more — all without needing third-party apps.
A user on Reddit summed up this perfectly:

RCS lets you send messages that are visually branded with logos and colors while remaining interactive. This turns static updates into an app-like experience inside a message.
This shift is part of a broader industry move, led by Google and backed by major mobile carriers, to upgrade messaging infrastructure and make RCS the default standard on Android devices.
As support continues to grow, businesses are adopting RCS as part of their customer engagement strategy. Platforms like Plivo make that adoption easier with a reliable, enterprise-grade gateway to deliver rich, reliable RCS campaigns at scale.
RCS vs. SMS marketing: A quick comparison
Marketers today are looking for ways to deliver more interactive and visual communication, and RCS is clearly leading the way.
While SMS still works well for simple alerts, it lacks the creativity and engagement that RCS marketing offers.
Let’s take a quick look at RCS vs. SMS marketing.
4 key benefits of RCS marketing
RCS marketing makes messaging feel more natural for both you and your customers. And since you can see what’s working and what’s not, it’s easier to pivot your strategy and get better results.
Here are its four key benefits.
1. Improved user interaction
One of the biggest advantages of RCS marketing is how seamless it makes the experience for your customers. Instead of typing out replies or clicking a link to open a website, users can just tap a button right inside the message.
Want them to book a demo, check order status, or browse products? It’s all possible with just a tap.
Fewer steps mean less effort, and that leads to more people following through. In fact, individuals spend up to 37 seconds engaging with RCS messages, which is a lot longer than most other types of mobile messaging.

That extra time and interaction can make all the difference when you’re trying to convert interest into action.
2. Consistent brand experience
RCS marketing doesn’t just tell people who you are — it shows them.
Verified business profiles help people know they’re getting messages from the real brand. Every message shows your brand’s logo, name, colors, and a checkmark. These small details make it clear that the message is coming from a genuine source.

This consistency matters because 88% of people are more likely to buy from a brand they trust.
3. In-depth analytics
With RCS marketing, you can track open rates, button clicks, and how people interact with each part of your message.
You get clear visibility into what’s working and where users are dropping off.
This makes it much easier to measure the return on investment (ROI) and fine-tune your campaigns. The more you understand how people engage, the better you can shape your messaging for results.
4. Higher conversion potential
RCS marketing makes it easier for customers to take action — whether that’s browsing products, booking a service, or making a purchase — all within the message itself.
With fewer clicks and no need to switch apps, the path to conversion feels effortless. And when it’s that easy, more people follow through.
For example, EaseMyTrip used RCS to run a post-COVID travel survey. They added quick-tap answer options and followed up with a thank-you coupon. The campaign saw a 4x higher click-through rate than email, 10x more survey completions, and a 2.7% increase in conversion rate.
5 major use cases of RCS marketing
Here are five major use cases showing how brands are using RCS marketing effectively.
1. Product promotions
RCS makes product promotions feel more like browsing a store than reading a message. Brands can send image carousels that customers can swipe through to explore new arrivals, check product details, and see what’s available without leaving their messaging app.

2. Abandoned cart reminders
The average cart abandonment rate is over 70%, which means most shoppers never make it to the finish line. RCS marketing can help bring them back by making the reminder more engaging and easier to act on.
You can send a message that shows exactly what they left behind, along with a clear button to complete the purchase. It’s visual, straightforward, and the entire experience stays within their messaging app.
3. Appointment confirmations and reminders
A PhD thesis from Manchester Metropolitan University found that forgetfulness is the most common reason people skip their appointments.
RCS makes it easier for both businesses and customers to stay on the same page. You can send a message that shows the appointment details along with a simple calendar view. Add buttons to confirm, reschedule, or cancel — all within the chat.

4. Customer surveys and feedback
Getting feedback is important, but most customers lack the time or patience to complete lengthy forms. RCS marketing makes it easier by allowing brands to ask short, targeted questions and receive quick responses.
Plus, the rich features of RCS let you include images, ratings, or multiple-choice options, making feedback feel more like a conversation.
5. Customer support follow-ups
After a support request is resolved, following up shows customers you care and helps close the loop on their experience. But if the follow-up message gets buried in an email inbox or goes unnoticed, that opportunity to connect is lost.
With RCS marketing, you can send a quick message to check if everything’s working fine. You can include helpful buttons like “Change Password,” “Manage Account,” or “Talk to Support.”

RCS marketing myths and realities
Despite RCS marketing’s growing adoption and proven results, some common misconceptions still hold businesses back from trying it. Let’s look at a few of the biggest myths and what’s actually true.
Myth 1: RCS marketing is too expensive
At first glance, RCS business messaging can seem like a pricey upgrade. Rich visuals, tap-to-action buttons, and branded layouts look premium, so it’s easy to assume they come with a hefty cost.
But cost alone doesn’t tell the full story.
What you get in return matters more. RCS drives significantly stronger engagement with higher click-through rates, increased interactions, and better overall outcomes.
Take Club Comex, the loyalty program of North American paint brand Comex. They sent two rich and interactive RCS campaigns to their members and saw a 10x higher click-through rate, which helped increase revenue by 115%.
That’s the value side of the equation. Better targeting and richer content mean more people click, engage, and convert.
Myth 2: RCS marketing doesn’t reach enough users to be worth it
This concern made sense in the early days of RCS, when adoption was still catching up. But the landscape looks very different now.
In June 2024, the 12-month growth of RCS users reached 36.3%, showing faster uptake than other messaging channels. More Android devices support RCS by default, and it’s being rolled out across more networks globally. Even Apple has announced support, which means RCS is on track to reach a massive number of smartphone users worldwide.
With that kind of growth and widespread support, the hesitation around RCS is starting to fade. Brands can confidently invest in RCS marketing knowing it will connect with more customers than ever before.
Myth 3: RCS gets treated like spam and ends up ignored just like emails
Unlike email, RCS messages appear directly in the user’s primary messaging app alongside personal conversations. They include rich media and interactive elements, making them more engaging and less likely to be ignored.
This creates a more natural, conversational experience that drives higher open and response rates than traditional marketing channels.
Why choose Plivo for your RCS marketing needs
With RCS, you can turn simple messages into rich, branded conversations that feel more like chatting than broadcasting.
Plivo gives you the tools to make that shift without the hassle. From verified messaging to smart automation, everything works together to help you connect better and respond faster.
When combined with AI Agents and a unified customer data platform, RCS becomes more than just messaging. You can deliver personalized experiences at scale, automate everyday interactions, and keep conversations flowing without lifting a finger.
Here’s what you get with Plivo’s RCS API:
- Real-time personalization: AI Agents tailor conversations using customer profiles and behavior triggers to improve engagement and conversions.
- Multi-channel fallback: If RCS isn’t supported, messages automatically switch to SMS to ensure delivery and maintain consistent communication.
- Conversational automation: AI Agents handle FAQs, process orders, schedule deliveries, and route complex queries within RCS.
- All-in-one messaging platform: Manage RCS, SMS, WhatsApp, Voice, and more from a single dashboard.
- Reliable performance: 99.99% uptime and global infrastructure keep your campaigns running smoothly.
With Plivo’s no-code tools, you can quickly launch AI-powered RCS messaging across channels and deliver a consistent customer experience from day one.
See how you can launch your first RCS marketing campaign with Plivo by requesting a demo today!

WhatsApp Agent Setup: How to Launch AI-Powered Conversations at Scale
Learn how WhatsApp agent setup works using Plivo to launch AI-powered, no-code agents that handle support, sales, and engagement at scale.
Your customers are on WhatsApp but are your agents?
If you’re still relying on manual replies, scripted chatbots, or email follow-ups, you’re leaving response time and revenue on the table.
The smarter path? AI-powered WhatsApp agents. They’re full-service, no-code agents that can resolve issues, qualify leads, and send personalized offers 24/7.
In this guide, we’ll walk you through WhatsApp agent setup using Plivo and understand how these agents help you automate conversations that convert.
What is a WhatsApp AI agent?
A WhatsApp AI agent is an automation designed to operate over the WhatsApp Business API. Unlike scripted bots, agents are built to understand intent, pull in context from your internal systems, and complete business tasks like answering account-specific questions or initiating transactions.
Plivo’s WhatsApp AI agents can be trained to use your brand voice, integrated with your CRM or helpdesk, and customized to handle specific use cases, such as subscription renewals, cart recovery, refund processing, or customer onboarding.
They are accessible through a no-code interface and support a multilingual, omnichannel customer experience across WhatsApp, SMS, RCS, and voice.
What you need before setting up your agent
To go live with a WhatsApp agent, you need:
- A verified Meta Business Account
- An active WhatsApp Business Account (WABA) tied to a phone number
- Pre-approved message templates for outbound communication
- WhatsApp Business API access through a business solution provider (BSP) (Plivo offers this natively)
- A platform to design, train, and manage agents (Plivo Agent Studio)
Also read: How to Create WhatsApp Message Templates: A Complete Guide
Optional but recommended integrations:
- CRM (like Salesforce, HubSpot, or Zoho)
- Helpdesk (like Zendesk or Freshdesk)
- E-commerce or billing tools (Shopify, Stripe, etc.)
Step-by-step: How to set up a WhatsApp agent with Plivo
Follow this step-by-step guide for a smooth WhatsApp agent setup with Plivo.
Step #1: Choose your primary use case and define agent scope
Don’t build a generic bot. Start with why you’re automating. This could be handling support queries, sending order updates, re-engaging inactive customers, or managing subscription renewals.

Plivo provides a library of prebuilt AI agents for common use cases like cart recovery, lead qualification, appointment reminders, and product recommendations. You can choose to use one as-is or customize it to fit your business process. Each agent is compatible with WhatsApp and designed to operate across channels as needed.
Step #2: Build the agent using Plivo’s no-code platform
Since your API access is already set up, you can begin building your agent in Plivo’s Agent Studio. This is a visual, drag-and-drop builder where you create conversation flows using blocks that represent actions, responses, conditions, and triggers.

You can structure your flow to respond to specific keywords, match customer intent, route inquiries to different departments, or escalate to a live agent when needed. Each step in the journey can include media-rich responses like buttons, product carousels, quick replies, and file attachments.
Beyond logic design, you can also configure fallback rules for when the agent is unsure, and add human handoff conditions to ensure escalations happen smoothly with full context transferred to the live agent.

This step allows you to fully customize the agent’s tone, workflow, and logic to reflect how your brand communicates.4
Step #3: Train your agent with AI
Plivo supports integration with internal systems like your CRM, order management platform, inventory tools, or helpdesk. This means your agent can access real-time customer data, past orders, preferences, and policies to deliver personalized responses.
You can also connect your knowledge base, including FAQs, SOPs, product documentation, or policy articles. These resources train the agent to respond accurately and contextually, without needing scripted answers.

For natural language understanding, Plivo gives you the flexibility to choose the AI model that powers your agent.

Step #4: Test, launch, and monitor your agent
Once your flow is built and trained, run controlled tests:
- Check for flow accuracy and intent matching
- Review how it handles incomplete or unclear inputs
- Test human handoff and see if the agent transfers the full context

Plivo’s real-time dashboard lets you:
- Monitor delivery, engagement, and satisfaction metrics
- Track where users drop off in conversations
- Identify areas to improve agent logic or content
- Compare campaign and agent performance across channels
After launch, your agent keeps learning. As more customers interact, you’ll gather insight to improve how it responds or what paths it offers.
Plivo is purpose-built for WhatsApp AI agent deployment
Plivo’s platform is designed to help you move from idea to live AI-powered engagement without requiring engineering support or external consultants. When you use Plivo for WhatsApp agent setup, you get:
- Access to prebuilt agents for sales, support, and engagement
- Intuitive no-code builder (Agent Studio) that puts you in control
- Deep integration with your business systems for real-time, contextual replies
- Support for the best LLMs on the market, so your agent is trained with intelligence
- Built-in compliance with WhatsApp’s policies and global data laws
- Unified interface to manage messaging across WhatsApp, SMS, RCS, and Voice
- Enterprise-grade infrastructure with 99.99% uptime and expert onboarding support
Automate outcomes with WhatsApp agent setup in Plivo
Smart WhatsApp automation starts with smart setup. With Plivo's no-code platform, you can automate customer conversations, boost sales, and scale support — all without a development team.
Plivo offers the tools to build agents that reflect your brand, the infrastructure to scale securely, and the intelligence to adapt with your customer needs.
Whether you're trying to cut support wait times, recover abandoned carts, or drive upsells through personalized outreach, a well-built WhatsApp agent can make it happen, and Plivo makes it achievable.
Ready to get started? Request a free trial today!

The Definitive Guide to Automating WhatsApp for Business
Learn how WhatsApp automation can simplify customer communication and scale operations. Know about its key benefits and use cases. Get started today.
Remember when WhatsApp was just a simple messaging app? Launched in 2009, it was a tool for friends and family to stay in touch.
Fast-forward to today, and WhatsApp has become a global powerhouse with over 3 billion monthly active users. Businesses worldwide leverage WhatsApp to connect with customers, share updates, and provide support.
Many businesses struggle to keep up with the growing volume of customer messages on WhatsApp. Manually handling inquiries, sending updates, or following up on leads can quickly become overwhelming and inefficient.
This is where WhatsApp automation steps in.
By automating repetitive messaging tasks, businesses can reduce manual workload, respond faster, and deliver more personalized, timely communication.
In this article, we'll explore what WhatsApp automation is, why it's essential for modern businesses, and how you can implement it to improve customer engagement and operational workflows.
What is WhatsApp automation?
WhatsApp automation is the use of technology to automatically send and manage messages on the platform, especially for business and customer engagement purposes.
It doesn’t require human intervention for every interaction. As a result, businesses can handle customer inquiries, deliver updates, and engage with prospects efficiently.

With WhatsApp business automation, you can:
- Auto-respond to FAQs and reduce ticket volume.
- Reduce customer support load with proactive messaging.
- Route complex support queries to live agents only when needed.
- Send order confirmations and delivery updates automatically.
- Share return instructions based on customer actions.
- Run re-engagement campaigns with smart timing.
- Integrate with Shopify, Magento, and more for real-time updates.
- Trigger workflows from CRMs or e-commerce platforms.
- Keep messaging compliant with auto opt-outs and logs.
Here’s a breakdown of the three main types of automated messaging on WhatsApp:
Key benefits of WhatsApp automation
By automating routine tasks, WhatsApp can help your business stay responsive and consistent across customer touchpoints. Here’s how it can benefit your business:
Reduce manual workloads and response times
When you automate WhatsApp interactions, every department, from marketing to customer service, runs more smoothly.
By automating routine tasks like order updates, FAQs, and customer inquiries, businesses can significantly reduce the manual effort required.
This means your team spends less time on repetitive tasks and more time focusing on high-priority interactions.
Increases the scalability of customer interactions
As your business grows, the number of customer interactions increases. Automation allows you to scale communication efforts without hiring additional staff or losing the personal touch.
Whether you're dealing with 50 or 5,000 customers, automated responses ensure that each inquiry is handled swiftly and consistently.
Enhances customer experience through personalization
Automated WhatsApp messages can be personalized based on customer data, creating a more relevant and tailored experience.
From addressing customers by name to offering product recommendations based on past purchases, personalization makes customers feel valued. This leads to higher engagement rates and improved loyalty.
Cost-effectiveness compared to manual processes
WhatsApp automation eliminates the need for large customer support teams and reduces the time spent on repetitive tasks.
This saves on operational costs and also leads to a more efficient allocation of resources.
5 popular use cases of WhatsApp automation across industries
Businesses everywhere are finding new ways to use WhatsApp automation. Here are five popular examples:
1. Customer support
Automating common FAQs and routine inquiries on WhatsApp helps customers get instant answers anytime. This reduces the number of tickets support teams have to handle, letting them focus on more complex problems.
2. E-commerce operations
Order confirmations, shipping updates, and delivery notifications keep customers informed every step of the way. Automating returns and collecting feedback via WhatsApp speeds up these processes and improves customer satisfaction.
3.Marketing and lead nurturing
Automated lead follow-ups ensure timely, consistent engagement with prospects, boosting conversion chances. Also, you can use personalized re-engagement campaigns to help bring back inactive customers with offers or updates tailored to their interests.
4.Event management and invitations
Automated WhatsApp invites, updates, and follow-ups keep your audience informed and engaged, boosting the attendance rate. This helps you stay connected and make every event a success.
5.Appointment scheduling and reminders
Timely reminders help customers remember appointments, reducing cancellations and improving the overall experience. Automation makes scheduling easier and more efficient for both businesses and customers.
Step-by-step guide to implement WhatsApp automation for your business
To successfully implement WhatsApp automation, follow these key steps that cover planning, setup, and optimization.
Step 1: Define your use cases and goals
Start by identifying which business functions, such as order updates, customer support, or lead follow-ups, will benefit most from automation.
Set clear, measurable goals like:
- Reducing response times
- Lowering manual workload
- Boosting customer engagement
This will guide your automation strategy and help you track success.
Also, ensure compliance from the start. WhatsApp requires businesses to obtain explicit customer opt-in before sending messages. To stay compliant:
- Use clear, transparent language when requesting consent.
- Collect opt-ins through channels like website forms, checkout flows, or click-to-chat ads.
- Log and manage consent within your systems for audit readiness.
Data privacy and compliance are essential for building trust and maintaining long-term customer relationships.
Step 2: Choose the right WhatsApp business API provider
Select a platform that fits your specific needs. Look for features like:
- Robust CRM integrations
- Audience segmentation
- Flexible automation workflows
These capabilities simplify your communication and scale your efforts efficiently.
Make segmentation a priority, use tagging and grouping strategies to target the right customers with the right messages.
With smart tagging and grouping, you can:
- Deliver personalized messages
- Engage the right people at the right time
- Improve conversion and retention
Step 3: Set up your WhatsApp business account
You must set up a verified WhatsApp Business account to use WhatsApp for automated messaging. This includes:
- Registering your business name and details.
- Verifying a dedicated phone number.
- Getting approval from Meta to use the WhatsApp Business API.
This ensures that your business is recognized as a legitimate sender.
Your WhatsApp API provider will typically assist with onboarding, including submitting documentation and setting up the technical aspects.
Some platforms also offer pre-built tools to help you manage mobile number registration, display name approval, and message template submissions.
Step 4: Create and submit message templates
Start by designing message templates for everyday customer interactions, such as:
- Promotional messages (e.g., limited-time offers)
- Transactional updates (e.g., order confirmations, delivery alerts)
- Support messages (e.g., ticket updates or issue resolution)
Each template must follow WhatsApp’s formatting and content policies.
Once your templates are ready, submit them through your WhatsApp API provider for Meta’s approval. Only approved templates can be used for proactive messaging.
Step 5: Build automation workflows
Now that your account and templates are ready, it’s time to connect WhatsApp with the rest of your tech stack. Integrate with:
- CRM systems (to access customer data)
- Support tools (for query management)
- E-commerce platforms (to track orders and actions)
Use event-based triggers, like a new order, a cart abandonment, or a support ticket, to automatically send relevant messages.
Additionally, plan for human fallback. Automation can’t handle everything. Build intelligent workflows that escalate to a human agent when:
- A customer requests help
- The query is too complex
- Sentiment detection flags a negative experience
This keeps your support experience smooth, responsive, and frustration-free.
Step 6: Test, launch, and optimize
Start with a pilot campaign to ensure everything runs smoothly.
Track key metrics:
- Response time
- Open rate
- Conversion rate
Use these insights to refine your workflows, improve message content, and adjust targeting.
Best practices for WhatsApp automation
Following some proven best practices is essential to get the most out of WhatsApp automation. Here’s what you need to know:
Tips for optimizing messaging frequency and timing
To keep your audience interested, it's vital to message thoughtfully and strategically. Here are some quick tips:
- Avoid over-messaging to prevent unsubscribes.
- Use analytics to identify when your audience is most active and receptive.
- Space out messages to keep it natural.
- Monitor response rates and adjust based on customer behavior and feedback.
Leverage data analytics for campaign performance
By tracking metrics such as open rates, click-through rates, and response times, you gain valuable insights into what works and what doesn’t. Use this data to refine your messaging, target relevant audience segments, and optimize timing.
Regularly reviewing analytics helps you make informed decisions that boost engagement and drive better results over time.
Compliance and customer privacy protection
To protect your customers and stay compliant, focus on these key areas:
Enhance customer communication with Plivo’s AI WhatsApp automation
The growing demand for instant, tailored communication on WhatsApp puts pressure on businesses to respond quickly. Customers expect fast, personalized replies around the clock, and doing this manually often leads to delays, inconsistent service, and missed opportunities.
Finding a way to scale these conversations efficiently is critical for businesses looking to stay competitive.
That’s where Plivo comes in, an industry-leading omnichannel platform that automates and personalizes WhatsApp conversations, delivering timely responses at scale.
By leveraging Plivo’s WhatsApp AI agents, businesses can manage a wide range of customer communication tasks, from pre-sales inquiries to post-purchase support, without increasing their team size.
Here’s how Plivo can enhance your customer communication:
- Brand-aligned AI agents: You can customize the AI agents to reflect your brand’s voice, tone, and style. This makes all customer interactions align with your brand’s identity and deliver a personalized experience.
- AI customer service agent: Plivo’s AI agents work around the clock, ensuring your customers receive timely responses, regardless of the time zone. These agents process orders, resolve support issues, and answer questions.

- Natural, human-like conversations: With AI agents, you can engage in context-aware conversations, mimicking human interactions. They remember customer preferences and history to provide relevant responses like a human agent would.
- Simple, volume-based pricing: Plivo charges a flat fee per conversation rather than per message, making costs predictable and scalable. Volume discounts are available to lower your total spend as your messaging needs grow.

- Built-in compliance: Plivo ensures compliance with GDPR, HIPAA, PCI DSS, ISO 27001, and SOC 2 standards.
- Guaranteed message delivery with fallback options: The platform delivers billions of messages annually and uses SMS and voice fallback channels to ensure your customers always receive important communications.
- 24/7 availability: Plivo's AI agents provide instant, 24/7 assistance, answering questions, processing orders, and resolving customer issues.
- Multilingual support: With support for 70+ languages, Plivo’s AI agents can engage with customers globally and offer a multilingual customer service experience.
- E-commerce platform integrations: Integrate seamlessly with popular e-commerce platforms like Shopify, BigCommerce, WooCommerce, and Magento to deliver a unified customer experience across all touchpoints.
With Plivo’s vast carrier network spanning over 220 countries, businesses can significantly cut SMS costs by up to 70% while achieving threefold returns on investment.
Many companies using Plivo CX have experienced remarkable results, earning an outstanding $71 for every dollar invested in their SMS marketing efforts.
Book a free demo today and see how Plivo’s AI WhatsApp agents can change your customer communication strategy.

How to Build a Voice Alerts Application the Low-Code Way Using PHLO
Plivo's SMS API and Voice API enables businesses to communicate with their customers at global scale. Sign up for free now.
You can make voice API calls to alert customers to critical issues that require immediate attention. You can play recorded audio when the call recipient answers or use text-to-speech. You can then take action based on a dialpad key they press in response. You can set different actions if the call is not answered, if the line is busy, or if you reach voicemail.
Prerequisites
To get started, you need a Plivo account — sign up with your work email address if you don’t have one already. If this is your first time triggering a PHLO, follow our instructions to set up a development environment available in different languages.
Create the PHLO
To create a PHLO, visit the PHLO page of the Plivo console. If this is your first PHLO, the PHLO page will be empty.
- Click Create New PHLO.
- In the Choose your use case pop-up, click Build my own. The PHLO canvas will appear with the Start node.Note: The Start node is the starting point of any PHLO. It lets you trigger a PHLO to start upon one of three actions: incoming SMS message, incoming call, or API request.
- Click the Start node to open the Configuration tab to the right of the canvas, then enter the information to retrieve from the HTTP Request payload — in this case, from and to numbers and a database server name.
- From the list of components on the left side, drag and drop the Initiate Call component onto the canvas. This adds an Initiate Call node onto the canvas. When a component is placed on the canvas it becomes a node.
- Draw a line to connect the Start node’s API Request trigger state to the Initiate Call node.
- In the Configuration tab of the Initiate Call node, give the node a meaningful name. To enter values for the From and To fields, start typing two curly brackets. PHLO will display a list of all available variables; choose the appropriate ones. When you use variables in a PHLO, the values are retrieved from the HTTP Request payload you defined in the Start node.
- Validate the configuration by clicking Validate. Every time you finish configuring a node, click Validate to check the syntax and save your changes.
- Next, create a node from the Play Audio component. Connect the Initiate Call node to the Play Audio node using the Answered trigger state.
- Click the IVR Menu node to open its Configuration tab. Rename the node to Gather_Input. You can rename nodes as you like to improve your PHLO’s readability. For this example, select 1 and 2 as the allowed choices, and enter a message to play to the user in the Speak Text field. If you like, you can also configure the Language and Voice fields for the message.
- Because we specified two allowed choices in the IVR menu, we need to drag and drop three Play Audio nodes onto the canvas — one for each option, plus one for invalid input. Rename the nodes Invalid_Input_Prompt, Resolved_Prompt, and Escalation_Prompt in their Configuration tabs, and enter appropriate messages in their Prompt fields.
- From the Gather_Input node, connect the Wrong Input trigger state to the Invalid_Input_Prompt node.
- From the Invalid_Input_Prompt node, connect the Prompt Completed trigger state back to the Gather_Input node. This sends the user back to the IVR menu if they press an incorrect option, or if they don‘t press any key.
- From the Gather_Input node, connect the 1 and 2 trigger states to the Resolved_Prompt and Escalation_Prompt nodes.
- Configure all three Play Audio nodes to each play a relevant message to the user. Audio playback can either be static or dynamic or a combination of the two; for example, you could specify in the Speak Text field “Your status is,” followed by a variable to include the dynamic text. You can bring up a list of available variables by typing two curly brackets in the Speak Text field.
- Drag and drop the Initiate Call component onto the canvas and rename the node to Escalation_Call.
- Draw a line to connect the Prompt Completed trigger state of the Escalation_Prompt node to the Escalation_Call node. This triggers a call to another phone number and announces the alert. You can set up any number of escalation numbers by creating similar nodes for each phone number.
- Draw a line to connect the Answered trigger state of the Escalation_Call node back to the Gather Input node. This will play the same prompt to the user after the original escalation call is answered and completed and give the user another chance to either resolve the call or escalate it.
- After you complete and validate all the node configurations, give the PHLO a name by clicking in the upper left, then click Save.
Your completed PHLO should look like this:

Your PHLO is now ready to test.
Trigger the PHLO
You integrate a PHLO into your application workflow by making an API request to trigger the PHLO with the required payload — the set of parameters you pass to the PHLO. You can define a static payload by specifying values when you create the PHLO, or define a dynamic payload by passing values through parameters when you trigger the PHLO from your application.
With a static payload
When you configure values when creating the PHLO, they act as a static payload.

Code
Create a file and paste the below code.
Replace the auth placeholders with your authentication credentials from the Plivo console. Replace the phlo_id placeholder with your PHLO ID from the Plivo console.
With a dynamic payload
To use dynamic values for the parameters, use Liquid templating parameters when you create the PHLO and pass the values from your code to the PHLO when you trigger it.

Code
Create a file and paste the below code.
Replace the auth placeholders with your authentication credentials from the Plivo console. Replace the phlo_id placeholder with your PHLO ID from the Plivo console. Replace the phone number placeholders with actual phone numbers in E.164 format (for example, +12025551234).
Test
Save the file and run it.
Note: If you’re using a Plivo Trial account, you can make calls only to phone numbers that have been verified with Plivo. You can verify (sandbox) a number by going to the console’s Phone Numbers > Sandbox Numbers page.
Haven’t tried Plivo yet? Getting started is easy and only takes minutes. Sign up today.

Contact Centre Summit Recap: Keynote by Venky, Founder & CEO, Plivo
Our CEO, Venky, presented on Wednesday at the Contact Centre Summit Europe about CX transformation and key methods for catching up to the rigid demands of the modern intelligent consumer.
If you attended the Contact Centre Summit Europe this week, you heard some great stories from global CX leaders and technology vendors on the state of the modern Contact Center. Perhaps the most powerful part of the event was hearing event presenters and attendees alike share their common pain points and ideas, customer service hacks, and how technology plays a role in building customer loyalty.
Our CEO, Venky, presented on Wednesday on CX transformation and key methods for catching up to the rigid demands of the modern intelligent consumer. His session covered the rapid acceleration of digital adoption since the beginning of the pandemic and how many consumer brands are struggling to keep up with the technology and service demands their customers require.
Some high-level points covered by Venky include:
- Overcoming the disconnect between the experiences consumers expect and what they actually receive
- Meeting customers on their preferred channels and catching up to the tech demands of the market
- Personalizing the customer experience with powerful workflows and integrations utilizing your existing CX tools
- Using virtual agents and artificial intelligence at the right time and place to keep your agents focused on the more challenging cases and enable your customers to help themselves
- Making every agent your best agent
To see Venky’s full keynote, click play on the video below, and let us know what you think.

How to Build a Voice Notifications Application the Low-Code Way Using PHLO
Plivo's SMS API and Voice API enables businesses to communicate with their customers at global scale. Sign up for free now.
You can play recorded audio when a call recipient answers or use text-to-speech, as we show here, combining static text with dynamic information that Plivo gets from a variable. You can create and deploy a PHLO to send voice notifications with a few clicks on the PHLO canvas.
How it works
Prerequisites
To get started, you need a Plivo account — sign up with your work email address if you don’t have one already. If this is your first time triggering a PHLO, follow our instructions to set up a development environment available in different languages.
Create the PHLO
To create a PHLO, visit the PHLO page of the Plivo console. If this is your first PHLO, the PHLO page will be empty.
- Click Create New PHLO.
- In the Choose your use case pop-up, click Build my own. The PHLO canvas will appear with the Start node.
- Note: The Start node is the starting point of any PHLO. It lets you trigger a PHLO to start upon one of three actions: incoming SMS message, incoming call, or API request.
- Click the Start node to open the Configurations tab, then enter the information to retrieve from the HTTP Request payload — in this case, the From and To numbers for the call, and an item number.
- From the list of components on the left side, drag and drop the Initiate Call component onto the canvas. This adds an Initiate Call node onto the canvas. When a component is placed on the canvas it becomes a node.
- Draw a line to connect the Start node’s API Request trigger state to the Initiate Call node.
- In the Configuration tab of the Initiate Call node, give the node a name. To enter values for the From and To fields, enter two curly brackets to view all available variables, and choose the appropriate ones. The values for the numbers will be retrieved from the HTTP Request payload you defined in the Start node.
- Validate the configuration by clicking Validate. Do the same for each node as you go along.
- Next, create a node from the Play Audio component. Connect the Initiate Call node to the Play Audio node using the Answered trigger state.
- Configure the Play Audio node to play a message to the user by entering text in the Speak Text box in the Prompt section of the Configuration pane.
- Audio playback can either be static or dynamic. You define a static payload by specifying values when you create the PHLO, and a dynamic payload by passing values through Liquid templating parameters when you trigger the PHLO from your application.
- On the Play Audio Configuration tab, enter a static message (for example, “Your order has been successfully placed”) in the Speak Text field, with a variable to include the dynamic text. Enter two curly brackets to view all available variables. Choose the item number you defined in the Start node configuration tab.
- After you complete and validate the node configurations, give the PHLO a name by clicking in the upper left, then click Save.
Your completed PHLO should look like this:

Your PHLO is now ready to test.
Trigger the PHLO
You integrate a PHLO into your application workflow by making an API request to trigger the PHLO with the required payload — the set of parameters you pass to the PHLO. You can define a static payload by specifying values when you create the PHLO, or define a dynamic payload by passing values through parameters when you trigger the PHLO from your application.
With a static payload
When you configure values when creating the PHLO, they act as a static payload.

Code
Create a file and paste the below code.
Replace the auth placeholders with your authentication credentials from the Plivo console. Replace the phlo_id placeholder with your PHLO ID from the Plivo console.
With a dynamic payload
To use dynamic values for the parameters, use Liquid templating parameters when you create the PHLO and pass the values from your code to the PHLO when you trigger it.

Code
Create a file and paste the below code.
Replace the auth placeholders with your authentication credentials from the Plivo console. Replace the phlo_id placeholder with your PHLO ID from the Plivo console. Replace the phone number placeholders with actual phone numbers in E.164 format (for example, +12025551234).
Test
Save the file and run it.
Note: If you’re using a Plivo Trial account, you can make calls only to phone numbers that have been verified with Plivo. You can verify (sandbox) a number by going to the console’s Phone Numbers > Sandbox Numbers page.
Haven’t tried Plivo yet? Getting started is easy and only takes minutes. Sign up today.

How Plivo Maintains Low Latency for Global Connections
Plivo lowers network latency for faster message delivery and clearer calls by using PoPs colocated at IXP data centers across five continents
One of the advantages of Plivo’s Premium Communications Network is having points of presence (PoP) on five continents around the globe. To understand why that’s important, it helps to think about how data gets around the big ol’ network that we call the internet.
How the internet works
Have you ever thought about how web pages get to the browser running on your desktop device, or how you’re able to make a voice or video connection with someone across town or around the world?
Each device — and each application on those devices — has an address, and the network they connect to moves packets of information from one address to another.
In order for that to happen, every device on the network must speak a common language. It’s similar to the way we address postal mail: We specify a country, a state, a town, a street, a specific house on that street, a specific apartment in that house, and a specific person in that apartment to get a letter just where the sender wants it to go, and everyone who handles the letter agrees to use whatever parts of that address they need to know about to move the letter along.
In computing terms, that common language is a protocol. A protocol consists of some agreed-upon rules and definitions, including how to address data.
The internet uses a protocol called, logically enough, Internet Protocol, or IP. When an application sends data over the internet, it appends an IP header to each packet of data. The header contains address information that network devices — routers and switches — use to forward the packet to its destination.
A packet starts off on a single device — your laptop, for instance. Suppose you click on a link to set up a video call with a relative. Your browser, or whatever application you’re using, knows you want to make a connection, and it knows how to turn your click into a request. Additional software components on your computer turn that request into IP packets, and send them out from your computer to your local network through a physical network interface — a cabled or Wi-Fi network adapter.
The next stop for a packet is your local router or internet access point. It serves as an interface between your local network and the internet at large. It has (at least) two physical network interfaces — one for your local network and one that leads to your internet service provider (ISP).
If your request is for a device on your local network, your router can send the packets there quickly without having to forward them to the internet. If not, they pass through the router and upstream to your internet service provider (ISP).
The ISP’s routers examine the packet header and determine where the next stop is. If its destination is another device serviced by the same ISP, it can forward the packet to that device. Chances are that’s not the case, though — the destination is probably serviced by a different ISP. That means the packet has to pass through another router.
At each interface point, the volume of traffic increases. Your laptop handles packets from several applications — not much work, almost no delay. Your local router handles traffic from several computers in your house or business, so it needs to be a little faster. Your ISP handles traffic from thousands of customers in your area, so its routers and switches need to be faster still. Eventually, an ISP’s traffic has to leave its network.
What is an IXP?
ISPs exchange traffic with each other at internet exchange points (IXP) — a physical location where multiple organizations connect their networks. ISPs and content delivery networks (CDN) place their own network devices at IXP locations so they can make sending network traffic as fast as possible. Each of these placements is called a point of presence (PoP).
At a global level, IXPs connect with each other using extremely fast networking technology to minimize delays and get packets to their destinations as quickly as possible.
Once it reaches the ISP that services the account of the person you want to communicate with, the packet goes back down the stack — to a local area, to your recipient’s local router, and to the application on their client device. After a few more exchanges of packets back and forth, a connection is made, and you’re talking with your mother-in-law.
One of the key goals in networking is to get packets from one place to another quickly. On any given connection, speed is limited by physical constraints — the speed of light on an optical fiber cable, for instance. Each handoff between networks takes time and introduces delays, or latency. ISPs and device manufacturers strive to reduce latency so that network traffic can move as quickly as possible.
Low latency is especially important for connections like voice and video calls. Packets have to move in near real time, because people can perceive (and be annoyed by) delays of even fractions of a second. Any provider that can’t offer low latency comparable to that of a phone call is at risk of losing customers.
Latency is measured in milliseconds, and for most cellular connections latency is about 100-200 ms. So the goal for telecom providers is to keep latency lower than that. But remember, each time a packet goes through a router, it experiences added latency.
Plivo’s PoPs
To minimize latency, Plivo maintains PoPs at IXPs in seven locations:
- Northern California — North America
- Virginia — North America
- Frankfurt, Germany — Europe
- Mumbai, India — Asia
- Singapore — Asia
- Sydney — Australia
- São Paulo, Brazil — South America
Network traffic moves quickly within Plivo’s Premium Communications Network in each region, and by having local PoPs in these regions, Plivo can minimize latency for traffic that passes between regions. That’s how Plivo maintains connections with low round trip times.
Sign up today to get started!

How to Build a Voicemail Application the No-Code Way Using PHLO
Plivo's SMS API and Voice API enables businesses to communicate with their customers at global scale. Sign up for free now.
You can use voicemail to capture a caller’s message if a call recipient is unavailable. You can create and deploy a PHLO workflow to implement voicemail with a few clicks on the PHLO canvas.

Prerequisites
To get started, you need a Plivo account — sign up with your work email address if you don’t have one already. To receive incoming calls, you must have a voice-enabled Plivo phone number. You can rent numbers from the Numbers page of the Plivo console, or by using the Numbers API.
Create the PHLO
To create a PHLO, visit the PHLO page of the Plivo console. If this is your first PHLO, the PHLO page will be empty.
- Click CREATE NEW PHLO.
- In the Choose your use case pop-up, click Build my own. The PHLO canvas will appear with the Start node.Note: The Start node is the starting point of any PHLO. It lets you trigger a PHLO to start upon one of three actions: incoming SMS message, incoming call, or API request.
- Click the Start node to open the Configuration tab, then enter from and to as keys in the API Request section. To keep the PHLO dynamic, don‘t enter values for the variables.
- Once you’ve configured the node, save the configuration by clicking Validate. Do the same for each node as you go along.
- From the list of components on the left side, drag and drop the Record Audio component onto the canvas. When a component is placed on the canvas it becomes a node. In its Configuration tab, give the node a descriptive name, such as Voicemail_Message, and enter text for a message you want to play to callers.
- Draw a line to connect the Start node‘s Incoming Call trigger state to the Record Audio node.
- Once a message is recorded, send the URL of the recording to a responsible party. To do that, drag and drop the Send Message component into the canvas, and rename it Send_Recording_URL.
- In its Configuration tab, enter variables for the From and To fields. Enter two curly brackets to view all available variables, and choose the appropriate ones. PHLO will get the number from the key/value pairs set in the Start node. In the Message field, enter a message that provides context for the voicemail recipient. The message can be static or dynamic or a combination of the two.
- Give the PHLO a name by clicking in the upper left, then click Save.
Your complete PHLO should look like this.

Assign the PHLO to a Plivo number
Once you‘ve created and configured your PHLO, assign it to a Plivo number.
- On the Numbers page of the console, under Your Numbers, click the phone number you want to use for the PHLO.
- In the Number Configuration box, select PHLO from the Application Type drop-down.
- From the PHLO Name drop-down, select the PHLO you want to use with the phone number, then click Update Number.

Test
You can now call your Plivo phone number and see how the voicemail PHLO works.
For more information about creating a PHLO application, see the PHLO Getting Started guide. For information on components and their variables, see the PHLO Components Library.
Haven’t tried Plivo yet? Getting started is easy and only takes minutes. Sign up today.

How to Build an Inbound SIP Trunk for Voice Origination Using PHLO
Learn how to build an inbound SIP trunk for voice origination to enhance your business communications efficiently.
Plivo’s PHLO visual workflow builder lets you quickly create and configure a SIP trunk call forwarding system for your business. You can migrate your existing SIP trunk hosted voice application to PHLO, which then forwards your Plivo number’s incoming calls to an IP PBX and SIP endpoint.
Configure your inbound SIP trunk
Plivo provides SIP trunk configuration instructions for the most popular SIP trunking platforms, including Freeswitch, Asterisk, FreePBX, 3CX, and FusionPBX.
Prerequisites
To get started, you need a Plivo account — sign up with your work email address if you don’t have one already. To receive incoming calls, you must have a voice-enabled Plivo phone number. You can rent numbers from the Numbers page of the Plivo console, or by using the Numbers API.
Create a PHLO to forward inbound calls
To forward an incoming call, you can create and deploy a PHLO with a few clicks on the PHLO canvas.

- On the side navigation bar, click PHLO. The PHLO page will appear and display your existing PHLOs, if any exist. If this is your first PHLO, then the PHLO page will be empty.
- Click Create New PHLO to build a new PHLO.
- In the Choose your use case window, choose the Call Forwarding use case. The PHLO canvas will appear with a prebuilt template for the Call Forwarding use case.
- Configure the Call Forward node.
- Once you’ve configured the node, click Validate to save the configurations.
- After you complete the configuration, provide a name for your PHLO and click Save.
Assign the PHLO to a Plivo number to forward incoming calls
Once you’ve created and configured your PHLO, assign your PHLO to a Plivo number.
- Log in to the Plivo console.
- On the Product Navigation bar, click Phone Numbers.
- On the Numbers page, under Your Numbers, click the phone number you want to use for the PHLO.
- In the Number Configuration window, select PHLO from the Application Type list.
- From the PHLO Name list, select the PHLO you want to use with the phone number, and then click Update Number.

Test
You can now make a call to your Plivo phone number and see how the inbound call is forwarded to the list of IP PBXes and endpoint specified in the PHLO.
For more information about creating a PHLO app, see the PHLO User Guide.
For information on components and their variables, see the PHLO Components Library.
Haven’t tried Plivo yet? Getting started is easy and only takes minutes. Sign up today.

How to Build an SMS Survey Application the Low-Code Way Using PHLO
Plivo's SMS API and Voice API enables businesses to communicate with their customers at global scale. Sign up for free now.
You can build SMS surveys easily by using our PHLO visual workflow builder.
Prerequisites
To get started, you need a Plivo account — sign up with your work email address if you don’t have one already. If this is your first time triggering a PHLO with .NET, follow our instructions to set up a .NET development environment.
Create the PHLO
To create a PHLO, visit the PHLO page of the Plivo console. If this is your first PHLO, the PHLO page will be empty.
- Click Create New PHLO.
- In the Choose your use case pop-up, click Build my own. The PHLO canvas will appear with the Start node.Note: The Start node is the starting point of any PHLO. It lets you trigger a PHLO to start upon one of three actions: incoming SMS message, incoming call, or API request.
- If you plan to use a dynamic payload — passing values through parameters when you trigger the PHLO from your application — click on the Start node to open the Configuration pane. Under API Request, enter key names for the variables you want use in your payload — From, To, and Message fields.
- Once you’ve configured the node, click Validate to save the configuration.
- From the list of components on the left-hand side, drag and drop the Send Message component onto the canvas. When a component is placed on the canvas it becomes a node.
- Draw a line to connect the Start node’s API Request trigger state to the Send Message node.
- In the Configuration pane at the right of the canvas, configure the Send Message node with a sender ID in the From field. Enter the destination numbers you wish to send a message to in the To field. Put your message in the Text field.Note: You can define a static payload by specifying values when you create the PHLO, or define a dynamic payload by passing values through Liquid templating parameters when you trigger the PHLO from your application.
- Once you’ve configured the node, click Validate to save the configuration.
- From the list of components on the left-hand side, drag and drop the Branch component onto the canvas.
- Draw a line to connect the Start node’s Incoming Message trigger state to the Branch node.
- In the Configuration pane at the right of the canvas, configure the Branch node. Rename the node to Handle_Reply. For Variable to compare, enter two curly braces to view all available variables, then select Start.message.msg.
- Click the pencil icon and name the first condition Satisfied. Leave the Operation “is equal to” and enter a value of 1.
- Add a second condition. Name it Not Satisfied and enter a value of 2.
- Once you’ve configured the node, click Validate to save the configuration.
- Drag two Send Message nodes onto the canvas. Draw lines to connect them to the Handle_Reply node using the Satisfied and Not Satisfied trigger states.
- In the Configuration pane for each of the Send Message nodes, specify the From and To keys you configured in the Start node. Enter two curly brackets to display a list of all available variables. In the Message field, you can enter a static message, or combine static text with a variable that includes dynamic text if you specified the variable as a key in the Start node configuration pane.
- Rename the nodes Reply_Satisfied and Reply_NotSatisfied.
- Once you’ve configured the nodes, click Validate to save their configurations.
- From the list of components on the left-hand side, drag and drop the HTTP Request component onto the canvas. Draw four lines to connect the Sent and Failed trigger states of both the Reply_Satisfied and Reply_NotSatisfied nodes to the HTTP Request node.
- In the Configuration pane for the HTTP Request node, rename the node to Handle_Callback. Enter URL to make the request to. The default method used is GET, but you can click on the box to choose POST, PUT, or DELETE instead. Specify Headers, Auth, Params, and Body values on their respective tabs as necessary.
- Once you’ve configured the node, click Validate to save the configuration.
After you complete the configuration, give the PHLO a name by clicking in the upper left, then click Save.
Your complete PHLO should look like this:
Your PHLO is now ready to test.
Trigger the PHLO
You integrate a PHLO into your application workflow by making an API request to trigger the PHLO with the required payload — the set of parameters you pass to the PHLO. You can define a static payload by specifying values when you create the PHLO, or define a dynamic payload by passing values through parameters when you trigger the PHLO from your application.
In either case, you need your Auth ID and Auth Token, which you can get from the overview page of the Plivo console.

You also need the PHLO ID, which you can copy from the PHLO list page.

With a static payload
When you configure values when creating the PHLO, they act as a static payload.

Code
Create a file and paste the below code.
Replace the auth placeholders with your authentication credentials from the Plivo console. Replace the phlo_id placeholder with your PHLO ID from the Plivo console.
With a dynamic payload
To use dynamic values for the parameters, use Liquid templating parameters when you create the PHLO …

… and pass the values from your code when you trigger it.

Code
Create a file and paste the below code.
Replace the auth placeholders with your authentication credentials from the Plivo console. Replace the phlo_id placeholder with your PHLO ID from the Plivo console. Replace the phone number placeholders with actual phone numbers in E.164 format (for example, +12025551234).
Test
Save the file and run it.
Note: If you’re using a Plivo Trial account, you can send SMS messages only to phone numbers that have been verified with Plivo. You can verify (sandbox) a number by going to the console’s Phone Numbers > Sandbox Numbers page.
For more information about creating a PHLO application, see the PHLO Getting Started guide. For information on components and their variables, see the PHLO Components Library.
Haven’t tried Plivo yet? Getting started is easy and only takes minutes. Sign up today.

How to Build a 2FA Application the Low-Code Way Using PHLO
Plivo's SMS API and Voice API enables businesses to communicate with their customers at global scale. Sign up for free now.
Two-factor authentication (2FA) protects organizations and individuals from unauthorized data access by requiring a level of authentication beyond username and password, to provide added security in the event that those credentials are compromised. One of the simplest ways to institute 2FA types is by sending a one-time password (OTP) sent through a separate communication channel — namely, SMS messaging.
Plivo makes it easy to add 2FA via OTP delivered over SMS to your applications. Whether your applications are coded in Python, Ruby, Node.js, PHP, or C#, we’ve got you covered with language-specific SDKs.
You can create and deploy a PHLO to handle 2FA with a few clicks on the PHLO canvas and trigger it with a few lines of code.
Prerequisites
To get started, you need a Plivo account — sign up with your work email address if you don’t have one already. If this is your first time triggering a PHLO with Node.js, follow our instructions to set up a Node.js development environment.
Create the PHLO
Plivo provides a prototype for 2FA; all you have to do is select the PHLO and give it a friendly name.
Set up the demo application locally
Once you‘ve created the PHLO, download and modify the code to trigger it which is available in 5 different languages which are Python, Ruby, Node.js, PHP, or C#.
Update the config file
Edit the config file. Replace the auth placeholders with your authentication credentials from the Plivo console. Enter your PHLO ID, which you can find on the Plivo console. Replace the phone number placeholder with an actual phone number in E.164 format (for example, +12025551234).

Trigger PHLO
Send SMS and make a call
Verify the OTP
The finished application should look like this.
Simple and reliable
Edit the sample application to see how simple it was to code. Our simple APIs work in tandem with our comprehensive global network. Plivo’s premium direct routes guarantee highest possible delivery rates and the shortest possible delivery times for your 2FA SMS and voice messages. See for yourself — sign up for a free trial account.
How to Migrate Your SMS/MMS Application from Zipwhip to Plivo
Plivo's SMS API and Voice API enables businesses to communicate with their customers at global scale. Sign up for free now.
Migrating from Zipwhip to Plivo is a seamless and painless process. The two companies’ API structures, implementation mechanisms, SMS message processing, and MMS message processing are similar. We wrote this technical comparison between Zipwhip and Plivo APIs so that you can scope the changes for a seamless migration.
Understanding the differences between Zipwhip and Plivo development
Most of the APIs and features that are available on Zipwhip are also available on Plivo, and the steps involved are almost identical. This table gives a side-by-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 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.
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 Zipwhip to Plivo, as we explain in this guide.
Migrating your SMS application
You can migrate your existing application from Zipwhip 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: PHP, 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 Zipwhip to Plivo to set up a simple cURL application to send an SMS message by changing just a few lines of code.
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 look like this.

Migrating your MMS application
How to send an MMS message
Let’s take a look at the process of refactoring the code to migrate another application from Zipwhip to Plivo — a simple cURL application to send an MMS message — by changing just a few lines of code.
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 look like this.

More use cases
You can migrate applications for other use cases too:
- Reply to incoming SMS messages
- Two-factor authentication
- Forward incoming SMS messages
- Delivery reports
- SMS alerts
- SMS marketing
- SMS notifications
- SMS survey
- SMS autoresponder
- Forward SMS to email
- Receive MMS
Porting your existing numbers from Zipwhip to Plivo
If you want to continue using your phone numbers from Zipwhip, you can port the numbers to Plivo painlessly without having any downtime on your services for your customers. Our number porting guide shows you how to initiate the process.
Simple and reliable
And that’s all there is to migrate your SMS app from Zipwhip to Plivo either using Plivo’s SDK or PHLO. Our simple APIs work in tandem with our comprehensive global network. You can also use Plivo’s premium direct routes that 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.