Get access to your trial account
Please enter valid Full Name
Please enter valid Company Email
tick greenred cross
Please enter valid Phone Number
Please choose valid Usecase
Please enter valid Detailed Requirement
By Creating an Account with Plivo, you agree to the Plivo’s Terms of Service and Privacy Policy
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
You’re all set!
Thank you. We've received your request.
Our team will contact you shortly to get you started.
Featured

AI Voice Agents - The Complete Guide to Voice Chat (2025)

Nov 23, 2025
7 mins

Learn everything about an AI voice agents, its benefits, implementation tips, and the AI voice chat applications for business success.

Longer wait times, high call volumes, and language barriers in call centers often frustrate customers. Complex interactive voice response (IVR) menus only add to the problem, leading to customer dissatisfaction. That’s why companies are adopting smarter self-service solutions like artificial intelligence (AI) voice agents. In fact, experts predict the voice bot market will reach $98.2 billion by 2027, showing a clear trend toward smarter solutions to improving customer experience.

AI voice agents technology combines Natural Language Processing (NLP), machine learning, and voice recognition to transform customer interactions. It provides quicker, more efficient service and improves the overall customer experience.

In this guide, we'll explore what AI voice agents are, their key features, practical use cases, and tips on how to implement a voice agent in your business.

What is an AI voice agent?

An AI voice agent is a two-way conversational tool that communicates with the customer. It automates inbound and outbound calls without human intervention and transfers calls to a human agent when needed.

The biggest advantage? Callers can navigate an IVR by speaking naturally, without listening to long, complex menus or pressing numbers on a keypad.

Popular AI voice agent examples include Apple's Siri, Google Assistant, and Amazon's Alexa. These tools simplify interactions, provide instant answers, and automate tasks. In contrast, advanced bots like IBM’s Watson Assistant and Microsoft’s Cortana handle customer support, sales inquiries, and internal communications.

Types of AI voice agents

Here’s a breakdown of the four main types of AI voice agents and how they can benefit your business:

Rule-based AI voice agent

Rule-based voice agent use predefined sets of questions and rules to offer answers or perform tasks. Such voice agents handle routine tasks and customer FAQs. They answer all queries that fall under the if-this-then-that logic.

For example, an e-commerce site using a bot to guide customers in checking their order status or a banking site handling routine inquiries like balance checks, bill payments, transaction histories, etc.

AI-assisted voice agent

AI-assisted voice agents use machine learning and natural language to interpret conversations so they can analyze the context and grasp what the speaker means. This makes them far more capable and user-friendly than the conventional, rule-based voice agents.

Let’s suppose a user asks Alexa, 'What's the weather tomorrow?' and then follows up with, 'How about next week?' it remembers the context. This adaptability means customers don’t have to repeat themselves, creating a more contextual customer experience.

Conversational AI voice agent

Conversational voice agents make conversations using natural language. They’re more nuanced than AI-assisted voice agents as they can handle complex conversations using everyday language to create more personalized interactions.

Source

Google Duplex, and IBM Watson Assistant, are examples of conversational voice agents. They can make phone calls, make reservations, and handle natural conversations with a human-like tone.

Voice-activated voice agent

These bots use voice commands to answer practical questions and perform routine tasks. They are more flexible than personal voice agents that adapt to speakers and perform customized tasks.

Such bots serve as digital assistants to AI-assisted bots like Siri.

How does an AI voice agent improve customer engagement?

A customer calling your sales team wants to feel valued and understood. An AI voice agent does that. It puts the customer at the center, creating a better experience and driving business benefits as a result. Let’s understand it with a few use cases. 

Use case: Get a quick update on order status, 24/7

Source

Assuming the AI voice agent is integrated into your CRM, it greets the customer by name. Instead of navigating through a branched IVR to get their order status, the customer can simply say ‘order status’ and the voice bot pulls out the order details from the CRM and gives the user a real-time update within seconds.

Sheraz Ali, the Founder of HARO Links Builder states that their voice agent managed over 30% of customer interactions in one of their company projects and drastically reduced wait times.

“It also improved our response efficiency and led to a 20% increase in customer satisfaction scores and a reduction in operational costs within three months.” 

Benefits:

  • Decreased waiting time.
  • Limited IVR menu navigation.
  • No human intervention is required.
  • Quick response times.
  • Reduced business costs.
  • Tangible increase in customer satisfaction.

Use case: Improve language learning for students 

Source

A language learning platform uses a voice agent to provide real-time translations and personalized tutoring. So the voice agent instantly supports students in any subject by translating and clarifying complex terms in their preferred language.

Benefits:

  • Reduced requirement for multilingual staff.
  • Increases inclusivity as the bot answers in the user’s preferred language.
  • Language barriers are removed.

Use case: Improve patient outcomes in healthcare

Source

It's easy to miss appointments or forget to deliver prescriptions to the patient’s home timely. A healthcare service can employ a voice agent to deliver personalized care and offer preliminary health assessments, medication reminders, and easy appointment scheduling, all according to the individual patient's needs.

Benefits

  • Saves time by streamlining appointment bookings.
  • Ensures medication adherence with timely reminders.
  • Reduces workload for healthcare providers with automated support.

Use case: Streamline routine financial services 

Source

Once integrated with the banking system, the voice agent automates routine financial tasks, provides instant account information, processes transactions, and delivers personalized financial advice around the clock.

Benefits:

  • 24/7 access to financial services without wait times.
  • Improves customer experience with quick, accurate responses.
  • Automates routine tasks, freeing up staff for complex queries.
  • Provides personalized advice to improve financial decision-making.

Use case: Get personal shopping assistance  

Source

An e-commerce platform can use a voice agent to assist customers with product selection, provide personalized recommendations, and automate the sales process from start to finish.

Benefits:

  • Delivers a personalized shopping experience 24/7.
  • Boosts sales with customized recommendations.
  • Reduces cart abandonment by guiding customers to checkout.
  • Improves customer satisfaction with fast, accurate service.

Features of an AI voice agent

To understand why voice agents are so effective, let’s look at the key features that improve the overall customer service experience while streamlining business operations.

The best voice agents for businesses come equipped with:

Natural language understanding (NLU)

An AI voice agent understands user queries by converting speech into text using AI and NLP. It then forms an appropriate response and converts it back into speech using text-to-speech (TTS) technology. This ability to understand and respond in natural, conversational language sets AI voice agents apart from traditional IVR systems, which rely on rigid, menu-based responses.

Source

Personalization capabilities

Customers want quick, personalized responses to their queries, unlike complex IVR systems that frustrate them with lengthy menus. An AI voice agent offers contextual conversations, adapting to the user’s intent. It detects speech cues, skips irrelevant interactions, and also transfers calls to the right agent.

