Retail and e-commerce · Sales activation

Actionable lists for sales

Every day or every week the team gets, in the tool it already uses, who to reach out to (abandoned cart, unclosed quote, lapsed customer), with no repeat contact and knowing afterwards who bought.

UsageCommon
EffortMedium
ForRetailers and e-commerce businesses with a sales, service or SDR team that reaches out to customers proactively.
Source

Carts, orders, quotes and customer records

Rule

Eligibility per action, excluding those already sent and those who bought

Outcome

One task per customer and action, with priority

Activation

ClickUp, CRM chat or WhatsApp, and feedback on who bought

What it solves

  • The team gets the list ready in its day-to-day tool, with no spreadsheet exports.
  • No one is contacted twice for the same action, and neither is a customer who already bought.
  • Every list comes back with the result: who bought, how much and how fast.

Business questions it answers

Ask your agent these questions once the case is live.

Which repeat customers abandoned a high-value cart this week?
Which items are quoted most and closed least over the last few months?
Which good customers have gone longer than usual without buying?
How many customers from each list bought after the contact, and how much did they spend?
Which salespeople have the most cards in negotiation, and how much value is stalled at each store?

What you need

  • Online store, ERP or hub and CRM connected to Nekt
  • The team's tool set up as a destination (ClickUp, CRM chat or WhatsApp)
  • The rule for each action: who gets in, who gets out, priority and who receives it

What you get

  • A table of eligible customers per action, with purchase context and priority
  • Automatic delivery to the team's tool, in the format it requires
  • A permanent send history that prevents repeat contact
  • Feedback on who bought after the contact, with conversion rate per action

Where to activate

Tasks in ClickUp

One task per customer with cart products, link, purchase history, priority and the originating action.

Team WhatsApp

Every week, the most quoted and unclosed items with % conversion, so the team can adjust price and approach.

CRM chat

Early every day, yesterday's sales and quotes by store and cards in negotiation by salesperson.

Ready to build?

The selection is simple SQL. The work is in customer identity across store, ERP and destination, in the send history and in the return loop. The detailed view has the business rules, the pitfalls and the acceptance test. Or send everything straight to your agent with the Nekt MCP.

The problem

The abandoned cart is in the online store, purchase history in the hub or ERP and the contact in the CRM, each with its own identifier. An eligibility query with no memory sends the same customer every round. The task that gets created stays open forever, because nobody links the later order to the contact. And the quote that never became an order does not even show up, because in the ERP it is not a sale yet.

How it is usually done, and the rule

Each row is a mistake that already happened in practice.

The common wayThe rule
01
A single query that selects, deduplicates and formats, rewritten for every campaign.
One action, one selection, one formatter

Split into three steps: (1) selection of eligible customers for the current action, the only part that changes per action; (2) exclusion of those already sent; (3) formatting in the exact layout of the destination. The eligibility table carries the action name, so the history and the feedback know where each contact came from.

02
Every abandoned checkout of the week, including from customers who bought an hour later.
Abandoned cart with an explicit criterion

Eligible: checkout with no completion date (completedAt null), with an identified customer, value above the action's minimum, each customer's latest abandonment in the window. Customers who placed an order after the abandonment are removed. To prioritize, join with ERP or hub history: customers who bought at least twice, with an average ticket above the minimum, in the order statuses that count as a sale.

03
Treating every card in a quote stage as lost, including those that already have a payment set.
A quote only leaves the list when it becomes an order

In the ERP, the sales pipeline mixes quotes and orders in the same stages. Treat it as an order only when the payment method has been entered on the installment; before that, it is an open quote. For the list of most-quoted, unclosed items, count quotes per item over the last few months and the conversion (quotes that became an invoice / quotes), linking cart to invoice by the full key (store and invoice number).

04
Using "no CRM activity for 90 days" and ignoring customers who buy without a CRM record.
Lapsed customer by last purchase in the ERP

The last purchase comes from ERP invoicing, not from the latest CRM activity. Lapsed means the customer went past their own purchase cycle without coming back, prioritized by customer classification (A, B, C). Not every customer who buys has a CRM record: the list comes from the ERP and creates or updates the record. A dedicated win-back pipeline in the CRM separates reactivation contact from regular sales contact.

05
Matching customers by name, or creating the task without any recoverable key.
Normalized customer identity

Join the online store and the ERP by CPF (individual tax ID) or CNPJ (company tax ID) as digits only, or by lowercase email. When the destination does not store the ID, embed the key in an extractable format: an "Email: <e-mail>" line in the task description, or the ERP ID in parentheses in the card title ("NAME (123)"). With no name, use "Unnamed customer (<id>)" instead of leaving it blank.

06
Comparing only with the previous round, or overwriting the send table on every run.
Permanent send history

Every round writes to an insert-only table: customer, reference (the cart, the quote), action and send date. Before sending, exclude anyone already in the history for the same action. The history is never overwritten by the next round; it is what guarantees idempotency when the send runs again.

