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.
Customer journey
A marketplace seller opens Web Chat embedded in the seller portal with a question about listing policy or a dispute. The agent answers from policy knowledge bases, creates tickets through your helpdesk integration, and escalates high-value disputes to humans.
See Deploying and testing channels for connect and test steps per channel.
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 → Agent 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 or create 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)Or build a new workflow from scratch with workflows.create instead of finding one. name and system_prompt are required; it returns the new Workflow whose id you bind the agent to. See Anatomy of a workflow agent for the full set of optional fields like rules and flows.
const workflow = await bimpe.workflows.create({
name: "Marketplace seller support agent",
system_prompt: "You help marketplace sellers with onboarding, listing issues, dispute resolution, and policy questions over web chat.",
});
console.log(workflow.id);workflow = client.workflows.create(
name="Marketplace seller support agent",
system_prompt="You help marketplace sellers with onboarding, listing issues, dispute resolution, and policy questions over web chat.",
)
print(workflow.id)2. Create the agent
const agent = await bimpe.agents.create(
{
name: "Marketplace seller support agent",
description: "Helps marketplace sellers with onboarding, listing issues, dispute resolution, and policy questions over web chat.",
workflow_id: workflow.id,
},
{ idempotencyKey: "create-seller-support-agent-v1" },
);
console.log(agent.id);agent = client.agents.create(
name="Marketplace seller support agent",
description="Helps marketplace sellers with onboarding, listing issues, dispute resolution, and policy questions over web chat.",
workflow_id=workflow.id,
idempotency_key="create-seller-support-agent-v1",
)
print(agent.id)3. Add knowledge bases (optional)
Knowledge bases are optional; an agent whose workflow and integrations already cover everything it needs to say can skip this step. This recipe uses one to ground the agent in the details it must quote accurately.
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, but integrations can now be configured through it; see Configuring integrations. Connect your web chat widget on the Deploy screen and your CRM on the Integrations screen of the Console dashboard. Escalation email is set under Settings → Agent. The SDK lists what is active but cannot modify channel connections.
- In the Console dashboard, pick your agent from the switcher at the top, then open Deploy.
- Under Messaging & Chat, click Connect on the Web Chat Widget card to add the widget to your seller dashboard.
- Under Settings → Agent, set the Escalation Email for disputes that cannot be resolved automatically.
- Optionally, open Integrations, find your CRM, and click Connect so the agent can log every seller conversation as a case.
Connect Web Chat
Visitors use the chat widget embedded on your website or app.
- Open Deploy and select your agent.
- Under Messaging & Chat, click Connect on the Web Chat Widget card.
- Copy the embed snippet and paste it into your site's HTML before the closing body tag.
- Publish your site — the chat bubble appears in the corner and routes messages to this agent.
Full reference: Deploying and testing channels.
5. Test your agent
Before going live, exercise the agent on the web chat test channel. Fetch the test code (created on first request), then inject a customer message from your server — or test the agent live in the Playground on the dashboard.
Test Web Chat
Playground: open Playground → Chat in the dashboard for a quick sanity check.
SDK injection: call conversations.send with channel_type: "webchat" and a stable channel_user_id, or set is_test_channel: true before go-live.
Full reference: Deploying and testing channels.
await bimpe.agents.getTestCode(agent.id); // creates the test code on first request
await bimpe.conversations.send(agent.id, {
message: "A buyer opened a dispute on my order — how long do I have to respond?",
channel_type: "webchat",
channel_user_id: "<tester-id>",
is_test_channel: true,
});client.agents.get_test_code(agent.id) # creates the test code on first request
client.conversations.send(
agent.id,
message="A buyer opened a dispute on my order — how long do I have to respond?",
channel_type="webchat",
channel_user_id="<tester-id>",
is_test_channel=True,
)See Test your agent for the other test channels and the pause-AI rule.
6. 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",
description: "Helps marketplace sellers with onboarding, listing issues, dispute resolution, and policy questions over web chat.",
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",
description="Helps marketplace sellers with onboarding, listing issues, dispute resolution, and policy questions over web chat.",
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 and go live
Go-live checklist
- Store your API key in
BIMPEAI_API_KEY(server-side only). - Confirm Marketplace policy API appears in
integrations.listor is connected in the dashboard. - Confirm Ticketing system appears in
integrations.listor is connected in the dashboard. - Verify Web Chat is connected on the Deploy screen (
agents.channels.listshows it enabled). - Set Escalation Email under Settings → Agent if humans must take over.
- Switch the agent to
livewithupdateLiveStatus/update_live_status. - Monitor the Conversations screen (or stream via SDK) after launch.
After go-live
Connect the web chat widget on Deploy and embed it in the seller portal before go-live. Update policy KBs when listing rules change.
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.send(create-or-send by channel) to follow up after a dispute escalation with a case reference number once your support team has triaged it. - Configure rules on the workflow (
CreateWorkflowBody.rules/RuleInput) 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.