Features
- Customer Lookup: Find customers by email or phone number
- Order History: View all orders for a customer
- Order Details: Access order status, fulfillment, and payment information
- Admin Links: Direct links to orders in Shopify admin
- OAuth Authentication: Secure connection to Shopify stores
- Account-Level Integration: One integration serves all inboxes
Prerequisites
- Admin access to your Chatwoot account
- Shopify store with admin access
- Feature flag enabled:
shopify_integration - Shopify OAuth credentials configured:
SHOPIFY_CLIENT_IDSHOPIFY_CLIENT_SECRET
Setup Instructions
Step 1: Configure Environment Variables
Ensure your Chatwoot instance has Shopify credentials configured:Step 2: Enable Feature Flag
The Shopify integration requires the feature flag to be enabled for your account:Step 3: Initiate OAuth Flow
- Navigate to Settings > Integrations in Chatwoot
- Find Shopify in the integrations list
- Click Connect
- Enter your Shopify store domain (e.g.,
your-store.myshopify.com) - Click Authorize
Step 4: Authorize Chatwoot
- You’ll be redirected to Shopify’s authorization page
- Review the requested permissions
- Click Install app to authorize Chatwoot
- You’ll be redirected back to Chatwoot
Step 5: Verify Integration
- Open a conversation with a contact that has email or phone
- Look for the Shopify order information panel
- Verify that customer orders are displayed
OAuth Scopes and Permissions
The integration requests the following Shopify scopes:read_customers: Access customer informationread_orders: View order dataread_products: Access product information
- Search for customers by email or phone
- Retrieve order history
- Display order details
Using the Integration
Viewing Customer Orders
When viewing a conversation:- The integration automatically searches for the contact in Shopify
- Search is performed using:
- Contact email (if available)
- Contact phone number (if available)
- If a matching customer is found, their orders are displayed
Order Information Displayed
- Order ID: Unique Shopify order identifier
- Created Date: When the order was placed
- Total Price: Order total with currency
- Fulfillment Status: Shipping/delivery status
- Financial Status: Payment status
- Admin Link: Direct link to order in Shopify admin
API Integration
Authenticate Store
redirect_url to complete OAuth.
Get Customer Orders
Delete Integration
Implementation Details
The Shopify integration uses:- ShopifyAPI Gem: Ruby library for Shopify REST API
- API Version:
2025-01 - Hook Type: Account-level integration
- Storage: Integration hook with encrypted access token
Hook Configuration
Customer Search Logic
The integration searches for customers using:ShopifyAPI Context
The integration configures ShopifyAPI dynamically:Troubleshooting
Integration Not Available
Issue: Shopify integration doesn’t appear in the integrations list. Solution:- Verify
SHOPIFY_CLIENT_IDenvironment variable is set - Ensure the
shopify_integrationfeature flag is enabled - Check that you have admin permissions
No Orders Displayed
Issue: Orders panel shows empty or no results. Solution:- Verify the contact has an email or phone number
- Check that the email/phone matches the Shopify customer
- Ensure the Shopify customer has placed orders
- Verify the integration is properly authenticated
OAuth Redirect Error
Issue: Error during OAuth callback. Solution:- Verify redirect URI in Shopify app settings:
- Check that
FRONTEND_URLenvironment variable is correctly set - Ensure your Shopify app is not in development mode (if in production)
HTTP Response Error
Issue:ShopifyAPI::Errors::HttpResponseError when fetching orders.
Solution:
- Verify the access token is valid
- Check that the store domain is correct
- Ensure the app has required permissions
- Review Shopify API rate limits
- Check Shopify API status
Contact Information Missing
Issue: “Contact information missing” error. Solution:- Ensure the contact has either email or phone number
- Add missing contact information
- Sync contact data from your channel
Invalid Shop Domain
Issue: “Shop domain is required” error. Solution:- Provide a valid Shopify store domain
- Use format:
your-store.myshopify.com - Don’t include protocol (https://)
Security Considerations
- Encrypted Tokens: Shopify access tokens are encrypted at rest
- OAuth 2.0: Secure authorization flow
- Scoped Access: Minimum required permissions
- Admin Only: Only administrators can configure the integration
- Secure Session: ShopifyAPI sessions are created per-request
API Rate Limits
Shopify enforces API rate limits:- REST API: Based on calculated query costs
- Burst Limit: 40 requests per second
- Bucket Size: Varies by plan
- Reducing the frequency of order lookups
- Caching order data
- Upgrading your Shopify plan
Removing the Integration
To remove the Shopify integration:- Navigate to Settings > Integrations
- Find the Shopify integration
- Click Delete
- Confirm the removal
- Revoke the access token
- Remove all configuration
- Stop displaying order information
Data Privacy
The Shopify integration:- Only accesses data when viewing conversations
- Does not store order data in Chatwoot
- Fetches data in real-time from Shopify
- Requires explicit customer matching (email/phone)
Limitations
- Single Store: One Shopify store per Chatwoot account
- Read-Only: Cannot create or modify orders from Chatwoot
- Contact Matching: Requires email or phone to match customers
- Real-Time Only: No historical data storage
Next Steps
- Train your team on using order information in conversations
- Configure contact fields to capture email and phone
- Set up automation rules based on order status
- Explore additional e-commerce integrations
- Monitor integration usage and performance