07
Resending the whole round and duplicating the tasks that had already gone in.
A resend compares with what is already in the destination

Sends fail halfway. Before resending, read the tasks that already exist in the destination list, extract the key (the email in the description) and send only the missing ones. Run in test mode first, without writing, and make a send failure break the run so it shows up.

08
Measuring the action by the status the agent set by hand.
Close the loop with the order

Read back the open tasks in the list (customers to handle, negotiating, no reply, follow-up, did not buy). When the customer placed an order after the task was created, mark the task as "bought" and store the number and value of the first order. That way each action has conversion and revenue measured by the order, not by the manual status.

09
A salesperson ranking with the integration user at the top.
Summary by salesperson, in the team's channel

Besides the per-customer lists, send yesterday's summary by store every day in the CRM chat (sales and quotes, count and value) and the cards in qualification or negotiation by salesperson, with value. Exclude system and integration users from the ranking. The text sent is the same one that gets stored, for checking.

10
An intermediate table with CPF, phone and email in clear text, queryable by everyone.
Personal data out of free text

List tables store flags (has phone, has document) and, when needed, a hash of the contact with the secret kept in the vault, not the data in clear text. Shared views show a masked CPF. Phone and email only appear in the final step, which writes to the destination.

The most used lists and who leaves them

Adjust window and minimum value per action.

Abandoned cartLatest abandonment per customer, above the minimumout: order after the abandonment
Unclosed quoteQuote without a payment methodout: became an order or invoice
Most quoted, unclosed itemsTop N items with % conversionweekly, window of months
Lapsed customerPast the purchase cycle without coming backout: new purchase in the ERP
After-sales returnCustomer with a scheduled service or maintenanceout: visit recorded
Salesperson summaryYesterday's sales and cards in negotiationdaily, CRM chat

Definitions

Eligible
customer who meets the action's rule on the round date and is not in that action's send history
Sent
distinct count of customers recorded in the send history, by action and round
Bought
sent customer with a valid order dated after the task was created, within the action's window
Action conversion
customers who bought / customers sent, by action and round
Action revenue
sum of the value of the first order after contact, by action and month
Time to purchase
days between task creation and the first order, median per action
Quoted item conversion
the item's quotes that became an invoice / the item's quotes, within the list's window
Lapsed customer
customer whose days since last ERP purchase exceed their average repurchase cycle, by classification

Pitfalls that already happened

Same customer every round

The abandoned cart list had no memory, and the same customer became a task in consecutive rounds of the same action.

Insert-only send history, filtered by customer and action before every send.

Duplicate resend

A round failed halfway and was resent in full, creating duplicate tasks for those who had already gone in.

Read the destination, extract the key from the description and resend only the missing ones.

Tasks open forever

Customers bought after the contact and the tasks stayed as "to handle". The action seemed not to convert.

Automatic feedback: an order after the task changes the status to bought.

A CRM win that is not a sale

A closed pre-sales contact showed up as won in the pipeline and entered the results list as a converted customer.

Conversion measured by the order in the ERP or store, not by the CRM stage.

Send broken by a large query

Joining quoted items with the catalog produced a giant filter pushed down to the warehouse read, and the weekly send failed on a size limit.

Disable broadcast join in the notebook, or pre-aggregate before the join.

Acceptance test

The case is done when every item passes.

Agent package

Paste into Claude, ChatGPT or any client with the Nekt MCP connected.

Full Markdown
Actionable lists for sales
- Grain: one row per customer and action. The send history is insert-only (customer, reference, action, send date).
- An action's eligible customers exclude anyone already in the same action's history and anyone who bought after the event (abandonment, quote).
- Abandoned cart: completedAt null, identified customer, value above the action's minimum, latest abandonment per customer.
- A quote becomes an order when the payment method is entered on the installment. A cart links to the invoice by the store + invoice number key.
- Lapsed customer: days since last ERP purchase above the customer's average cycle. The last purchase comes from the ERP, not the CRM.
- Identity: CPF (individual tax ID) or CNPJ (company tax ID) as digits only, lowercase email. In the destination, the key sits on the "Email: <e-mail>" line of the description or in parentheses in the title.
- Bought = valid order after the task was created. Action conversion = bought / sent.
- A CRM win is not a sale. A sale is an order or invoice.
- System and integration users stay out of salesperson rankings.
- Do not expose CPF, phone or email in clear text in answers; use masked values.
Client exceptions:
- <client>: order statuses that count as a sale in the hub <list>.
- <client>: minimum value for action <action> = <value>; window <days>.
- <client>: system user IDs <list>.

Variations

Workshop return visits

Vehicle customers with a scheduled service and no recorded visit, with masked document, for after-sales to call.

Professional win-back

Professionals who refer or buy for construction jobs and stopped buying, in a CRM win-back pipeline.

Best leads of the day

Score by being an existing customer, pipeline stage and source, sending the top N to each salesperson.