WooCommerce + Brevo Integration

WooCommerce + Brevo

Connect WooCommerce store data to Brevo’s engagement platform through MCP. Sync customers, automate order-driven campaigns, recover abandoned carts, and segment buyers, all orchestrated by AI agents in Claude.

MCP Servers Used

ServerPackage/URLAuthPurpose
WooCommerce MCPwoocommerce-mcp-serverConsumer Key/SecretCustomers, orders, products, coupons, reports
Brevo MCPmcp.brevo.com/v1/brevo/mcpTokenContacts, email campaigns, SMS, WhatsApp, event tracking

Tip

WooCommerce uses WordPress REST API with consumer key authentication. The MCP server wraps these endpoints so Claude can read your store data alongside Brevo. Make sure your WooCommerce REST API is enabled under WooCommerce > Settings > Advanced > REST API.

Setup

Step 1: Create WooCommerce API Keys

  1. In WordPress Admin, go to WooCommerce > Settings > Advanced > REST API
  2. Click Add Key, set permissions to Read, and generate
  3. Note your Consumer Key and Consumer Secret

Step 2: Connect Both MCP Servers

{
"mcpServers": {
"brevo": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.brevo.com/v1/brevo/mcp",
"--header",
"Authorization: Bearer ${BREVO_MCP_TOKEN}"
],
"env": {
"BREVO_MCP_TOKEN": "your-brevo-mcp-token"
}
},
"woocommerce": {
"command": "npx",
"args": ["-y", "woocommerce-mcp-server"],
"env": {
"WOO_STORE_URL": "https://your-store.com",
"WOO_CONSUMER_KEY": "ck_your_consumer_key",
"WOO_CONSUMER_SECRET": "cs_your_consumer_secret"
}
}
}
}

Step 3: Verify Connection

Ask Claude:

> What are the 5 most recent WooCommerce orders?
> List my Brevo contact lists

Claude should use WooCommerce MCP for the first and Brevo MCP for the second.

Use Case 1: Customer Sync Agent

Sync WooCommerce customers to Brevo with full purchase data:

---
name: woocommerce-customer-sync
description: Sync WooCommerce customers to Brevo contacts with order history
version: 1.0.0
temperature: 0.1
tools:
- woocommerce
- brevo_contacts
- brevo_attributes
- brevo_lists
triggers:
- schedule: "0 */6 * * *"
- event: customer_created
- event: order_completed
---
# WooCommerce Customer Sync Agent
Synchronize customer data from WooCommerce to Brevo contacts.
## Strategy
1. Query WooCommerce for customers modified since last sync
2. For each customer, fetch order history via WooCommerce orders endpoint
3. Create or update Brevo contact with profile + computed commerce attributes
4. Segment into Brevo lists:
- New customers → "Welcome Series" list
- Repeat buyers (2+ orders) → "Loyal Customers" list
- High-value (>$500 total) → "VIP" list
- Lapsed (no order in 90+ days) → "Win-Back" list
## Field Mapping
| WooCommerce Field | Brevo Attribute |
|------------------|-----------------|
| email | EMAIL |
| first_name | FIRSTNAME |
| last_name | LASTNAME |
| billing.phone | SMS |
| billing.company | COMPANY |
| billing.country | COUNTRY |
| billing.city | CITY |
| date_created | SIGNUP_DATE |
| orders_count (computed) | ORDER_COUNT |
| total_spent (computed) | TOTAL_SPENT |
| last_order_date (computed) | LAST_ORDER |
| role | WOO_ROLE |
## Rules
- ONLY sync customers, not guest checkouts (unless email matches existing contact)
- NEVER overwrite Brevo data if WooCommerce field is empty
- ALWAYS validate phone to E.164 format before sync
- Handle WordPress roles: "customer" and "subscriber" only (skip "administrator", "shop_manager")
- Track events: woo_sync_success, woo_sync_error

Use Case 2: Order Campaign Agent

Trigger personalized campaigns from WooCommerce order lifecycle events:

---
name: woocommerce-order-campaigns
description: Orchestrate Brevo campaigns based on WooCommerce order events
version: 1.0.0
temperature: 0.3
tools:
- woocommerce
- brevo_contacts
- brevo_email_campaign_management
- brevo_templates
- brevo_sms_campaigns
triggers:
- event: order_processing
- event: order_completed
- event: order_refunded
---
# WooCommerce Order Campaign Agent
When WooCommerce order status changes, trigger targeted engagement sequences in Brevo.
## Sequence Logic
### Order Processing (New Order)
1. Immediate: Order confirmation email (transactional)
2. +2 hours: SMS with order summary and estimated shipping
3. Track event: woo_order_placed with order value
### Order Completed (Shipped/Delivered)
#### First-Time Buyers
1. Day 3: Welcome email with brand story
2. Day 7: Product care guide for purchased category
3. Day 14: Review request
4. Day 30: Cross-sell based on product category
#### Repeat Buyers
1. Day 3: Loyalty points or reward notification
2. Day 14: Replenishment reminder (if consumable)
3. Day 21: Early access to new products
#### High-Value Orders (>$150)
1. Day 1: Personal thank-you email
2. Day 3: SMS with care tips
3. Day 7: VIP offer or loyalty program invitation
### Order Refunded
1. Immediate: Refund confirmation email
2. Day 3: Feedback survey
3. Day 7: Win-back offer with 15% discount
## Rules
- ALWAYS check current WooCommerce order status before sending
- NEVER send marketing to orders with status "cancelled" or "failed"
- Personalize with: product name, order number, customer first name
- Check WooCommerce order notes for special instructions
- Use Brevo template variables for dynamic content

Use Case 3: Abandoned Cart Recovery

Recover WooCommerce abandoned carts via Brevo multi-channel messaging:

---
name: woocommerce-cart-recovery
description: Recover WooCommerce abandoned carts via Brevo email, SMS, and WhatsApp
version: 1.0.0
temperature: 0.2
tools:
- woocommerce
- brevo_contacts
- brevo_email_campaign_management
- brevo_templates
- brevo_sms_campaigns
triggers:
- event: cart_abandoned
conditions:
- cart_value: "> 25"
- time_since_activity: "> 1h"
---
# WooCommerce Cart Recovery Agent
Monitor WooCommerce abandoned carts and execute multi-channel recovery through Brevo.
## Recovery Sequence
1. **+1 hour**: Reminder email with cart contents and product images
2. **+24 hours**: If no email open → SMS with short cart recovery link
3. **+48 hours**: If no recovery → Email with coupon code (auto-generated via WooCommerce coupons API)
4. **+72 hours**: If cart > $100 and no recovery → WhatsApp with personal outreach
## Cart Data to Include
- Product names and images (from WooCommerce)
- Cart total with currency
- Direct cart recovery URL
- WooCommerce coupon code (created dynamically via API for step 3)
## Coupon Generation
For step 3, create a WooCommerce coupon via the API:
- Type: percent_discount (10%)
- Usage limit: 1
- Expiry: 7 days
- Individual use: true
- Include coupon code in the Brevo email template
## Rules
- NEVER send to customers who completed checkout since cart was abandoned
- ALWAYS verify cart still exists before each step
- Maximum 4 touchpoints per abandoned cart
- Respect opt-out preferences per channel
- WooCommerce guest carts: only recover if email was captured at checkout start

Use Case 4: Product Review Follow-Up

Leverage WooCommerce product data for targeted review campaigns:

---
name: woocommerce-review-agent
description: Request product reviews via Brevo based on WooCommerce delivery timeline
version: 1.0.0
temperature: 0.2
tools:
- woocommerce
- brevo_contacts
- brevo_email_campaign_management
- brevo_templates
triggers:
- schedule: "0 9 * * *"
---
# Product Review Agent
Identify WooCommerce orders delivered 14+ days ago without a review, and send a personalized review request via Brevo.
## Strategy
1. Query WooCommerce for orders completed 14-21 days ago
2. Check if customer has left a product review (via WooCommerce reviews API)
3. If no review, send personalized email with:
- Product name and image
- Direct review link
- Small incentive (e.g., 5% off next order)
4. Track event: review_request_sent
## Rules
- Maximum one review request per order
- NEVER request reviews for refunded/cancelled orders
- Only send during business hours (9 AM customer timezone)
- Skip if customer has unsubscribed from marketing

Example: Natural Language Orchestration

With both MCP servers connected:

You: "Find WooCommerce customers who spent over $200 total but
haven't ordered in 60+ days. Add them to my Brevo win-back
list and send a re-engagement email with a 15% discount."
Claude: Querying WooCommerce for high-value lapsed customers...
[Uses woocommerce MCP to fetch customers and order history]
[Filters: total_spent > $200 AND last_order > 60 days ago]
Found 41 lapsed high-value customers.
Checking Brevo for existing contacts...
[Uses brevo_contacts to match emails]
Processing 41 customers...
[Updates contacts with TOTAL_SPENT and LAST_ORDER attributes]
[Adds 41 to "Win-Back" list]
[Creates WooCommerce coupon: WINBACK15 (15% off, single use)]
[Triggers win-back email template with coupon code]
Done:
- 41 customers added to "Win-Back" list in Brevo
- Win-back emails sent with personalized 15% discount code
- Coupon WINBACK15 created in WooCommerce (single use, 14-day expiry)
- Brevo event tracked: winback_campaign_sent

Next Steps

AI Assistant

Hi! Ask me anything about the docs.

Start Free with Brevo