Skip to main content

API & Webhooks

ShopGuide's API and webhook capabilities enable powerful integrations with your existing business systems, allowing for real-time data exchange and automated workflows that enhance your customer experience.

API Overview

RESTful API Architecture

Core API Principles

  • REST compliance: Standard HTTP methods (GET, POST, PUT, DELETE)
  • JSON format: Structured data exchange using JSON
  • Stateless design: Each request contains all necessary information
  • Resource-based URLs: Intuitive endpoint structure
  • HTTP status codes: Standard response codes for different outcomes

Authentication and Security

  • API key authentication: Secure token-based access control
  • Rate limiting: Prevent abuse with request limits
  • HTTPS encryption: Secure data transmission
  • IP whitelisting: Restrict access to authorized sources
  • Audit logging: Complete record of API usage

Base URL Structure

https://api.shopguide.com/v1/

Common Headers

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: application/json

API Architecture

Available Endpoints

Conversation Management

GET /conversations
- Retrieve conversation list
- Filter by date, customer, status
- Pagination support
- Sorting options

GET /conversations/{id}
- Get specific conversation details
- Full message history
- Customer information
- Metadata and analytics

POST /conversations
- Create new conversation
- Programmatic chat initiation
- Custom context setting
- Integration triggers

PUT /conversations/{id}
- Update conversation status
- Add notes or tags
- Modify metadata
- Close or reopen conversations

Analytics and Reporting

GET /analytics/summary
- High-level performance metrics
- Date range filtering
- Metric selection
- Export formats

GET /analytics/conversations
- Detailed conversation analytics
- Segmentation options
- Trend analysis
- Custom metrics

GET /analytics/performance
- System performance data
- Response times
- Error rates
- Uptime statistics

Customer Data

GET /customers
- Customer list with chat history
- Segmentation data
- Engagement metrics
- Preference information

GET /customers/{id}/conversations
- All conversations for specific customer
- Chronological order
- Interaction summary
- Satisfaction scores

POST /customers/{id}/notes
- Add customer notes
- Tag customers
- Update preferences
- Record interactions

Webhook Integration

Webhook Fundamentals

Event-Driven Architecture

  • Real-time notifications: Immediate alerts when events occur
  • HTTP POST requests: Webhooks send data via POST to your endpoints
  • JSON payloads: Structured event data in JSON format
  • Retry mechanisms: Automatic retries for failed deliveries
  • Signature verification: Ensure webhook authenticity

Webhook Configuration

Webhook Setup:
1. Define endpoint URL
2. Select event types
3. Configure authentication
4. Set retry policies
5. Test webhook delivery

Security Considerations

  • HTTPS endpoints: Secure webhook delivery
  • Signature verification: Validate webhook authenticity
  • IP restrictions: Limit webhook sources
  • Payload validation: Verify data integrity
  • Error handling: Graceful failure management

Available Webhook Events

Conversation Events

conversation.started
{
"event": "conversation.started",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"conversation_id": "conv_123456",
"customer_id": "cust_789012",
"page_url": "https://store.com/products/example",
"device_type": "mobile",
"initial_message": "Hi, I need help with sizing"
}
}

conversation.completed
{
"event": "conversation.completed",
"timestamp": "2024-01-15T10:45:00Z",
"data": {
"conversation_id": "conv_123456",
"duration_seconds": 900,
"message_count": 12,
"satisfaction_score": 4.5,
"resolution_status": "resolved"
}
}

conversation.escalated
{
"event": "conversation.escalated",
"timestamp": "2024-01-15T10:40:00Z",
"data": {
"conversation_id": "conv_123456",
"escalation_reason": "complex_technical_issue",
"agent_required": true,
"priority": "high"
}
}

Customer Events

customer.satisfaction_feedback
{
"event": "customer.satisfaction_feedback",
"timestamp": "2024-01-15T10:50:00Z",
"data": {
"conversation_id": "conv_123456",
"customer_id": "cust_789012",
"rating": 5,
"feedback_text": "Very helpful and quick responses!",
"nps_score": 9
}
}

