Integrations
Configure outbound webhooks to notify external systems of events in Sporeline
adminIntegrations
The Integrations page lets you configure outbound webhooks that send real-time event notifications to your own systems whenever something happens in Sporeline. It lives at Settings > Integrations.
Role requirements
Managers and Owners (and SuperAdmin) can manage integrations. Workers and Viewers see an access-denied message.
Shopify
The Shopify card on the Integrations page imports your Shopify orders as deliveries, with their customers, every 15 minutes. Click Manage to connect a store.
- Shopify Setup: create the Shopify app, grant access, connect, and map your variants
- Shopify Troubleshooting: fix a failed Test connection, or find an order that didn’t arrive
Webhook overview
A webhook is an HTTPS endpoint on your server that Sporeline calls with a JSON payload whenever a subscribed event occurs. You can register multiple webhooks and subscribe each one to a different set of events.
Adding a webhook
Click Add Webhook to open the creation form.
Endpoint URL
Enter the full URL of your server endpoint. The URL must be publicly reachable. HTTPS is strongly recommended for production; HTTP is accepted for local testing only.
Description (optional)
Add a short label to help you identify the webhook in the list, for example “Notify our ERP on harvests.”
Events to subscribe to
Select one or more event types from the list. You can use Select all to subscribe to every event, or Clear to start fresh. At least one event must be selected before the webhook can be created.
Available event types:
| Event | When it fires |
|---|---|
mycoops.block.status_changed | A block transitions to a new stage |
mycoops.harvest.completed | A harvest is recorded on a block |
mycoops.reservation.created | A buyer creates a new reservation |
mycoops.reservation.confirmed | A reservation is confirmed |
mycoops.reservation.cancelled | A reservation is cancelled |
mycoops.reservation.expired | A reservation expires without confirmation |
mycoops.delivery.status_changed | A delivery status changes |
mycoops.forecast.published | A yield forecast is published |
Signing secret
When a webhook is created, a signing secret is shown exactly once. Copy and store it immediately — it will not be displayed again.
Use the secret to verify that incoming requests are genuinely from Sporeline. Check the X-MycoOps-Signature request header using HMAC-SHA256 with your secret as the key and the raw request body as the message.
After creation, the configuration panel shows only the last 4 characters of the secret for reference.
Managing a webhook
Click any row in the webhook list to open its detail panel.
Configuration panel
Displays the endpoint URL, current status, signing secret (last 4 characters), creation date, last-updated date, and the full list of subscribed events.
Activate / Deactivate
Use the Deactivate or Activate button to pause and resume delivery without deleting the webhook. Inactive webhooks receive no payloads.
Send Test
Click Send Test (only enabled when the webhook is active) to dispatch a test payload to your endpoint. A confirmation message appears if the delivery succeeds.
Delete
Click Delete and confirm the prompt to permanently remove the webhook. Delivery stops immediately and the action cannot be undone.
Delivery log
The detail panel shows the last 50 delivery attempts for the webhook, most recent first.
| Column | Description |
|---|---|
| Status icon | Green check = success, red X = failure |
| Event | The event type that triggered this delivery |
| HTTP status | The response code returned by your endpoint, or “Timeout” if no response was received |
| Duration | Round-trip time in milliseconds |
| Attempt | Retry attempt number |
| Time | Timestamp of the delivery |
Retry behavior
Sporeline retries failed deliveries automatically. Each retry appears as a separate row in the delivery log with an incremented attempt number.
Tips
- Your endpoint must respond with a
2xxstatus code within the timeout window to be considered successful. - Process webhook payloads asynchronously — return
200 OKimmediately and handle the payload in a background job to avoid timeouts. - If you need to re-process historical events, use the reports and audit APIs — webhooks are forward-only.