Integrations

Integrate infoproduct checkout with WhatsApp: where your operation misses sales

By VeyloCRM · · 12 min read

An ad leads to the page, the page leads to the checkout, support happens on WhatsApp — and these three parts almost never communicate. The result is an operation that sees approved sales very well but is blind to abandoned carts, unpaid boletos, declined cards, and subscription billing failures. Together, these four events usually represent more value than any ad optimization could bring in the same month.

The gap between checkout and conversation

Almost every Brazilian digital operation has the same architecture: ads lead to a page, the page leads to a checkout on an infoproduct platform, and support happens on WhatsApp. The problem is these three parts usually don’t communicate. The agent doesn’t know if the person abandoned the cart, if the payment was approved, if the boleto expired, or if the card was declined. And the platform knows nothing about what was discussed.

The result is an operation working in the dark at the moments it most needs visibility: abandoned cart, pending payment, declined purchase, and refund request.

The data most lost: who reached checkout but didn’t complete. This person is the closest to purchase in the entire base — and without integration, no one contacts them.

The consequence is the operation sees very well what already succeeded — the approved sale shown on the platform dashboard — and is completely blind to everything that almost happened. Abandoned cart, unpaid boleto, declined card, and subscription billing failure usually add up to more money than any ad optimization could bring in the same month in almost every digital operation.

This guide shows how to connect checkout to support: which events are worth listening to, how the integration works internally, the technical detail that usually breaks everything, what to say in each situation, and the calculation of what is being left on the table today.

Free reading

Continue reading for free

Fill out once and unlock this and all other blog articles. We don’t charge anything — we just want to know who we’re writing for.

Takes 20 seconds. Prefer to talk directly on WhatsApp?

The seven events worth listening to

Integrate doesn’t mean syncing everything. It means choosing the events that change support:

  • Abandoned cart. The person filled in data but didn’t finish. Contacting within the first minutes has the highest recovery rate in the entire operation.
  • Pix or boleto generated and unpaid. Declared intention, payment pending. Often the person just forgot.
  • Payment declined. Almost always a card issue, not a cancellation. A message offering another payment method solves a large portion.
  • Payment approved. The trigger for delivery, welcome, and upsell.
  • Refund requested. The chance to understand the reason before processing.
  • Subscription with billing failure. In recurring products, it’s the main cause of involuntary cancellation.
  • Subscription canceled. The moment to ask why, which is information that improves the product.

Seven events cover practically the entire operation. Trying to integrate dozens of statuses adds complexity without return.

How the integration works in practice

The mechanism is always the same, regardless of platform: when something happens at checkout, the platform sends a notification to an address you define, with the event data — name, contact, product, value, and status. This notification reaches the support system, which locates or creates the conversation for that person, records the event, and triggers the agreed action.

Three practical decisions arise in this setup. The first is which data to use as the key to find the person; in Brazil, phone number is more reliable than email for this. The second is what to do if there’s no previous conversation: create a new contact already marked with the source. The third is what to record in the conversation, and here the minimum useful info applies — event, product, value, and date — because a polluted history hinders the agent instead of helping.

What to look for before choosing the platform

Those who have yet to choose where to host checkout have the chance to avoid huge work later. Five characteristics determine whether integration with support will be simple or painful.

  • Event-based notifications. The platform must be able to notify an external system when something happens, not just show info on its own dashboard. Without this, any automation depends on someone checking reports.
  • Which events it sends. Many notify only payment approved and little else. What differentiates is also notifying abandoned cart, pending payment, decline, and subscription billing failures.
  • Which data is included in the notification. Name, phone, product, value, and status are the minimum. Platforms that send only an internal identifier require a second query and complicate setup.
  • Phone capture at checkout. Seems like a detail but is decisive: if the phone field is optional, a relevant portion of buyers won’t fill it, and without a number, there’s no WhatsApp support.
  • Resending on failure. If the destination system is down for a few minutes, does the platform try again or is the event lost forever? This difference shows up on the highest volume day.

It’s also worth checking if the platform allows identifying the sale source in the event itself, as this saves the work of cross-referencing later to know which ad brought which client. When the choice is already made and the platform is limited, the usual solution is to use an automation intermediary to fill the gaps — a valid solution but adds another potential failure point in the operation.

The detail that breaks everything: phone number format

The most common cause of integration that "doesn’t work" isn’t the platform or system: it’s the phone number. The client types with mask, without country code, with or without the ninth digit, sometimes with a landline number. The platform delivers exactly as typed.

If the support system compares the literal text, half the events won’t find the matching conversation and will create duplicate contacts. The solution is to normalize before comparing: remove mask, handle country code, and deal with ninth digit variation. Also take extra care — don’t assume one format is correct just because it looks valid; test the possibilities, because the only one who confirms if the number exists on WhatsApp is WhatsApp itself.

Cart recovery: what to say and when

Recovery works best the earlier it happens, and content matters less than timing. A sequence that works well has three contacts.

The first, a few minutes after abandonment, is short and offers help with any questions or payment difficulties — no offers and no discounts. The second, a few hours later, can provide information addressing the product’s most common objection, like access time or guarantee. The third, the next day, closes the matter with a direct question about what blocked the purchase.

Two things should not be included in this sequence. Immediate discount, because it teaches the market to abandon carts on purpose. And persistence after the third contact, because someone who didn’t respond three times won’t respond to a fourth, and the message starts to damage reputation.