Hence, when comparing voice agents to IVRs, the bot's ability to offer personalized interactions like a human outshines communication systems that follow even the best IVR practices.

Multi-language support

AI voice agents break down language barriers, supporting multiple languages to provide a more inclusive and accessible customer experience. Businesses can easily connect with diverse customer bases across the globe.

For instance, Plivo supports speech recognition in 27 languages and their regional variants. 

{{cta-style-1}}

Integration with other platforms and services

AI voice agents easily integrate with platforms like customer relationship management (CRM) systems, Enterprise resource planning (ERP) tools, and ticketing software. They access and update customer data in real time to ensure accuracy.

These bots also pull relevant details, automate follow-up actions, and sync with communication channels like email or chat. This creates a personalized and consistent customer experience across all touchpoints.

Benefits of voice agents

Let’s now look at the benefits of AI voice agents.  

Enhanced user experience

Many businesses have concerns over the quality of a voice agent for customer service. However, a voice agent answers queries quickly regardless of the time of the day. Speedy, reliable answers are important to providing excellent service, making voice agents an invaluable tool for businesses looking to improve customer satisfaction.

Additionally, businesses can:

  • Handle routine queries and common tasks faster than human agents.
  • Remove the need for users to navigate complex IVR menus.
  • Manage high-volume calls without errors.

Better cost efficiency

An AI voice agent doesn’t just save time, it also saves money. It boosts user satisfaction and reduces support times by automating repetitive queries. This frees up staff for higher-value tasks, and interacting with customers after hours has improved lead conversion.

The direct benefits to businesses are:

  • Reduces the need for a larger customer support team.
  • Allows human agents to focus on complex, high-value inquiries.
  • Engages users outside business hours to boost marketing return on investment (ROI).
  • Lowers training costs and minimizes the risk of providing incorrect information.

Accessibility for users with disabilities

With over one billion people living with disabilities worldwide, voice agents make services more inclusive. They enable hands-free, accessible interactions, allowing customers with visual, motor, or cognitive impairments to engage with the business easily. This not only improves customer satisfaction but also broadens the company’s reach to a more diverse audience.

Data collection and analysis for improved services

Voice agents don’t just serve customers — they also gather insights. Use this data to analyze data and improve services, personalize marketing efforts, and make more informed business decisions.

24/7 availability

Unlike human agents, voice agents are always accessible. They ensure customers get help whenever they need it, contributing to a more consistent and reliable customer experience.

Future of AI voice technology

As IBM's data engineer, Chris Hay puts it, "We're entering an era where every mom-and-pop shop can have the same level of customer service as an enterprise." This statement captures the transformative potential of voice recognition technology.

AI voice chat applications benefit businesses of all sizes by delivering top-tier customer experiences. Tech giants are already paving the way. Microsoft has updated its Copilot AI with advanced voice capabilities, allowing it to handle complex queries with natural language reasoning, while Meta has introduced voice AI to its messaging apps.

AI voice assistants will move beyond smartphones, integrating into wearable devices like the recently unveiled Meta Orion augmented reality glasses. For businesses handling sensitive client relationships, this could mean smarter, empathetic bots that mirror the tone and approach of a human assistant.

Key upcoming trends:

  • Hyper-personalization: Customized voices and targeted recommendations.
  • Advanced problem-solving: Managing complex queries using natural language.
  • Real-time analytics: Analyzing customer tone for deeper insights.

Yet, challenges remain. Arvind Rongala, the founder of a skill-management solution provider, shares, “There are still issues, especially with data privacy and ensuring interactions are human-like. In addition to resolving problems with bias in training data and regulatory compliance, businesses must strike a balance between automation and personalization. For example, adhering to GDPR regarding the storage of voice data can be challenging, but doing so is essential to fostering trust.”

Ultimately, businesses need to prioritize data security, explore multi-device integration options, and develop stronger contextual understanding for natural interactions.

Launch an AI voice agent with Plivo

Any scaling business needs a voice agent that's easy to integrate, globally accessible, and cost-effective without sacrificing quality.

Plivo checks all these boxes, offering seamless integration, seven global points of presence for low-latency interactions, and competitive rates starting at just $0.0040 per minute. It's ideal for businesses willing to scale while keeping operational costs in check.

In fact, Plivo can reduce operational costs by up to 40%.

Moreover, its commitment to reliability is backed by a 99.99% uptime guarantee, with failover capabilities that switch within two seconds if any disruptions occur.

You can launch voice agents with Plivo using just a few lines of code.

  • Log in to your OpenAI Account: Secure your API key and RealTime API access.
  • Log in to your Plivo Account: Sign up and get a voice-enabled number.

With integration options for leading speech-to-text (STT) and TTS providers like Deepgram and ElevenLabs, you can launch AI voice agents in multiple regions, including India, using local numbers.

Use Plivo-powered voice agents for: 

  • Personal shopping assistance: Offer personalized recommendations, go through product selections, and close sales. 
  • Healthcare automation: Improve patient outcomes with medication reminders, and appointment scheduling, and offer preliminary health assessments.
  • Inclusivity in education: Break language barriers in learning with real-time translations and personalized tutoring across multiple subjects.
  • Routine financial services automation: Provide instant account information, personalized financial advice, transaction processing status, etc. to customers.

With a 24/7 AI voice agent, your business can handle these tasks around the clock, ensuring that customers are never left waiting. Want to improve customer experience with Plivo? Contact us today.

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

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:

Screenshot of a Reddit comment explaining what RCS is
RCS explained by a Reddit user

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.

Key feature SMS marketing RCS marketing
Message length Limited to 160 characters; with longer messages split Up to 8,000 characters in a single message
Multimedia Supports only plain text and links; needs MMS for multimedia Natively supports high-resolution photos, videos, audio, and GIFs
Security and verification No built-in sender verification Includes verified sender profiles with business name, logo, and custom colors
Read receipts No standardized way to know if a message was delivered or read Provides delivery and read receipts for real-time engagement tracking
Typing indicators Doesn't show when the other party is typing Displays typing indicators, creating a more conversational feel
Interactive buttons Not supported; calls to action (CTAs) are limited to plain text links Allows interactive buttons with predefined replies and actions
User experience Static, text-heavy, and transactional Dynamic, visually rich, and conversational — feels more like a mobile app
Analytics and reporting Basic delivery tracking (if supported by carrier) Advanced analytics: opens, clicks, conversions, and user behavior tracking

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.

 Image showing the engagement results of RCS messaging
People engage more with RCS than any other platform

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.

Image showing that MAYI - HOMES sends a verified RCS message with branding
Verified RCS message from MAYI - HOMES

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.