customer.high_value_interaction
{
"event": "customer.high_value_interaction",
"timestamp": "2024-01-15T11:00:00Z",
"data": {
"customer_id": "cust_789012",
"conversation_id": "conv_123456",
"cart_value": 299.99,
"purchase_intent": "high",
"recommended_action": "priority_follow_up"
}
}

System Events

system.performance_alert
{
"event": "system.performance_alert",
"timestamp": "2024-01-15T11:15:00Z",
"data": {
"alert_type": "high_response_time",
"metric_value": 3.2,
"threshold": 2.0,
"severity": "warning",
"affected_regions": ["us-east", "eu-west"]
}
}

Webhook Events

Integration Use Cases

CRM Integration

Customer Data Synchronization

Use Case: Sync chat interactions with Salesforce

Webhook: conversation.completed
Action: Create or update Salesforce contact
Data: Conversation summary, satisfaction score, lead quality

Implementation:
1. Receive webhook notification
2. Extract customer information
3. Check if contact exists in Salesforce
4. Create new contact or update existing
5. Add conversation notes and tags
6. Update lead scoring based on interaction

Lead Qualification

  • Automatic lead scoring: Score leads based on chat engagement
  • Sales team notifications: Alert sales reps about high-value prospects
  • Follow-up automation: Schedule follow-up tasks based on conversation outcomes
  • Pipeline management: Move leads through sales stages based on chat interactions

Marketing Automation

Email Campaign Triggers

Use Case: Trigger abandoned cart email sequence

Webhook: conversation.cart_abandonment
Action: Add customer to email automation sequence
Data: Cart contents, abandonment reason, customer preferences

Implementation:
1. Detect cart abandonment during chat
2. Send webhook to marketing platform
3. Trigger personalized email sequence
4. Include specific products from abandoned cart
5. Offer assistance or incentives
6. Track email engagement and conversions

Segmentation and Personalization

  • Behavioral segmentation: Group customers based on chat interactions
  • Content personalization: Customize marketing based on chat preferences
  • Retargeting campaigns: Create audiences based on chat behavior
  • A/B testing: Test different approaches based on chat insights

Customer Support Integration

Ticket Creation and Management

Use Case: Automatic support ticket creation

Webhook: conversation.escalated
Action: Create support ticket in Zendesk
Data: Conversation history, customer information, issue category

Implementation:
1. Receive escalation webhook
2. Extract conversation context
3. Create support ticket with full history
4. Assign to appropriate support team
5. Set priority based on customer tier
6. Notify customer of ticket creation

Knowledge Base Enhancement

  • FAQ identification: Identify common questions for knowledge base updates
  • Content gap analysis: Find areas where documentation is lacking
  • Search optimization: Improve search based on chat queries
  • Self-service improvement: Enhance help content based on chat insights

E-commerce Platform Integration

Order and Inventory Management

Use Case: Real-time inventory updates

API Call: GET /inventory/status
Webhook: inventory.low_stock
Action: Update chat recommendations
Data: Product availability, restock dates

Implementation:
1. Monitor inventory levels via API
2. Receive low stock webhooks
3. Update AI recommendations automatically
4. Suggest alternative products
5. Notify customers of restocking
6. Adjust marketing campaigns

Personalization Engine

  • Product recommendations: Use chat data for recommendation algorithms
  • Dynamic pricing: Adjust pricing based on chat engagement
  • Inventory optimization: Stock products based on chat demand
  • Customer journey mapping: Track complete customer experience

Integration Use Cases

Advanced API Features

Batch Operations

Bulk Data Processing

POST /conversations/batch
{
"operations": [
{
"action": "update",
"conversation_id": "conv_123",
"data": {"status": "resolved"}
},
{
"action": "tag",
"conversation_id": "conv_456",
"data": {"tags": ["vip", "urgent"]}
}
]
}