Pending and declined payment

These two events are the most underestimated in operations and the easiest to recover because the person has already decided to buy.

In the case of pix or boleto generated, the effective standard is to resend the code or link in a short message a few hours later and a reminder before expiration, with value and deadline visible. In the case of payment declined, the message should treat the decline as a technical problem, because it almost always is: offering another payment method or card solves a relevant portion of cases. The tone here is decisive — messages that embarrass make the person give up trying again.

Subscription, billing failure, and cancellation

In recurring products, there is a category of loss that is not the client’s decision: the card expired, the limit wasn’t covered, the bank declined. This involuntary cancellation accounts for a large share of total cancellations in many operations and is the cheapest to recover because the person still wants the product.

Integration allows action on the day of failure, with a message that notifies and facilitates updating the payment method, followed by a reminder before access is blocked. For voluntary cancellation, the value is in asking why and recording the answer in a standardized field — after some dozens of cancellations, this field accurately indicates what needs to change in the product or the sold expectation.

Automatic delivery and welcome

With the payment approved event reaching support, delivery no longer depends on someone checking a spreadsheet. The confirmation message is sent immediately, with access and first instruction, and the conversation is marked as client, which removes that person from all sales campaigns for the same product.

This last part is more important than it seems. Receiving offers for what was just purchased is one of the biggest irritants for digital product clients, and it happens precisely due to lack of integration between checkout and the sending base.

What the official API allows in each case

It’s worth separating utility from marketing because classification changes what can be sent. Purchase confirmation, pending payment notice, billing failure, status update, and access instruction are utility messages linked to an ongoing transaction. Cart recovery with offer and reactivation campaigns are marketing.

Three practical rules: starting a conversation outside the 24-hour window requires an approved template in the correct category; permission from the recipient is still mandatory; and within 24 hours after the person writes, the conversation is free. A useful consequence of this last rule is that transactional messages should invite a response — when the person replies, the window opens in which support can happen without restriction.

What to record in the conversation

The ideal history is short and readable by whoever is supporting now: product, value, date, current status, and previous events in order. This allows any team member to open the conversation and understand the situation in five seconds, without asking the client something the system already knows.

A security precaution: payment data should not be recorded in support. The system needs to know that payment occurred, the value, and status — never card data. Besides security requirements, this type of information should not circulate on an open screen all day.

The integration calculation

An operation with 900 checkouts started per month and ticket of R$ 497:

  • Complete payment immediately: 310 sales, R$ 154,070.
  • Abandon the cart: 420. With recovery by conversation, 12%: 50 sales, R$ 24,850.
  • Pix or boleto pending: 120. With reminder, 34%: 41 sales, R$ 20,377.
  • Payment declined: 50. With message offering another method, 28%: 14 sales, R$ 6,958.
  • Total recovered: R$ 52,185 in the month, 34% above original revenue.

No new ads were created. All this value was inside the operation, in people who had already reached checkout and who, without integration, simply received no messages.

Errors that block the integration

  • Comparing phone without normalizing, creating duplicate contacts with each event.
  • Integrating dozens of statuses instead of the few that change support.
  • Giving a discount in the first cart message, teaching the client to abandon on purpose.
  • Not marking who bought, continuing to offer the product to those who already have it.
  • Treating card decline as cancellation, when it’s almost always a technical problem.
  • Recording payment data in the conversation.

Where to start

Start with just two events: payment approved, which handles delivery and client marking, and abandoned cart, where the easiest money is. Normalize the phone before any comparison. Write the three messages of the cart sequence without discount. Only then add pending, declined, and subscription events. In thirty days, this minimal setup usually pays for itself several times, and the operation begins to see exactly where sales are stopping.

Frequently asked questions

How to recover abandoned cart via WhatsApp?

Recovery works best the earlier it happens, and timing matters more than text. An effective sequence has three contacts: the first a few minutes after abandonment, short, offering help with questions or payment difficulties, no offers or discounts; the second a few hours later, providing information that addresses the product’s most common objection, like access time or guarantee; and the third the next day, closing the matter with a direct question about what blocked the purchase. Two things should not be included: discount right in the first message, because it teaches the client to abandon on purpose, and persistence after the third contact.

Why does integration create duplicate contacts?

In the vast majority of cases, because of phone number format. The client types with mask, with or without country code, with or without the ninth digit, and the checkout platform delivers exactly as typed. If the support system compares the literal text with what’s already registered, some events won’t find the matching conversation and will create a new contact. The solution is to normalize before comparing, removing mask, handling country code, and dealing with ninth digit variation. Also, don’t assume a format is valid just because it looks correct, since the only one who confirms if the number exists is WhatsApp itself.

Which checkout events are worth integrating?

Seven cover practically the entire operation: abandoned cart, where the easiest money is; pix or boleto generated and unpaid; payment declined, which is almost always a technical card issue and not cancellation; payment approved, which triggers delivery, welcome, and client marking; refund requested, which allows understanding the reason before processing; subscription billing failure, the main cause of involuntary cancellation in recurring products; and subscription cancellation, which is the opportunity to record the reason for leaving. Trying to sync dozens of different statuses adds complexity without proportional return.

Connect checkout to conversation.

VeyloCRM receives events from your payment platform, finds the conversation by phone, records the status, and triggers the right message in each situation — from abandoned cart to billing failure.