Skip to content

Webhooks: Connect Zea Platform to Your Business Tools

What Are Webhooks?

Think of webhooks as automatic notifications from Zea Platform to your other business systems. When something important happens in your workspace (like a customer placing an order), Zea can instantly send that information to wherever you need it.
In simple terms: Webhooks let Zea “talk” to your other software automatically, without anyone having to manually copy and paste information.

Why Should I Use Webhooks?

Webhooks help you automate your work and connect Zea to the tools you already use. Here are some real-world examples:

Connect to Your Business Systems

Sync orders to your ERP (like SAP, Oracle, or Microsoft Dynamics) automatically
Update your CRM (like Salesforce or HubSpot) when customers place orders
Keep your inventory system up-to-date without manual entry
Automatically create work orders in your production system

Track Everything

Log all orders in a spreadsheet (Google Sheets, Excel)
Build reports and dashboards
Track which products are selling best
Monitor customer ordering patterns

Automate Your Workflow

Start approval processes for large orders
Trigger shipping label creation
Update accounting systems
Send follow-up emails to customers

Get Instant Notifications

Slack/Teams alerts when new orders come in
Email notifications to your fulfillment team
Text messages for urgent orders
Dashboard updates in real-time

How Do Webhooks Work?

Here’s what happens behind the scenes when you set up a webhook:
Something happens in Zea (like a customer placing an order)
Zea prepares the information (order details, customer info, shipping address)
Zea sends it to your system via a secure internet connection
Your system receives and processes it (saves to database, sends notifications, etc.)
If something goes wrong, Zea automatically tries again (up to 3 times)
Simple example: When a customer orders Part #12345, Zea immediately sends that information to your chosen destination (like a Slack channel, your ERP system, or a spreadsheet).

Setting Up Your First Webhook

Step 1: Get to the Webhooks Settings

Go to your Workspace Settings
Click on the Webhooks section in the left sidebar (see image below)
Click the blue Create Webhook button
Screenshot 2025-11-17 at 16.04.08.png
In this view, you can see:
How many webhooks you’ve configured (e.g., “1/10 webhooks configured”)
Your existing webhooks with their status (green “Enabled” badge)
The webhook URL and configuration (Timeout, Retries)
Disable, Edit, and Delete buttons for each webhook

Step 2: Fill Out the Form

When you click “Create Webhook”, you’ll see a form like this:
Screenshot 2025-11-17 at 15.18.57.png