Verified RCS message highlights a 25% off promotion on all items
Verified RCS message from Daily-donuts

Example: A fashion retailer promoting its spring collection could send an RCS message featuring a carousel of outfits with styled images, prices, and buttons like “View Lookbook” or “Shop Now.”

Tapping a button could open a mini product page inside the chat, letting customers browse and buy without switching apps.

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.

Example: A home electronics store could follow up with customers who left a pair of wireless earbuds in their cart. The RCS message might include a product photo, the price, and a “Buy Now” button that takes them straight to checkout.

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.

Image depicting an interactive RCS booking confirmation message
Booking confirmation via RCS with quick action buttons

Example: A dental clinic could use RCS to remind patients of upcoming cleanings. The message might show the date, time, and location of the appointment, plus a “Confirm” button and options to “Reschedule” or “Cancel.”

Patients can respond instantly, helping the clinic manage its schedule more efficiently.

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.

Example: A restaurant could send an RCS message after a meal asking customers to rate their experience with simple buttons like “Excellent,” “Good,” or “Needs Improvement.”

The message might also include a photo of the dish they ordered and a quick question like, “What did you like most?” This quick interaction makes it easy for customers to respond and gives the restaurant valuable insights.

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.”

Support bot provides instant replies and follow-ups for customer queries
AI-powered support for account management

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!

Jun 19, 2025
5 mins

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.)

Pro tip: If you want to fast-track API access and template approval, using a BSP like Plivo saves weeks of back and forth with Meta.

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.

Image showing users how to build their own lead qualification agent in Plivo
Build a WhatsApp AI agent in Plivo

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.

Your online pet supply business sells dog food with a typical reorder cycle of 30 days. You want to automate reminders for repeat customers, so they never run out.

The goal is to build a WhatsApp AI agent that:

  • Identifies past purchase dates
  • Sends a timely reminder before the next reorder window
  • Offers a one-click reorder option with a discount
  • Escalates to a live agent if the customer has special dietary questions

Pro tip: If you're unsure where to begin, look at existing interactions on WhatsApp that are repetitive, time-sensitive, or frequently escalated — these are ideal starting points for automation.

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.

Image showing WhatsApp AI agent setup in Plivo without code
No-code campaign automation in Plivo’s AI Studio

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.

Image demonstrating smart handoff from AI agents to human agents in Plivo
Human handoff conditions in Plivo

Example: In Agent Studio, you set up a trigger to activate the agent 25 days after a customer’s last dog food purchase.

The agent starts with: “Hi Alex! It’s almost time to restock Luna’s Chicken & Brown Rice dog food. Want us to ship it today with 10% off?”

Depending on the customer’s reply:

  • “Yes” triggers a checkout link
  • “No” prompts a snooze option or opt-out
  • “I have a question” escalates to a human agent with the full order history

This step allows you to fully customize the agent’s tone, workflow, and logic to reflect how your brand communicates.4

Example: In Agent Studio, you set up a trigger to activate the agent 25 days after a customer’s last dog food purchase.

The agent starts with:
“Hi Alex! It’s almost time to restock Luna’s Chicken & Brown Rice dog food. Want us to ship it today with 10% off?”

Depending on the customer’s reply:

  • “Yes” triggers a checkout link
  • “No” prompts a snooze option or opt-out
  • “I have a question” escalates to a human agent with the full order history

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.

Dashboard image of Plivo’s AI Studio prompting users to import from a file or sync from a website
Import external knowledge from various sources into Plivo

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

Image depicting LLM options for your WhatsApp AI agent in Plivo
Select the LLM that fits your business best

You integrate your Shopify store to pull order dates and product SKUs. You also sync your product FAQ sheet so the agent can answer:

  • “Is this food grain-free?”
  • “What’s the shelf life?”
  • “Can I switch to lamb instead of chicken?”

You power the agent using OpenAI to ensure a natural, friendly tone and multilingual support for your Spanish-speaking customers.

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
Image showcasing WhatsApp AI agent engagement analytics in Plivo
Monitor agent performance and engagement with Plivo

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.

You run a test with 50 loyal customers. The data shows that:

  • 72% clicked the reorder button within three hours
  • 18% asked about switching flavors
  • 10% requested a pause or cancel

You adjust the flow by adding a flavor selection block and a “remind me next week” option. The analytics also show high engagement around 8 p.m., so you shift reminder timings accordingly.

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!

Jun 19, 2025
5 mins

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.

Image showing WhatsApp with a conversation, highlighting conversational commerce.
A customer engaging with a brand through WhatsApp for shopping -Source

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:

Message Type Description Example
Transactional Messages are triggered by specific customer actions or events. "Your order has been shipped!"
Promotional Messages that promote products, services, or special offers. "Get 20% off your next purchase – limited time only!"
Conversational Automated responses that simulate a two-way conversation. "How can I assist you today?"

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.

Result: Faster response times and more efficient workflows.

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.

End result: Higher customer satisfaction and increased 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.

Pro tip: Monitor your automation metrics regularly to find areas where you can cut costs further without affecting quality.

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.

Example messages:

“Hi! How can I help you today? Here are some quick answers: For billing info, reply 1; For plan details, reply 2.”

“We’ve received your request and will get back to you within 24 hours.”

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.

Example messages:

“Thank you for your order #12345! It is being processed and will ship soon.”

“Good news! Your package is out for delivery and should arrive by 5 PM today.”

“Need to return an item? Reply ‘Return’ and we’ll guide you through the process.”

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.

Example messages:

“Hi [Name], thanks for your interest! Ready to take the next step? Book a free demo here: [link]”

“We miss you! Enjoy 15% off your next purchase with code WELCOME15.”

“Exclusive offer just for you, [Name]! Check out our new arrivals: [link]”

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.

Example messages:

“Your appointment with Dr. Smith is confirmed for June 20 at 2 PM. Reply ‘Cancel’ to reschedule.”

“Hi! Just a friendly reminder about your hair salon appointment tomorrow at 11 AM.”

“Need to book an appointment? Reply ‘Book’ and we’ll help you find the perfect time.”

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

Example: Send exclusive offers to loyal buyers and welcome discounts to new customers. Good segmentation enhances your automation and drives better outcomes.

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.

Pro tip: To avoid disruptions, choose a phone number that’s not already tied to a personal WhatsApp account.

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:

Compliance What it means Best practise
GDPR Protects the personal data of EU customers Obtain consent, allow easy opt-out, and secure data
SOC 2 Ensures security and confidentiality standards Implement strong data controls and audits
Customer privacy Respect and protect user information Be transparent, limit data use, and maintain trust

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.
AI customer service agent managing chats and orders.
Plivo’s AI agents provide 24/7 support, processing orders and answering customer questions promptly.
  • 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.
