Skip to main content
Click “Copy Page” to copy this use case as markdown.

Problem

Most people buy the same grocery and household products week after week, but every trip to the store starts from scratch: trying to remember what’s running low, writing items down in a notes app, or showing up and improvising. With access to SKU-level transaction data, an app can identify exactly which products a user buys repeatedly and turn that into something useful.

Solution

Use SKU-level transaction data from Knot’s Sync Transactions endpoint to identify products a user buys repeatedly at linked grocery and retail accounts, then generate a personalized shopping list pre-populated with those items.
Banking app screen showing a personalized shopping list with frequently purchased grocery items, checkboxes, and an estimated total
This turns purchase history into a practical, recurring utility that gives users a reason to open the issuer’s app before every shopping trip.

Flow

Implementation

1

Sync transactions and build a purchase history

When a user switches their card at a merchant or they simply link their merchant account w/o switching their card, Knot begins collecting transaction data for that account. Listen for the NEW_TRANSACTIONS_AVAILABLE webhook event, then call Sync Transactions to sync SKU-level transactions on a daily basis. For each transaction, iterate over the products array and update a per-user, per-merchant purchase index.Key fieldsOnly include transactions with order_status of COMPLETED, DELIVERED, PICKED_UP, SHIPPED, BILLED, or ORDERED. Filter out CANCELLED, REFUNDED, and FAILED.
2

Generate the shopping list

When a user’s purchase index reaches the minimum threshold, compile their shopping list. Run this on initial sync (to catch historical data) and refresh after each new transaction batch.
Configuration decisions for your team:
3

Surface shopping list in the app

Send a push notification when the list is first generated or materially updated, and surface it as a persistent in-app feature.
Banking app screen showing a personalized shopping list with frequently purchased grocery items, checkboxes, and an estimated total
Users should be able to check off items as they shop, add one-off items manually, and skip items they don’t need that week.

Expansion Path

  • Predictive reorder timing: For each recurring item, track the average interval between purchases (e.g., milk every 6 days). Surface items on the list when they are likely running low, rather than showing all items at once every week.
  • Cross-merchant list: Combine repeat-purchase data across multiple linked merchants into one unified list. For items that appear at more than one merchant, surface the lower price as a recommendation.
  • Store-brand swap suggestions: For each name-brand item on the list, check whether a comparable store-brand product is available at a lower price and offer an inline swap. This reuses the same purchase history data and adds a savings angle without requiring a separate flow.