How Pulses Work
Setting Up Pulses
You can configure Pulses in several ways:Via Store Dashboard
- Go to Automation → Pulses
- Click Add Pulse
- Enter your webhook endpoint URL (must be HTTPS)
- Select the events you want to receive
- Optionally select specific products (leave empty for all products)
- Save your Pulse
Your Pulse endpoint must be accessible via HTTPS. HTTP endpoints are not supported for security reasons.
Pulse Events
Pulses support the following events. When an event fires, the webhook payload contains anevent field with the event value.
Sale Events
| Event Value | Label | Description |
|---|---|---|
successful.sale | Successful Sale | Triggers when a sale is completed |
abandoned.sale | Abandoned Sale | Triggers when a sale is abandoned |
failed.sale | Failed Sale | Triggers when a sale fails |
License Events
| Event Value | Label | Description |
|---|---|---|
license.activated | License Activated | Triggers when a license is activated |
license.expired | License Expired | Triggers when a license expires |
license.issued | License Issued | Triggers when a license is issued to a customer |
license.revoked | License Revoked | Triggers when a license is revoked |
Affiliate Events
| Event Value | Label | Description |
|---|---|---|
affiliate.joined | Affiliate Joined | Triggers when a new affiliate joins your store |
Pulse Payload
When a configured event occurs, Chariow sends an HTTP POST request to your webhook URL with event data in the request body. The exact payload structure depends on the event type.Pulse payloads contain comprehensive event data, including details about the entity (sale, license, etc.), customer information, product details, and store context. The payload structure varies by event type to provide relevant information for each event.
Successful Sale Example
When a successful sale occurs, Chariow sends a webhook with thesuccessful.sale event:
License Activated Example
When a license is activated, Chariow sends a webhook with thelicense.activated event:
Affiliate Joined Example
When a new affiliate joins your store, Chariow sends a webhook with theaffiliate.joined event:
Handling Pulses
Basic Example (Node.js/Express)
PHP Example
Retry Policy
If your endpoint doesn’t respond with a 2xx status code, Chariow will retry the Pulse:| Attempt | Delay |
|---|---|
| 1st retry | 1 minute |
| 2nd retry | 5 minutes |
| 3rd retry | 30 minutes |
| 4th retry | 2 hours |
| 5th retry | 24 hours |
Best Practices
Respond Quickly
Respond Quickly
Return a 200 response immediately, then process the Pulse asynchronously to avoid timeouts:
Handle Duplicates
Handle Duplicates
Due to retry logic, Pulses may be sent multiple times. Implement idempotency by tracking processed events:
Use HTTPS
Use HTTPS
Always use HTTPS for your Pulse endpoint to ensure data is encrypted in transit. Chariow will reject HTTP endpoints for security reasons.
Monitor Failures
Monitor Failures
Monitor your Pulse endpoint for failures and errors. Check your store dashboard regularly for failed Pulse deliveries and investigate the root cause.
Filter by Products
Filter by Products
For high-volume stores, consider creating separate Pulses for different products to make processing more efficient and organised.
Testing Pulses
Use the Pulse testing feature in your dashboard:- Go to Automation → Pulses
- Click on your Pulse
- Click Send Test Event
- Select an event type
- Check your endpoint received the test payload
For local development, use a service like ngrok to expose your local server to the internet.
Managing Pulses via API
You can programmatically manage your Pulses using the Chariow Public API:List All Pulses
Example List Response
Get a Specific Pulse
Filter Pulses
You can filter pulses by URL or event type using the search parameter:For complete API documentation, see the List Pulses and Get Pulse endpoints.