π° $24 β Buy Now | Learn More | All NL Plugins
One-time purchase Β· Source code included Β· 14-day money-back guarantee Β· Terms
A Chatwoot Dashboard App that displays Shopify customer info and order history in the conversation sidebar.
- π Customer Lookup - Automatically find Shopify customers by email
- π° Lifetime Stats - View order count and total spend
- π¦ Recent Orders - Last 5 orders with status and tracking
- π Quick Links - Direct links to Shopify admin
- Go to your Shopify Admin β Settings β Apps and sales channels
- Click Develop apps β Create an app
- Name it "Chatwoot Integration" or similar
- Click Configure Admin API scopes and enable:
read_customersread_orders
- Click Install app
- Copy the Admin API access token (starts with
shpat_)
# Build the image
docker build -t chatwoot-shopify-lookup .
# Run with environment variables
docker run -d \
--name shopify-lookup \
-p 3000:3000 \
-e SHOPIFY_STORE=your-store.myshopify.com \
-e SHOPIFY_ACCESS_TOKEN=shpat_xxxxx \
chatwoot-shopify-lookup# Install dependencies
npm install
# Configure environment
cp .env.example .env
# Edit .env with your Shopify credentials
# Start the server
npm start# docker-compose.yml
version: '3.8'
services:
shopify-lookup:
build: .
ports:
- "3000:3000"
environment:
- SHOPIFY_STORE=${SHOPIFY_STORE}
- SHOPIFY_ACCESS_TOKEN=${SHOPIFY_ACCESS_TOKEN}
restart: unless-stopped-
Go to your Chatwoot installation β Settings β Integrations β Dashboard Apps
-
Click Add a new dashboard app
-
Fill in:
- Name: Shopify Orders
- Endpoint URL:
https://your-domain.com/?email={{contact.email}}
Replace
your-domain.comwith your actual domain where the app is hosted -
Select Conversation as the display location
-
Save the integration
- Open any conversation in Chatwoot
- The Shopify dashboard should appear in the sidebar
- If the contact has an email matching a Shopify customer, their data will display
| Variable | Required | Description |
|---|---|---|
SHOPIFY_STORE |
Yes | Your store domain (e.g., mystore.myshopify.com) |
SHOPIFY_ACCESS_TOKEN |
Yes | Admin API access token from your custom app |
SHOPIFY_API_VERSION |
No | API version (default: 2024-01) |
PORT |
No | Server port (default: 3000) |
Look up a customer by email.
curl "http://localhost:3000/api/customer?email=customer@example.com"Response:
{
"found": true,
"id": "123456789",
"firstName": "John",
"lastName": "Doe",
"email": "customer@example.com",
"ordersCount": 5,
"totalSpent": "523.99",
"adminUrl": "https://store.myshopify.com/admin/customers/123456789",
"orders": [
{
"id": "987654321",
"name": "#1234",
"createdAt": "2024-01-15T10:30:00Z",
"financialStatus": "PAID",
"fulfillmentStatus": "FULFILLED",
"total": { "amount": "99.99", "currencyCode": "USD" },
"adminUrl": "https://store.myshopify.com/admin/orders/987654321",
"tracking": [
{ "number": "1Z999AA...", "url": "https://..." }
]
}
]
}Search orders by query.
curl "http://localhost:3000/api/orders/search?query=1234"Health check endpoint.
curl "http://localhost:3000/api/health"- Connect your Git repository
- Set environment variables in the dashboard
- Deploy
server {
listen 443 ssl;
server_name shopify-lookup.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}β οΈ The Shopify access token has read access to customer data - keep it secure- π Always use HTTPS in production
- π Consider adding authentication if exposing outside your network
- Verify the email exists in Shopify Customers
- Check that the API token has
read_customersscope
- Verify
SHOPIFY_STOREis correct (include.myshopify.com) - Check that the access token is valid and not expired
- Ensure the URL is accessible from where Chatwoot is hosted
- Check browser console for CORS or mixed content errors
- Verify HTTPS if Chatwoot is on HTTPS
MIT