Image showing Plivo’s flat-fee per conversation pricing with volume discounts.
Plivo charges a flat fee per conversation with volume discounts.
  • 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.

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.
Feb 1, 2022
5 mins

How to Build an SMS 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.

PHLO
How To
Alerts
Use Cases

Alerts can help people receive crucial updates in a timely manner, allowing them to make timely decisions. You can create SMS alerts 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 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.

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.
  • 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 number 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.
  • 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.

SMS Notification

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.

AUTHID

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

PHLO List

With a static payload

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

With Static Payload

Code

Create a file and paste the below code.

1
2
3
4
5
6
7
import plivo

phlo_id = "<phlo_id>"
phlo_client = plivo.phlo.RestClient("<auth_id>", "<auth_token>")
phlo = phlo_client.phlo.get(phlo_id)
response = phlo.run()
print(response)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
require 'rubygems'
require 'plivo'

include Plivo

AUTH_ID = '<auth_id>'
AUTH_TOKEN = '<auth_token>'

client = Phlo.new(AUTH_ID, AUTH_TOKEN)

# if credentials are stored in the PLIVO_AUTH_ID and the PLIVO_AUTH_TOKEN environment variables
# then initialize client as:
# client = Phlo.new

begin
  phlo = client.phlo.get('<phlo_id>')
  response = phlo.run()
  puts response
rescue PlivoRESTError => e
  puts 'Exception: ' + e.message
end
1
2
3
4
5
6
7
8
9
10
11
12
var plivo = require('plivo');
var PhloClient = plivo.PhloClient;

var phloId = '<phlo_id>';
var phloClient = phlo = null;

phloClient = new PhloClient('<auth_id>', '<auth_token>');
phloClient.phlo(phloId).run().then(function(result) {
    console.log('Phlo run result', result);
}).catch(function(err) {
    console.error('Phlo run failed', err);
});
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
require 'vendor/autoload.php';
use Plivo\Resources\PHLO\PhloRestClient;
use Plivo\Exceptions\PlivoRestException;
$client = new PhloRestClient("<auth_id>", "<auth_token>");

