# Triage every PayPal dispute before the response clock runs out

> When PayPal opens a dispute, we check the buyer's purchase history, post a short brief to Slack with the deadline, and log it to your tracker.

- Workflow type: agent
- Services: PayPal, Slack, Google Sheets
- Categories: Finance, Customer Support
- Published: 2026-08-09

## What it does

- Starts the moment PayPal opens a new dispute, so nobody has to watch the Resolution Center all day
- Looks up the reason, the amount, and the date your response is due, then pulls the buyer's past purchases to tell a loyal repeat customer apart from a first-time buyer with a suspicious pattern
- Posts a short brief to your disputes channel in Slack that leads with the deadline in your local time and a clear recommendation: contest it with evidence, or accept the loss when fighting costs more than the sale
- Adds a row to your disputes tracking spreadsheet so you can measure your win rate and spot the reasons that keep coming back

## What you'll need

- A PayPal business account with disputes enabled
- A Slack workspace and the channel where your team handles disputes
- A Google Sheets spreadsheet with a disputes tracking tab
- The local timezone your team works in, so deadlines are always shown in your time

## Prompt

Whenever PayPal fires its dispute created webhook, build a triage brief for our disputes team before the response clock runs out. Use a webhook trigger on PayPal so this starts the moment a new dispute is opened, rather than on a schedule.

Start by calling PayPal Get Dispute with the dispute ID from the webhook payload. Pull the full reason code, the disputed amount and currency, the buyer's details, the current status and life cycle stage, and the seller response due date. The response due date is the single most important field in this workflow.

Then call PayPal List Transactions to pull that buyer's prior purchase history. Search a generous window, for example the last 12 to 24 months, and match on the buyer's email address or payer ID from the dispute. Summarize how many prior purchases they made, their total spend with us, and whether they have any earlier refunds or disputes. The point of this step is to tell a loyal repeat customer apart from a first-time buyer with a suspicious pattern.

Use that history, together with the reason code and the amount, to recommend exactly one of two actions. Recommend contesting with evidence when the reason code is defensible and there is real evidence worth assembling, such as proof of delivery or a clear service record, or when a long-standing customer's claim reads more like a misunderstanding than fraud. Recommend accepting liability when the disputed amount is lower than the realistic cost of fighting it, or when the evidence is weak and the case is unlikely to be won. Give the reasoning in one or two lines, and when the recommendation is to contest, list the specific evidence someone needs to gather.

Post the brief to our disputes channel in Slack using Send a Message. Lead with the response deadline, then the recommended action, then the essentials: dispute ID, reason, amount, buyer, and the one-line buyer history summary. Keep it short enough to read on a phone, roughly eight to ten short lines with no long paragraphs. Always state the deadline converted to our local timezone, not UTC, and include how much time is left to respond.

Also append a row to our disputes tracking tab in Google Sheets using Append Values, capturing the dispute ID, the date it was opened, the reason code, the amount, the buyer, the recommended action, the response deadline, and an outcome column left blank for the team to fill in once the case closes. This is what lets us measure our win rate and spot recurring dispute reasons over time, so keep the columns consistent on every run.

Two edge cases to handle explicitly. If Get Dispute comes back without a response deadline, say so plainly in the Slack message instead of guessing at a date, and treat the dispute as urgent. If the buyer has no prior transaction history at all, state that directly rather than leaving the history line blank, because a first-time buyer opening a dispute is itself a meaningful signal.

## How to customize

- Change the amount below which the workflow leans toward accepting the loss instead of fighting it
- Point the brief at a different Slack channel, or send high-value disputes to a separate channel
- Adjust how far back the buyer history lookup goes, and add or reorder the columns in your tracking sheet

## FAQ

### How quickly does the brief show up?

Within moments of PayPal opening the dispute. That matters because response windows are tight, and some pre-chargeback alerts give you less than a day to reply.

### Does this respond to the dispute for me?

No. It gathers the facts, weighs the buyer's history, and recommends whether to contest or accept, but a person makes the final call and files the response. That is deliberate, since the wrong automated response can cost you the case.

### How does it know whether the buyer is a good customer?

It looks up that buyer's past purchases in your PayPal history and summarizes how often they have bought from you and how much they have spent. A long-standing customer with one complaint gets read very differently from a brand-new buyer disputing a large order.

### What if the disputed amount is small?

That is exactly the case the recommendation is built for. When the amount is lower than the realistic cost of assembling evidence and fighting the claim, the brief will tell you to accept it and move on.

### Will the tracking spreadsheet tell me my win rate?

It captures everything you need for it: dispute ID, reason, amount, buyer, and an outcome column your team fills in when the case closes. Once a few months of rows build up, you can see both your win rate and which reasons keep recurring.

Use this prompt in General Input: https://www.generalinput.com/prompts/triage-every-paypal-dispute-before-the-response-clock-runs-out