Bulk Export

  • Large dataset exports: Efficient handling of large data volumes
  • Compressed formats: Reduce bandwidth usage
  • Streaming responses: Handle large datasets without timeouts
  • Progress tracking: Monitor export progress

Real-Time Streaming

WebSocket Connections

WebSocket Endpoint: wss://api.shopguide.com/v1/stream

Connection: Upgrade
Upgrade: websocket
Authorization: Bearer YOUR_API_KEY

Real-time Events:
- Live conversation updates
- System status changes
- Performance metrics
- Customer activity

Server-Sent Events (SSE)

  • Live dashboards: Real-time data for monitoring dashboards
  • Notification systems: Immediate alerts for important events
  • Performance monitoring: Live system health updates
  • Customer activity tracking: Real-time customer behavior insights

Custom Integrations

Middleware Development

  • Custom endpoints: Build specific integrations for your needs
  • Data transformation: Convert between different data formats
  • Business logic: Implement custom rules and workflows
  • Error handling: Robust error management and recovery

SDK and Libraries

Available SDKs:
- JavaScript/Node.js
- Python
- PHP
- Ruby
- .NET/C#
- Java

Example (Node.js):
const ShopGuide = require('@shopguide/api');
const client = new ShopGuide('your-api-key');

const conversations = await client.conversations.list({
limit: 50,
status: 'active'
});

Implementation Best Practices

API Usage Guidelines

Rate Limiting

  • Respect limits: Stay within API rate limits
  • Exponential backoff: Handle rate limit responses gracefully
  • Caching strategies: Cache frequently accessed data
  • Batch requests: Combine multiple operations when possible

Error Handling

HTTP Status Codes:
200 - Success
201 - Created
400 - Bad Request
401 - Unauthorized
403 - Forbidden
404 - Not Found
429 - Rate Limited
500 - Server Error

Error Response Format:
{
"error": {
"code": "INVALID_REQUEST",
"message": "The request is missing required parameters",
"details": {
"missing_fields": ["customer_id"]
}
}
}

Webhook Best Practices

Endpoint Design

  • Idempotency: Handle duplicate webhook deliveries gracefully
  • Fast responses: Respond quickly to webhook requests
  • Asynchronous processing: Queue webhook processing for complex operations
  • Monitoring: Track webhook delivery success and failures

Security Implementation

Signature Verification (Node.js):
const crypto = require('crypto');

function verifyWebhook(payload, signature, secret) {
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');

return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
);
}

Performance Optimization

Caching Strategies

  • Response caching: Cache frequently requested data
  • CDN usage: Distribute API responses globally
  • Database optimization: Efficient data retrieval and storage
  • Connection pooling: Reuse database connections

Monitoring and Alerting

  • API performance: Track response times and error rates
  • Webhook delivery: Monitor webhook success rates
  • System health: Overall API system monitoring
  • Usage analytics: Track API usage patterns and trends

Troubleshooting

Common API Issues

Authentication Problems

  • Invalid API keys: Verify key format and permissions
  • Expired tokens: Check token expiration and renewal
  • Permission errors: Ensure adequate access rights
  • Rate limiting: Monitor and respect rate limits

Data Issues

  • Malformed requests: Validate request format and structure
  • Missing parameters: Check required fields
  • Data type errors: Ensure correct data types
  • Encoding problems: Verify character encoding

Webhook Troubleshooting

Delivery Failures

  • Endpoint availability: Ensure webhook endpoints are accessible
  • SSL certificate issues: Verify HTTPS configuration
  • Timeout problems: Optimize endpoint response times
  • Firewall restrictions: Check network access rules

Data Processing Issues

  • Payload validation: Verify webhook data structure
  • Duplicate handling: Implement idempotency checks
  • Error recovery: Handle processing failures gracefully
  • Retry logic: Implement appropriate retry mechanisms

Next Steps

Maximize your API and webhook integration:


APIs and webhooks are the foundation of powerful integrations. Start with simple use cases and gradually build more sophisticated workflows as you gain experience.