Marketplace Seller Support Agent
Help marketplace sellers with onboarding, listing issues, dispute resolution, and policy questions over web chat, with optional CRM logging.
What you'll build
An agent that fields seller support queries over web chat: onboarding walkthroughs, listing issue diagnosis, dispute resolution guidance, and policy FAQs. Escalation email handles disputes the agent cannot resolve automatically. An optional CRM integration lets you log every seller interaction without leaving the flow.
Prerequisites
- BimpeAI account with an API key (
sk_…) - Read Anatomy of a workflow agent first — this recipe skips steps covered there
- Web chat widget enabled in the Console dashboard (see Step 4)
- Escalation email configured under Settings → Escalation for unresolvable disputes (see Step 4)
- CRM connection in the Console dashboard if you want automatic case logging (optional, see Step 4)
Steps
1. Find the workflow
import { BimpeAI } from "@bimpeai/sdk";
const bimpe = new BimpeAI({ apiKey: process.env.BIMPEAI_API_KEY! });
const page = await bimpe.workflows.list({ scope: "public", search: "seller support" });
const workflow = page.data[0];
console.log(workflow.id, workflow.name);import os
from bimpeai import BimpeAI
client = BimpeAI(api_key=os.environ["BIMPEAI_API_KEY"])
page = client.workflows.list(scope="public", search="seller support")
workflow = page.data[0]
print(workflow.id, workflow.name)2. Create the agent
const agent = await bimpe.agents.create(
{
name: "Marketplace seller support agent",
system_prompt:
"You are a support agent for marketplace sellers. Help sellers with account onboarding, " +
"listing creation and editing, understanding fees, and navigating policy requirements. " +
"For listing issues, ask for the listing ID and describe the problem clearly. " +
"For disputes, explain the dispute process step by step from the dispute policy knowledge base. " +
"If a dispute cannot be resolved through the standard process, escalate to the seller support team. " +
"Always cite the relevant policy section when answering policy questions.",
agent_workflow_id: workflow.id,
},
{ idempotencyKey: "create-seller-support-agent-v1" },
);
console.log(agent.id);agent = client.agents.create(
name="Marketplace seller support agent",
system_prompt=(
"You are a support agent for marketplace sellers. Help sellers with account onboarding, "
"listing creation and editing, understanding fees, and navigating policy requirements. "
"For listing issues, ask for the listing ID and describe the problem clearly. "
"For disputes, explain the dispute process step by step from the dispute policy knowledge base. "
"If a dispute cannot be resolved through the standard process, escalate to the seller support team. "
"Always cite the relevant policy section when answering policy questions."
),
agent_workflow_id=workflow.id,
idempotency_key="create-seller-support-agent-v1",
)
print(agent.id)3. Add knowledge bases
Four knowledge bases cover the main seller support topics. The agent draws from all of them in a single conversation.
// Seller onboarding guide
await bimpe.agents.knowledgeBases.create(agent.id, {
type: "text",
name: "Seller onboarding guide",
content:
"Step 1: Create your seller account at marketplace.example.com/sell.\n" +
"Step 2: Complete identity verification — government ID required.\n" +
"Step 3: Add your bank account for payouts. Payouts process every 7 days.\n" +
"Step 4: Create your first listing. Required fields: title, category, condition, price, photos (minimum 3).\n" +
"Step 5: Set your shipping options. Tracked shipping required for orders over £50.\n" +
"New seller accounts are reviewed within 24 hours before the first listing goes live.",
});
// Listing rules
await bimpe.agents.knowledgeBases.create(agent.id, {
type: "text",
name: "Listing rules",
content:
"Prohibited items: weapons, counterfeit goods, prescription medicine, alcohol without licence.\n" +
"Photo requirements: minimum 3 photos, white or neutral background, no watermarks.\n" +
"Title rules: no all-caps, no keyword stuffing, must accurately describe the item.\n" +
"Price limits: minimum £0.50, maximum £50,000. Items over £10,000 require seller verification.\n" +
"Listings inactive for 90 days are automatically archived.",
});
// Dispute policy
await bimpe.agents.knowledgeBases.create(agent.id, {
type: "text",
name: "Dispute policy",
content:
"Buyers have 30 days from delivery to open a dispute.\n" +
"Sellers have 5 business days to respond to a dispute.\n" +
"Evidence accepted: photos, tracking information, message history.\n" +
"If no response within 5 days, the dispute is resolved in the buyer's favour.\n" +
"Appeals must be submitted within 14 days of the original decision.",
});
// Fee schedule
await bimpe.agents.knowledgeBases.create(agent.id, {
type: "text",
name: "Fee schedule",
content:
"Listing fee: free for the first 50 listings per month; £0.20 per listing after that.\n" +
"Final value fee: 10% of the sale price including postage.\n" +
"Payment processing: 2.9% + £0.30 per transaction.\n" +
"Fee discounts apply for Top Seller status (>500 sales, >4.8 rating): 1% off final value fee.",
});# Seller onboarding guide
client.agents.knowledge_bases.create(agent.id, {
"type": "text",
"name": "Seller onboarding guide",
"content": (
"Step 1: Create your seller account at marketplace.example.com/sell.\n"
"Step 2: Complete identity verification — government ID required.\n"
"Step 3: Add your bank account for payouts. Payouts process every 7 days.\n"
"Step 4: Create your first listing. Required fields: title, category, condition, price, photos (minimum 3).\n"
"Step 5: Set your shipping options. Tracked shipping required for orders over £50.\n"
"New seller accounts are reviewed within 24 hours before the first listing goes live."
),
})
# Listing rules
client.agents.knowledge_bases.create(agent.id, {
"type": "text",
"name": "Listing rules",
"content": (
"Prohibited items: weapons, counterfeit goods, prescription medicine, alcohol without licence.\n"
"Photo requirements: minimum 3 photos, white or neutral background, no watermarks.\n"
"Title rules: no all-caps, no keyword stuffing, must accurately describe the item.\n"
"Price limits: minimum £0.50, maximum £50,000. Items over £10,000 require seller verification.\n"
"Listings inactive for 90 days are automatically archived."
),
})
# Dispute policy
client.agents.knowledge_bases.create(agent.id, {
"type": "text",
"name": "Dispute policy",
"content": (
"Buyers have 30 days from delivery to open a dispute.\n"
"Sellers have 5 business days to respond to a dispute.\n"
"Evidence accepted: photos, tracking information, message history.\n"
"If no response within 5 days, the dispute is resolved in the buyer's favour.\n"
"Appeals must be submitted within 14 days of the original decision."
),
})
# Fee schedule
client.agents.knowledge_bases.create(agent.id, {
"type": "text",
"name": "Fee schedule",
"content": (
"Listing fee: free for the first 50 listings per month; £0.20 per listing after that.\n"
"Final value fee: 10% of the sale price including postage.\n"
"Payment processing: 2.9% + £0.30 per transaction.\n"
"Fee discounts apply for Top Seller status (>500 sales, >4.8 rating): 1% off final value fee."
),
})4. Connect channels and integrations (dashboard)
Channels, CRM, and escalation email are configured in the dashboard
The API cannot create channel connections or integrations. The web chat widget, CRM connection, and escalation email are all connected in the Console dashboard. Escalation email is set under Settings → Escalation. The SDK can list active integrations but cannot modify them.
- Open Console dashboard → Agents → select your agent.
- Under Channels, enable the web chat widget and paste the embed snippet into your seller dashboard.
- Under Settings → Escalation, enter the seller support team email address for disputes that cannot be resolved automatically.
- Optionally, under Integrations, connect your CRM for automatic case logging on every seller conversation.
5. Go live
const integrations = await bimpe.agents.integrations.list(agent.id);
const channels = await bimpe.agents.channels.list(agent.id);
console.log("Integrations:", integrations.map((i) => i.name));
console.log("Channels:", channels.map((c) => c.type));integrations = client.agents.integrations.list(agent.id)
channels = client.agents.channels.list(agent.id)
print("Integrations:", [i.name for i in integrations])
print("Channels:", [c.type for c in channels])Full example
import { BimpeAI } from "@bimpeai/sdk";
const bimpe = new BimpeAI({ apiKey: process.env.BIMPEAI_API_KEY! });
// 1. Find workflow
const page = await bimpe.workflows.list({ scope: "public", search: "seller support" });
const workflow = page.data[0];
// 2. Create agent
const agent = await bimpe.agents.create(
{
name: "Marketplace seller support agent",
system_prompt:
"You support marketplace sellers with onboarding, listing issues, disputes, and fee questions. " +
"Cite the relevant policy section. Escalate unresolvable disputes to the seller support team.",
agent_workflow_id: workflow.id,
},
{ idempotencyKey: "create-seller-support-agent-v1" },
);
// 3. Add knowledge bases
await bimpe.agents.knowledgeBases.create(agent.id, {
type: "text",
name: "Seller onboarding guide",
content:
"Step 1: Create account. Step 2: Verify identity. Step 3: Add bank account.\n" +
"Step 4: Create first listing (title, category, condition, price, 3+ photos).\n" +
"Step 5: Set shipping. Accounts reviewed within 24 hours.",
});
await bimpe.agents.knowledgeBases.create(agent.id, {
type: "text",
name: "Dispute policy",
content:
"Buyers have 30 days to dispute. Sellers have 5 days to respond.\n" +
"No response means the dispute is resolved for the buyer. Appeals within 14 days.",
});
await bimpe.agents.knowledgeBases.create(agent.id, {
type: "text",
name: "Listing rules",
content:
"Prohibited: weapons, counterfeit goods, prescription medicine.\n" +
"Photos: 3 minimum, neutral background, no watermarks.",
});
await bimpe.agents.knowledgeBases.create(agent.id, {
type: "text",
name: "Fee schedule",
content:
"Final value fee: 10%. Payment processing: 2.9% + £0.30. First 50 listings/month free.",
});
// 4. Verify channels and integrations (configured via dashboard)
const integrations = await bimpe.agents.integrations.list(agent.id);
const channels = await bimpe.agents.channels.list(agent.id);
console.log("Agent ID:", agent.id);
console.log("Integrations:", integrations.map((i) => i.name));
console.log("Channels:", channels.map((c) => c.type));
// 5. Stream web chat conversations
const controller = new AbortController();
const conversations = await bimpe.conversations.list(agent.id, { channel: "webchat" });
const conv = conversations.data[0];
if (conv) {
for await (const event of bimpe.conversations.messages.stream(agent.id, conv.id, {
signal: controller.signal,
})) {
console.log(event.role, event.message);
}
}import os
from bimpeai import BimpeAI
client = BimpeAI(api_key=os.environ["BIMPEAI_API_KEY"])
# 1. Find workflow
page = client.workflows.list(scope="public", search="seller support")
workflow = page.data[0]
# 2. Create agent
agent = client.agents.create(
name="Marketplace seller support agent",
system_prompt=(
"You support marketplace sellers with onboarding, listing issues, disputes, and fee questions. "
"Cite the relevant policy section. Escalate unresolvable disputes to the seller support team."
),
agent_workflow_id=workflow.id,
idempotency_key="create-seller-support-agent-v1",
)
# 3. Add knowledge bases
client.agents.knowledge_bases.create(agent.id, {
"type": "text",
"name": "Seller onboarding guide",
"content": (
"Step 1: Create account. Step 2: Verify identity. Step 3: Add bank account.\n"
"Step 4: Create first listing (title, category, condition, price, 3+ photos).\n"
"Step 5: Set shipping. Accounts reviewed within 24 hours."
),
})
client.agents.knowledge_bases.create(agent.id, {
"type": "text",
"name": "Dispute policy",
"content": (
"Buyers have 30 days to dispute. Sellers have 5 days to respond.\n"
"No response means the dispute is resolved for the buyer. Appeals within 14 days."
),
})
client.agents.knowledge_bases.create(agent.id, {
"type": "text",
"name": "Listing rules",
"content": (
"Prohibited: weapons, counterfeit goods, prescription medicine.\n"
"Photos: 3 minimum, neutral background, no watermarks."
),
})
client.agents.knowledge_bases.create(agent.id, {
"type": "text",
"name": "Fee schedule",
"content": "Final value fee: 10%. Payment processing: 2.9% + £0.30. First 50 listings/month free.",
})
# 4. Verify channels and integrations (configured via dashboard)
integrations = client.agents.integrations.list(agent.id)
channels = client.agents.channels.list(agent.id)
print("Agent ID:", agent.id)
print("Integrations:", [i.name for i in integrations])
print("Channels:", [c.type for c in channels])
# 5. Stream web chat conversations
conversations = client.conversations.list(agent.id, channel="webchat")
if conversations.data:
conv = conversations.data[0]
for msg in client.conversations.messages.stream(agent.id, conv.id):
print(msg.role, msg.message)Deploy
Store your API key in BIMPEAI_API_KEY. Paste the web chat embed snippet from the dashboard into your seller portal before going live. Update policy knowledge bases via knowledgeBases.update whenever listing rules or dispute timelines change — sellers should never get outdated policy information from the agent.
Variations
- Add a URL knowledge base entry pointing to your seller help centre so the agent can surface deep links to relevant articles.
- Use
conversations.messages.sendto follow up after a dispute escalation with a case reference number once your support team has triaged it. - Add a
rulesfield on the agent to hard-block the agent from approving any claim over a configurable amount without human review.
Lost or Stolen Card Support
Answer inbound calls from customers who have lost their card or had it stolen, capture the details, initiate a block, log the incident, and confirm a replacement is on the way.
Payment & Invoice Reminder Agent
Chase overdue invoices by sending a WhatsApp reminder first, then following up with an outbound voice call — with a Stripe payment link in both messages.