Here’s what each field means:
Event * (Required)
What it is: The action that triggers the webhook ​Currently available: “order.placed” (when a customer places an order) ​Coming soon: File uploaded, part created, and more
In the form: Select from the dropdown - currently shows “Select an event”
URL * (Required)
What it is: Where Zea should send the information ​What to enter: A secure web address (must start with https://)
Examples:
https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK (for Slack)
https://your-company.com/api/webhooks/zea-orders (for your own system)
https://webhook.site/unique-id (for testing - the form suggests this!)
Important: Must be a public, secure address. Can’t use localhost or internal servers.
Tip in the form: “The endpoint that will receive the webhook payload. For testing, try webhook.site”
Secret (Optional but Recommended)
What it is: A password that proves the message really came from Zea ​Why use it: Prevents fake orders or spam ​What to enter: A random string of letters and numbers (like Xy9mK2pLqW8nR4vT)
Tip: You can generate a strong secret using a password generator
Form label: “Optional signing secret” ​Help text: “Optional secret for signing webhook payloads”
Custom Headers (JSON) (Optional)
What it is: Extra authentication information some systems require ​When to use it: If your receiving system needs an API key or token ​Format: JSON (a simple text format)
Example shown in the form:
{"Authorization": "Bearer token"}
Another common example:
{"X-API-Key": "your-api-key-here"}
Ask your developer: They’ll know if you need this and what to put
Form help text: “Optional custom headers as a JSON object”
Timeout (ms) (Default: 30000)
What it is: How long Zea waits for your system to respond ​Default shown: 30000 (which is 30 seconds) ​Increase it if: Your system is slow or does a lot of processing
Most people: Can leave this as the default
Retry Count (Default: 3)
What it is: How many times Zea tries again if delivery fails ​Default shown: 3 ​How it works: If your system is down, Zea will retry 3 times automatically
Most people: Can leave this as the default
Retry Backoff (ms) (Default: 1600)
What it is: How long to wait between retry attempts ​Default shown: 1600 (which is 1.6 seconds) ​How it works: Zea waits longer between each retry (1s, then 2s, then 4s)
Most people: Can leave this as the default
Enable webhook immediately ✓
What it is: A checkbox to turn the webhook on right away ​Checked (default): Webhook starts working immediately ​Unchecked: Webhook is saved but not active (you can enable it later)
Form shows: Blue checkmark box at the bottom

Step 3: Save and Test

Click the blue “Create Webhook” button at the bottom right of the form
Your webhook is now saved and (if you checked the box) immediately active

Step 4: Test It

Before going live with real integrations, test your webhook:
Use webhook.site for testing (recommended by the form!)
Visit (it’s free!)
Copy the unique URL they give you (looks like https://webhook.site/unique-id)
Paste that URL into the URL field in Zea’s webhook form
Save the webhook
Place a test order in Zea
Go back to webhook.site to see the data Zea sent
Once it’s working with webhook.site, edit the webhook and replace the URL with your real destination (Slack, Zapier, your API, etc.)

Managing Your Webhooks

Back in the Webhooks section (see first screenshot), you can:
See all webhooks with their status indicators
Disable a webhook temporarily (button on the right)
Edit a webhook to change its configuration
Delete a webhook (trash icon) if you don’t need it anymore
Important: You can create up to 10 webhooks per workspace. The interface shows “X/10 webhooks configured” at the top.

Security & Safety

Why Webhooks Are Secure

Zea takes several steps to keep your data safe:
Always Uses HTTPS: All data is encrypted when sent (like secure banking websites)
Blocks Dangerous Destinations: Can’t send to internal company networks or your local computer
Optional Secret Key: Like a password that proves the data came from Zea
Automatic Retries: If delivery fails, Zea tries again automatically

Understanding the Secret Key

When you add a secret to your webhook, Zea uses it to create a special signature (like a wax seal on an envelope). Your receiving system can check this signature to make sure:
The data really came from Zea (not a fake/spam message)
The data wasn’t changed during transmission
Do I need a secret?
For testing: No, not required
For production use: Yes, highly recommended
Ask your developer if you’re connecting to your company’s systems

Who Can Create Webhooks?

Only workspace administrators can create, edit, or delete webhooks. Regular users can view them but not make changes.

What Information Gets Sent?

When an Order is Placed

Currently, webhooks trigger when a customer places an order. Here’s what information Zea sends:
The data includes:
{
"event": "order.placed",
"timestamp": "2025-11-10T15:30:45.123Z",
"workspaceId": "workspace-uuid",
"data": {
"quoteId": "quote-uuid",
"customerEmail": "customer@example.com",
"items": [
{
"servicePartId": "part-uuid",
"partNumber": "ABC-123",
"quantity": 5,
"notes": "Urgent delivery requested",
"machineId": "machine-uuid"
},
{
"servicePartId": "part-uuid-2",
"partNumber": "XYZ-456",
"quantity": 2,
"notes": null,
"machineId": "machine-uuid"
}
],
"mailingAddress": {
"name": "John Doe",
"company": "Acme Corp",
"street1": "123 Main St",
"street2": "Suite 400",
"city": "San Francisco",
"state": "CA",
"postalCode": "94105",
"country": "USA"
},
"cartNotes": "Please expedite shipping"
}
}
What each field means (in plain English):
event: Always says “order.placed” (tells you what happened)
timestamp: When the order was placed (date and time)
workspaceId: Which workspace this came from
quoteId: A unique order number for tracking
customerEmail: Who placed the order
items: List of what was ordered
partNumber: The part’s catalog number (like “ABC-123”)
quantity: How many they ordered
notes: Any special instructions for that part
mailingAddress: Where to ship the order
cartNotes: General notes for the whole order

More Events Coming Soon

We’re adding more webhook triggers:
When a new CAD file is uploaded
When a part is created or updated
When someone joins your workspace
When an illustration is published
Want a specific event? Let us know!

What Happens If Something Goes Wrong?

Automatic Retries

If your system is temporarily down or busy, Zea automatically retries:
First try: Sends immediately
If it fails, wait ~1 second and try again
Still failing? Wait ~2 seconds and try again
Last try: Wait ~4 seconds and try again
After 3 retries: Marks as failed (you can see this in the webhook status)
This gives your system time to recover from temporary issues.

Checking Webhook Status

In the Zea webhooks settings (refer to the workspace settings screenshot), you can see for each webhook:
Event name: Shows “order.placed” with a green “Enabled” badge (or gray if disabled)
URL: The destination where webhooks are sent (e.g., https://webhook.site/7d7bfc73-8be6-4f1c-88af-f6b73bcc9d36)
Configuration: “Timeout: 30000ms Retries: 3” displays your settings
Action buttons:
Disable button (to pause without deleting)
Edit button (to modify settings)
Trash icon (to delete permanently)
The top of the section shows “1/19 webhooks configured” so you always know how many slots you’ve used.
Status indicators:
Green “Enabled” badge: Webhook is active and working
Gray badge (if shown): Webhook is disabled (not active)
Check logs for last success/failure times
If you see repeated failures, something might be wrong with your receiving system.

Popular Integration Examples

Quick Start: Testing with Webhook.site

Perfect for: Testing before you build anything
Copy the URL they give you
Create a webhook in Zea with that URL
Place a test order
Go back to webhook.site to see the data
This is great for understanding what data Zea sends before you build your integration.

Example 1: Get Slack Notifications

Perfect for: Instant team notifications when orders come in
You’ll need:
A Slack workspace
Permission to add apps
Steps:
In Slack, create an “Incoming Webhook” (Slack has a guide for this)
Slack will give you a URL like https://hooks.slack.com/services/...
In Zea, create a webhook and paste that URL
Choose the #orders channel (or wherever you want notifications)
That’s it! Orders will now appear in Slack instantly

Example 2: Log Orders to Google Sheets

Perfect for: Simple order tracking and reporting
You’ll need:
Google Sheets
A tool like Zapier or Make (formerly Integromat)
Steps:
Create a new Google Sheet with columns: Date, Order ID, Customer, Parts, Quantity
In Zapier/Make, create a new automation:
Trigger: “Webhook” (they’ll give you a URL)
Action: “Add row to Google Sheets”
Map the Zea data to your sheet columns
Use the Zapier webhook URL in your Zea webhook
Every order now logs automatically to your sheet

Example 3: Connect to Your ERP System

Perfect for: Full business system integration
You’ll need:
Access to your ERP system’s API
A developer or IT person to help
General approach:
Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.