$phlo = $client->phlo->get("<phlo_id>");
try {
    $response = $phlo->run();
    print_r($response);
} catch (PlivoRestException $ex) {
    print_r($ex);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import com.plivo.api.Plivo;
import com.plivo.api.PlivoClient;
import com.plivo.api.exceptions.PlivoRestException;
import com.plivo.api.models.phlo.Phlo;
import java.io.IOException;

public class Example
{
    private static final String authId = "<auth_id>";
    private static final String authToken = "<auth_token>";
    private static PlivoClient client = new PlivoClient(authId, authToken);
    public static void main(String[] args) throws IOException, PlivoRestException
    {
        String phloId = "<phlo_id>";
        Plivo.init(authId, authToken);
        Phlo phlo = Phlo.getter(phloId).client(client).get();
        PhloUpdateResponse response = Phlo.updater(phloId).payload().run();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package main

import (
	"fmt"
	"plivo-go"
)

// Initialize the following params with corresponding values to trigger resources
const authId = "<auth_id>"
const authToken = "<auth_token>"
const phloId = "<phlo_id>"

func main() {
	testPhloRunWithoutParams()
}

func testPhloRunWithoutParams() {
	phloClient, err := plivo.NewPhloClient(authId, authToken, &plivo.ClientOptions{})
	if err != nil {
		fmt.Print("Error", err.Error())
		return
	}
	phloGet, err := phloClient.Phlos.Get(phloId)
	if err != nil {
		fmt.Print("Error", err.Error())
		return
	}
	response, err := phloGet.Run(nil)
	if err != nil {
		fmt.Print("Error", err.Error())
		return
	}
	fmt.Printf("Response: %#v\n", response)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using Plivo;

namespace test_PHLO
{
    class Program
    {
        public static void Main(string[] args)
        {
            var phloClient = new PhloApi("<auth_id>", "<auth_token>"); 
            var phloID = "<phlo_id>";
            var phlo = phloClient.Phlo.Get(phloID);   
            Console.WriteLine(phlo.Run());
        }
    }
}
1
2
3
4
curl --request POST \
  --user AUTH_ID:AUTH_TOKEN \
  --url 'https://phlorunner.plivo.com/v1/account/{auth_id}/phlo/{phlo_id}' \
  --header 'Content-Type: application/json'

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.

With Dynamic Payload

Code

Create a file and paste the below code.

1
2
3
4
5
6
7
8
9
10
import plivo

auth_id = '<auth_id>'
auth_token = '<auth_token>'
phlo_id = '<phlo_id>'
payload = {"From" : "<caller_id>","To" : "<destination_number>"}
phlo_client = plivo.phlo.RestClient(auth_id=auth_id, auth_token=auth_token)
phlo = phlo_client.phlo.get(phlo_id)
response = phlo.run(**payload)
print (response)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
require 'rubygems'
require 'plivo'

include Plivo

AUTH_ID = '<auth_id>'
AUTH_TOKEN = '<auth_token>'

client = Phlo.new(AUTH_ID, AUTH_TOKEN)

# if credentials are stored in the PLIVO_AUTH_ID and the PLIVO_AUTH_TOKEN environment variables
# then initialize client as:
# client = Phlo.new

begin
  phlo = client.phlo.get('<phlo_id>')
  #parameters set in PHLO - params
  params = {
     From: '<caller_id>',
     To: '<destination_number>',
  }
  response = phlo.run(params)
  puts response
rescue PlivoRESTError => e
  puts 'Exception: ' + e.message
end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var plivo = require('plivo');
var PhloClient = plivo.PhloClient;

var authId = '<auth_id>';
var authToken = '<auth_token>';
var phloId = '<phlo_id>';
var phloClient = phlo = null;

var payload = {
    From: '<caller_id>',
    To: '<destination_number>',
}
phloClient = new PhloClient(authId, authToken);
phloClient.phlo(phloId).run(payload).then(function (result) {
    console.log('Phlo run result', result);
}).catch(function (err) {
    console.error('Phlo run failed', err);
});
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
require 'vendor/autoload.php';
use Plivo\Resources\PHLO\PhloRestClient;
use Plivo\Exceptions\PlivoRestException;
$client = new PhloRestClient("<auth_id>", "<auth_token>");

$phlo = $client->phlo->get("<phlo_id>");
try {
    $response = $phlo->run(["From" => "<caller_id>", "To" => "<destination_number>"]);
    print_r($response);
} catch (PlivoRestException $ex) {
    print_r($ex);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import com.plivo.api.Plivo;
import com.plivo.api.PlivoClient;
import com.plivo.api.exceptions.PlivoRestException;
import com.plivo.api.models.phlo.Phlo;
import java.io.IOException;

public class Example
{
    private static final String authId = "<auth_id>";
    private static final String authToken = "<auth_token>";
    private static PlivoClient client = new PlivoClient(authId, authToken);
    public static void main(String[] args) throws IOException, PlivoRestException
    {
        String phloId = "<phlo_id>";
        Plivo.init(authId, authToken);
        Phlo phlo = Phlo.getter(phloId).client(client).get();
        Map<String, Object> payload = new HashMap<>();
        payload.put("From", "<caller_id>");
        payload.put("To", "<destination_number>");
        PhloUpdateResponse response = Phlo.updater(phloId).payload(payload).run();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package main

import (
	"fmt"
	"plivo-go"
)

// Initialize these parameters with corresponding values to trigger resources
const authId = "<auth_id>"
const authToken = "<auth_token>"
const phloId = "<phlo_id>"

func main() {
	testPhloRunWithParams()
}

func testPhloRunWithParams() {
	phloClient, err := plivo.NewPhloClient(authId, authToken, &plivo.ClientOptions{})
	if err != nil {
		fmt.Print("Error", err.Error())
		return
	}
	phloGet, err := phloClient.Phlos.Get(phloId)
	if err != nil {
		fmt.Print("Error", err.Error())
		return
	}
	//pass corresponding from and to values
	type params map[string]interface{}
	response, err := phloGet.Run(params{
		"From": "<caller_id>",
		"To":   "<destination_number>",
	})

	if err != nil {
		println(err)
	}
	fmt.Printf("Response: %#v\n", response)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using Plivo;

namespace test_PHLO
{
    class Program
    {
        public static void Main(string[] args)
        {
            var phloClient = new PhloApi("<auth_id>", "<auth_token>");
            var phloID = "<phlo_id>";
            var phlo = phloClient.Phlo.Get(phloID); 
            var data = new Dictionary<string, object>
            {
                { "From", "<caller_id>" },
                { "To", "<destination_number>" }

            };  
            Console.WriteLine(phlo.Run(data));
        }
    }
}
1
2
3
4
5
curl --request POST \
  --user AUTH_ID:AUTH_TOKEN \
  --url 'https://phlorunner.plivo.com/v1/account/{auth_id}/phlo/{phlo_id}' \
  --header 'Content-Type: application/json' \
  --data '{"from": "<caller_id>","to": "<destination_number>"}'

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.

Haven’t tried Plivo yet? Getting started is easy and only takes minutes. Sign up today.

Jan 27, 2022
5 mins

How to Migrate Your Go 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.

Migration
Go SDK
SMS API
How To

Migrating your Go SMS application 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 Go 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 Go application to send an SMS message by changing just a few lines of code.

Twilio Plivo
package main

import (
	"encoding/json"
	"fmt"
	"github.com/twilio/twilio-go"
	openapi "github.com/twilio/twilio-go/rest/api/v2010"
	"os"
)

func main() {
    from := 
os.Getenv("TWILIO_FROM_PHONE_NUMBER")
    to := 
os.Getenv("TWILIO_TO_PHONE_NUMBER")
    subaccountSid 
:= os.Getenv("TWILIO_SUBACCOUNT_SID")

    client :=
 twilio.NewRestClientWithParams(twilio.RestClientParams{
        AccountSid: subaccountSid,
    })
    
    params := &openapi.CreateMessageParams{}
    params.SetTo(to)
    params.SetFrom(from)
    params.SetBody("Hello there")
    
    resp, err := client.ApiV2010.CreateMessage(params)
    if err != nil {
        fmt.Println(err.Error())
    } else {
        response, _ := json.Marshal(*resp)
        fmt.Println("Response: " + string(response))
    }
}
   
package main

import (
    "fmt"

    "github.com/plivo/plivo-go/v7"
)

func main() {
    client, err: = plivo.NewClient
    ("<auth_id>",
    "<auth_token>", & plivo.ClientOptions {})
    if err != nil {
        fmt.Print("Error", err.Error())
        return
    }
    response, err: = client.Messages.Create(
        plivo.MessageCreateParams {
            Src: "+14151113333",
            Dst: "+14151112222",
            Text: "Hello, this is a sample text",
            URL: "https://foo.com/sms_status/",
        },
    )
    if err != nil {
        fmt.Print("Error", err.Error())
        return
    }
    fmt.Printf("Response: %#v\n", response)
}

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
package main

import (
    "net/http"
    "encoding/xml"
)

type TwiML struct {
    XMLName xml.Name `xml:"Response"`

    Message string `xml:",omitempty"`
}

func main() {
    http.HandleFunc("/twiml", twiml)
    http.ListenAndServe(":3000", nil)
}

func twiml(w http.ResponseWriter, r * 
http.Request) {
    twiml: = TwiML {
        Message: "Ahoy! Thanks so much for
        your message.'"
    }
    x,
    err: = xml.Marshal(twiml)
    if err != nil {
        http.Error(w, err.Error(), 
        http.StatusInternalServerError)
        return
    }

    w.Header().Set("Content-Type",
    "application/xml")
    w.Write(x)
}
   
package main

import (
    "net/http"
    "plivo-go/xml"
)

func handler(w http.ResponseWriter, r * 
http.Request) {
    fromnumber: = r.FormValue("From")
    tonumber: = r.FormValue("To")
    text: = r.FormValue("Text")
    print("Message Received - ", fromnumber, " ", tonumber, " ", text)

    response: = xml.ResponseElement {
        Contents: [] interface {} {
            new(xml.MessageElement).
            SetDst(tonumber).
            SetSrc(fromnumber).
            SetContents("Thank you, we received
            your request"),
        },
    }
    w.Write([] byte(response.String()))
}

func main() {
    http.HandleFunc("/reply_sms/", handler)
    http.ListenAndServe(":8080", nil)
}

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 Go application to send an MMS message by changing just a few lines of code.

Twilio Plivo
package main

import (
    "fmt"
    twilio "github.com/kevinburke/twilio-go"
    "net/url"
)

func main() {
    client: = twilio.NewClient("TWILIO_AUTH_SID", "TWILIO_AUTH_TOKEN", nil)
    gif,
    _: = url.Parse("https://media.giphy.com/media/uGGT9wVlxPAuk/giphy.gif")
    mms,
    _: = client.Messages.SendMessage("FROM_NUMBER", "TO_NUMBER", "", [] * url.URL {
        gif
    })
    fmt.Println("You just sent a gif with Twilio using Go!! " + string(mms.Status) + " - " + string(mms.Sid))
}
   
package main

import (
    "fmt"
    plivo "github.com/plivo/plivo-go/v7"
)

func main() {

        client, err: = plivo.NewClient("<auth_id>", "<auth_token>", & plivo.ClientOptions {})
        if err != nil {
            panic(err)
        }
        createResp, err: = client.Messages.Create(plivo.MessageCreateParams {
            Src: "+14151113333",
            Dst: "+14151112222",
            Text: "Hello, from Go!",
            Type: "mms",
            MediaUrls: [] string {
                "https://media.giphy.com/media/26gscSULUcfKU7dHq/source.gif"
            },
            MediaIds: [] string {
                "801c2056-33ab-499c-80ef-58b574a462a2"
            },
        })
        if err != nil {
            panic(err)
        }

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 Go 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.

Jan 25, 2022
5 mins

How to Migrate Your Go 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
Go SDK
Voice API
How To

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 Go application to make an outbound call by changing just a few lines of code.

Twilio Plivo
package main

import (
    "fmt"
    "github.com/twilio/twilio-go"
    openapi "github.com/twilio/twilio-
    go/rest/api/v2010"
    "os"
)

func main() {
    from: =
    os.Getenv("TWILIO_FROM_PHONE_NUMBER")
    to: =
    os.Getenv("TWILIO_TO_PHONE_NUMBER")

        client: = twilio.NewRestClient()
    
        params: = & openapi.CreateCallParams {}
    params.SetTo(to)
    params.SetFrom(from)
    params.SetUrl("http://twimlets.com/holdmusic?
    Bucket=com.twilio.music.ambient")
    
    resp,
    err: = client.ApiV2010.CreateCall(params)
    if err != nil {
        fmt.Println(err.Error())
    } else {
        fmt.Println("Call Status: " + * resp.Status)
        fmt.Println("Call Sid: " + * resp.Sid)
        fmt.Println("Call Direction: " +
        * resp.Direction)
    }
}
   
package main

import (
    "fmt"
    "github.com/plivo/plivo-go/v7"
)

func main() {
    client, err: = plivo.NewClient("<auth_id>",
    "<auth_token>", & plivo.ClientOptions {})
    if err != nil {
        fmt.Print("Error", err.Error())
        return
    }
    response, err: = client.Calls.Create(
        plivo.CallCreateParams {
            From: "+14151234567",
            To: "+15671234567",
            AnswerURL:
"https://s3.amazonaws.com/static.plivo.com/answer.xml",
            AnswerMethod: "GET",
        },
    )
    if err != nil {
        fmt.Print("Error", err.Error())
        return
    }
    fmt.Printf("Response: %#v\n", response)
}

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
package main

import (
  "net/http"
  "encoding/xml"
)

type TwiML struct {
  XMLName xml.Name `xml:"Response"`

  Say    string `xml:",omitempty"`
}

func main() {
  http.HandleFunc("/twiml", twiml)
  http.ListenAndServe(":3000", nil)
}

func twiml(w http.ResponseWriter, r *
http.Request) {
  twiml := TwiML{Say: "Hello World!"}
  x, err := xml.Marshal(twiml)
  if err != nil {
    http.Error(w, err.Error(), http.StatusInternalServerError)
    return
  }

  w.Header().Set("Content-Type", "application/xml")
  w.Write(x)
}
   
package main

import (
	"fmt"
	"net/http"
	"github.com/plivo/plivo-go/v7"
)

func handler(w http.ResponseWriter, r *
http.Request) {

	response := xml.ResponseElement{
		Contents: []interface{} {
			new(xml.SpeakElement).
			AddSpeak("Hello, you just
      received your first call"),
		},
	}
	fmt.Printf(response.String())
}

func main() {
	http.HandleFunc("/receive_call/", handler)
	http.ListenAndServe(":8080", nil)
}

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 main

import (
    "net/http"
    "encoding/xml"
)

type TwiML struct {
    XMLName xml.Name `xml:"Response"`

    Dial string `xml:",omitempty"`
}

func main() {
    http.HandleFunc("/twiml", twiml)
    http.ListenAndServe(":3000", nil)
}

func twiml(w http.ResponseWriter, r * 
http.Request) {
    twiml: = TwiML {
        Dial: "415-123-4567"
    }
    x,
    err: = xml.Marshal(twiml)
    if err != nil {
        http.Error(w, err.Error(), 
        http.StatusInternalServerError)
        return
    }

    w.Header().Set("Content-Type",
    "application/xml")
    w.Write(x)
}
   
package main

import (
    "net/http"
    "plivo-go/xml"
)

func handler(w http.ResponseWriter, r *
http.Request) {
    response: = xml.ResponseElement {
        Contents: [] interface {} {
            new(xml.DialElement).
            SetContents(
                [] interface {} {
                    new(xml.NumberElement).
                    SetContents
                    ("<destination_number>"),
                },
            ),
        },
    }
    w.Write([] byte(response.String()))
}

func main() {
    http.HandleFunc("/forward_call/", handler)
    http.ListenAndServe(":8080", nil)
}

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 Go voice application 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.

Jan 24, 2022
5 mins

How to Build a Text Autoresponder the No-Code Way Using PHLO

How to create a text autoresponder without writing a single line of code to respond to incoming messages on your business numbers.

PHLO
SMS API
How To
Use Cases

This guide shows how to write an autoresponder for SMS text messages. Autoresponders can streamline marketing campaigns and subscription signups and reduce the amount of work humans have to do. You can create a text autoresponder either by using our PHLO visual workflow builder or our SMS API. Follow the instructions in one of the tabs below.

You can create and deploy a PHLO to implement an SMS autoresponder with a few clicks on the PHLO canvas.

How it works

Prerequisite

To get started, you need a Plivo account — sign up with your work email address if you don’t have one already. 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.

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 to use in your payload — for example, a list of numbers to send an SMS message to.
  • 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 Incoming Message 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 number 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.
  • After you complete the configuration, give the PHLO a name by clicking in the upper left, then click Save.

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.
How to Build a Text Autoresponder Using PHLO | Plivo

Test

You can now send a message to your Plivo phone number and see how the autoresponder 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.

Jan 14, 2022
5 mins

What is MMS Messaging?

Detailed guide to MMS messaging at Plivo including the difference between SMS and MMS and how to get started.

MMS API

What is MMS Messaging?

When you go out in public these days, few people are interacting with each other — typically, they’re all on their phones. But they aren’t talking — they’re sending GIFs, emojis, and short video clips. This visual content allows consumers to interact with each other and the messaging service that lets you incorporate images, audio, and video into text messages is MMS.

What does MMS mean?

MMS — Multimedia Messaging Service — allows your phone to send emojis, pictures, videos, GIFs, audio recordings, and other non-text content. MMS can be more personalized than a plain text message. While you can send an emoji in an SMS message, you can send a GIF in MMS to amplify the tone of your message.

MMS Example

MMS vs. SMS: Which is better for your use case?

An MMS with graphical elements can be visually engaging for message recipients. Corporate marketing departments have trouble getting potential customers to pay attention to their messages. The visual element that MMS provides can solve that problem. According to Salesmate, “Pop an emoji or emoticon in your subject lines, and your open rates could soar. 56% of brands that use emoticons in that way have higher open rates. It’s something your business can’t afford to neglect.”

MMS has unique strengths for several industries. Consider retail for instance — retailers can use MMS to send coupons with embedded QR codes, or receive product registrations that include images of barcodes or QR codes. We wrote a blog post about how retailers can take full advantage of MMS. Recommended uses include coupons and promotions, personal shopping, product registrations, and branded content. Even if you’re not a retailer, it has ideas you might be able to apply to your business.

You can use MMS for any of the same use cases as SMS. Check out our guide on getting started with SMS marketing for more information.

As MMS is such a personal form of communication, we advise businesses to be thoughtful about when and how they use it. A messaging strategy loses its power when you inundate consumers with irrelevant messages or send messages too often or at inconvenient times, such as when they’re settling into bed for the night.

Plivo’s MMS API

Make sure to work with a high-quality MMS API provider that can provide the features, network, and infrastructure needed to help make your strategy successful. Our guide to choosing an SMS API provider details what you should look for from your SMS/MMS provider. Ultimately you’re looking for an API solution that makes it easy for developers to programmatically send and receive messages, that also leverages the cloud for scalability, and that runs on a global communications network to intelligently and cost-effectively route messages.

The Plivo MMS API lets you send and receive pictures and videos across phone numbers in the US and Canada. Several key features let you easily engage your customers visually.

  • You can send and receive MMS messages across the US and Canada via multiple sender types, including long code and toll-free numbers.
  • Choose between a variety of multimedia formats, such as image files (JPEG, GIF), emojis, audio (MP3), and video (MP4), for a rich multimedia experience.
  • The API intelligently resizes your images to ensure the best delivery across different carrier networks.
  • Plivo provides multimedia storage for both inbound and outbound MMS messages for easy access and reuse.
  • The API can convert multimedia messages into SMS when you’re sending messages to MMS-incompatible phone numbers.
  • Message queuing retries concurrent messaging requests to comply with carrier regulations and offers increased deliverability.

MMS on Powerpack

Plivo’s Powerpack provides a set of features that make message communication at scale more effective and reliable, ensuring that your SMS and MMS messages get delivered at whatever scale you’re sending them, to any country. Powerpack automates all of the complex logic that you would otherwise have to code manually. It’s designed to meet large-scale message throughput and volume requirements. By automatically distributing your overall messaging traffic across a pool of source numbers, Powerpack guarantees that you stay compliant with throughput limits and that your MMS messages get delivered.

Get started with MMS at Plivo

Not sure how to use Plivo for MMS? We’ve written Getting Started guides to sending MMS and receiving MMS for developers who use Node.js, Ruby, Python, PHP, .NET (C#), Java, and Go. And if those aren’t enough, we’ve got answers to several MMS questions in our support portal.

Our competitive pricing starts at $0.0080 for inbound and $0.0160 for outbound MMS messages. Pricing is pay-as-you-go, but discounts may apply to messages sent at higher volumes; you can contact our sales team for higher volume enrollment. Additional carrier surcharge fees may apply to all inbound and outbound MMS usage rates.

Sign up for a free trial of Plivo’s MMS API and automate sending MMS messages to US and Canada phone numbers today.

Jan 13, 2022
5 mins

How to Migrate Your Ruby 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
Ruby SDK
Voice API
How To

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 Ruby application to make an outbound call by changing just a few lines of code.

Twilio Plivo
require 'rubygems'
require 'twilio-ruby'

account_sid = ENV['TWILIO_ACCOUNT_SID']
auth_token = ENV['TWILIO_AUTH_TOKEN']
@client = Twilio::REST::Client.new(account_sid
, auth_token)

call = @client.calls.create(
            url: 
'http://demo.twilio.com/docs/classic.mp3',
            to: '+14155551212',
            from: '+14155551212'
)
puts call.sid

   
require 'rubygems'
require 'plivo'

include Plivo
include Plivo::Exceptions

auth_id = ENV['PLIVO_AUTH_ID']
auth_token = ENV['PLIVO_AUTH_TOKEN']

api = RestClient.new(auth_id,auth_token)

begin
  response = api.calls.create(
    '+14151234567',
    ['+15671234567'],
    'https://s3.amazonaws.com/static.plivo.com/answer.xml'
  )
  puts response
rescue PlivoRESTError => e
  puts 'Exception: ' + e.message
end

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
require 'sinatra'
require 'twilio-ruby'

post '/twiml' do
  # Start our TwiML response
  Twilio::TwiML::VoiceResponse.new do |r|
    # Use <Say> to give the caller some
    instructions
    r.say(message: 'hello world!', voice: 'alice')
  end.to_s
end

   
include Plivo
include Plivo::XML
include Plivo::Exceptions

class PlivoController < ApplicationController
 def inbound
    response = Response.new
    speak_body = 'Hello, you just received your
    first call'
    response.addSpeak(speak_body)

    xml = Plivo::PlivoXML.new(response)
    render xml: xml.to_xml
 end
end

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
require 'sinatra'
require 'twilio-ruby'

post '/twiml' do

   response = Twilio::TwiML::VoiceResponse.
   new
   response.dial(number: '415-123-4567')
   response.say(message: 'Goodbye')
   puts response
   end.to_s
end

   
def forward
   response = Response.new
   dial = response.addDial()
   dest_number = "<destination_number>"
   dial.addNumber(dest_number)

   xml = PlivoXML.new(response)
   puts xml.to_xml
   render xml: xml.to_xml
 end

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 Ruby 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.

Jan 10, 2022
5 mins

How to Migrate Your Ruby 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.

Migration
Ruby SDK
SMS API
How To

Migrating your Ruby 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 Ruby 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 Ruby application to send an SMS message by changing just a few lines of code.

Twilio Plivo
require 'twilio-ruby'

account_sid = '<account_sid>'
auth_token = '<auth_token>'
client = Twilio::REST::Client.new(account_sid,
auth_token)

from = '+15551234567' # Your Twilio number
to = '+15555555555' # Your mobile phone
number

client.messages.create(
	from: from,
	to: to,
	body: "Hey friend!"
)
   
require 'plivo'
include Plivo

api = 
RestClient.new('<auth_id>','<auth_token>')
response = api.messages.create(
	src:'+14152345678',
	dst:"'+14151112222',
	text:'Hello, from Ruby!'
)
puts response

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
require 'twilio-ruby'
require 'sinatra'

post '/sms-quickstart' do
  twiml = Twilio::TwiML::MessagingResponse
  .new do |r|
    r.message(body: 'Ahoy! Thanks so much for
    your message.')
  end

  twiml.to_s
end
   
# using Rails
def replysms
	from_number = params[:From]
	to_number = params[:To]
	text = params[:Text]
	response = Response.new
	params = {
		src: to_number,
		dst: from_number,
	}
	message_body = 'Thank you, we
  received your request'
	response.addMessage(message_body
  , params)
	xml = PlivoXML.new(response)
	puts xml.to_xml
	render xml: xml.to_xml
end

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 Ruby application to send an MMS message by changing just a few lines of code.

Twilio Plivo
require 'rubygems'
require 'twilio-ruby'

account_sid = '<account_sid>'
auth_token = '<auth_token>'
@client = Twilio::REST::Client.new(
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'
   )

puts message.sid

   
require 'rubygems'
require 'plivo'

include Plivo

api = RestClient.new('<auth_id>','<auth_token>')
  response = api.messages.create(
    src:'+14152345678',
    dst:'+14151112222',
    text:'Hello, from Ruby!',
    media_urls:[
    "https://media.giphy.com/media/26gscSULUcfKU7dHq/source.gif"],
    type: 'mms'
  )
puts 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 Ruby 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.

Jan 7, 2022
5 mins

How to Build a Virtual Assistant App the No-Code Way Using PHLO

Create an IVR phone tree that can act as a virtual assistant to manage multiple menus with prerecorded messages and manage call routing.

PHLO
Voice API
How To
Use Cases

Interactive voice response (IVR) systems let incoming callers access information and find contacts via a menu of pre-recorded messages, without having to speak to an agent, and let you automate polling via outgoing calls. Callers and call recipients can respond to prompts via Touch-Tone keypad presses or speech recognition. IVR systems can handle larger call volumes than operators and reduce costs associated with customer service.

Common IVR use cases include:

  • Auto-attendant: You can replace a receptionist with an IVR system that routes calls to agents during business hours and accepts voicemail when no one is available.
  • Call center: You can route calls coming in to call centers to the appropriate representatives based on user input.
  • Surveys, polling, and voting: You can implement IVR in outbound calls to collect customer satisfaction scores or conduct political polling.
  • Appointment reminders: You can send automated reminders to customers before their scheduled visits to help avoid missed appointments and facilitate rescheduling.
  • Lead assignment and lead routing: For inbound sales calls, you can set up an IVR menu with a set of qualifying questions to discover a customer’s interests, then redirect their call to a representative based on their responses.

This guide shows how to build an IVR menu system on the Plivo platform, either by using our PHLO visual workflow builder or our APIs and XML documents. This post talks about how to do it with PHLO.

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.

How it works

You can create and deploy a workflow to implement an IVR system with a few clicks on the PHLO canvas.

Create a PHLO to build a virtual assistant

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 information that other nodes can retrieve in the API Request section — in this case, the From and optionally To numbers for the IVR system.
  • From the list of components on the left side, drag and drop the IVR Menu 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 Incoming Call trigger state to the IVR Menu node.
  • In the Configuration tab at the right of the canvas, configure the choices for the IVR menu. For this example, select 1 and 2 as allowed choices. Enter a message to play to the user in the Speak Text box.
  • Once you’ve configured the node, save the configuration by clicking Validate. Do the same for each node as you go along.
  • Drag and drop two instances of the Call Forward component onto the canvas. Rename them Connect_to_Support and Connect_to_Sales. Draw lines to connect the IVR Menu node‘s 1 and 2 trigger states to the new nodes.
  • Configure each Call Forward node to select the From number using a variable. PHLO will get the number from the key/value pairs set in the Start node. Enter two curly brackets to view all available variables, and choose the appropriate one. For the To number, either enter a fixed number directly into the To field or use a variable that you configured in the Start node.
  • Drag and drop two instances of the Play Audio component onto the canvas. Rename the two nodes No_Input_Prompt and Invalid_Input_Prompt and configure each to speak a fixed message for callers to hear when they enter no input or invalid input. Draw lines from the IVR Menu node‘s No Input and Wrong Input trigger states to the respective nodes, then draw lines from the Prompt Completed trigger states of the new nodes back to the IVR Menu node, to give callers another chance to enter a menu choice.
  • Give the PHLO a name by clicking in the upper left, then click Save.

Your complete PHLO should look like this.

How to Build a Virtual Assistant Using PHLO

Refer to the Create the PHLO section in our use case guide for more information.

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.
Assign PHLO to a Plivo Number

Test

You can now call your Plivo phone number and see how the IVR system 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.

Jan 5, 2022
5 mins

Guide to Plivo’s Premium Communications Network

Plivo’s Premium Communications Network comprises 1,600+ telecom provider networks and connectivity in 190+ countries. Learn more about Plivo’s infrastructure.

Communications Network

Plivo’s Premium Communications Network

No other cloud communication platform can match Plivo’s Premium Communications Network (PCN), because it’s taken us 10 years to build it through the careful addition of Tier 1 carrier networks all across the globe. It’s a key competitive advantage that allows Plivo customers to take advantage of a network that delivers high call quality and message deliverability.

A global carrier network

Plivo’s PCN serves a worldwide audience of voice and messaging customers — we have direct relationships with more than 1,600+ carrier networks and connectivity in 190+ countries. Our strict evaluation process approves only carriers that meet the highest industry standards. To ensure top performance for customers in every region, we’ve established seven points of presence (PoP) that correspond to internet exchange points (IXP) in every region around the globe. That means calls outside the local region are routed to their destinations with minimal latency, ensuring maximum voice quality.

Built for reliability

Top performance demands top reliability. We connect with at least two local or Tier 1 direct carriers in each country so we can eliminate multiple hops, lower the overhead of routing, reduce latency, and give our customers the best connections possible. Having multiple carrier connections also gives our customers built-in redundancy to ensure that, in the event of a carrier failure, all voice traffic is automatically routed through alternative carriers to minimize service disruption and quality degradation.

Our PCN delivers a number of practical benefits for our customers, including guaranteed CLI (caller ID) and instant phone number provisioning in every country. Because Plivo manages carrier relationships for our customers, we have a complete end-to-end view of every connection, so we can identify issues and work with carriers to get problems solved, sometimes before our customers even know something went wrong.

Learn more about all the benefits in our free ebook Premium Communications Network: Simplified Cloud-Based Telecom Carrier Infrastructure. You’ll see why no other CPaaS can match our infrastructure.

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