Skip to main content
Automation Trigger: Webhook
Peter Novosel avatar
Written by Peter Novosel
Updated over 2 weeks ago

SmartSuite’s Incoming Webhook trigger makes it simple to start automations from external sources—like third-party services or custom code—by sending an HTTP request to a unique SmartSuite-generated URL. Configure your webhook, test it, and map its payload fields to use in subsequent automation steps.


Overview

The When a Webhook Is Received trigger provides a secure, dedicated URL for each automation. You can copy this URL and add it to external webhook configurations or your own applications. When SmartSuite receives a valid request at this endpoint, your automation will run.

Key Features

  • Unique, System-Generated URL: Each trigger has its own webhook endpoint that you can copy and share.

  • GET & POST Support: Configure your incoming webhook to accept data via URL query parameters (GET) or JSON payloads (POST).

  • Automatic Field Mapping: SmartSuite can parse JSON bodies or detect query parameters, letting you map them to outputs used in later steps.

  • Robust Error Handling: Handles malformed or unsupported requests and enforces rate limits.

  • Testing & Recent Requests: Check up to 10 recent webhook requests before enabling the automation.


Step 1: Create an Automation

  1. Go to Automations: From the main navigation, select Automations or open the Automation Builder for the desired workspace/solution.

  2. Add Trigger: Click Add New Automation, then choose When a Webhook Is Received as your trigger.

  3. Name & Description: Give your automation a clear name (e.g., “Inbound Webhook for Customer Orders”) and a helpful description.

Tip: Each automation can only have one trigger. If you need multiple webhooks, create multiple automations.


Step 2: Configure Your Webhook

After choosing When a Webhook Is Received:

  1. Copy the Webhook URL: You’ll see a read-only field containing a unique URL generated by SmartSuite. Click Copy to place the URL on your clipboard.

  2. HTTP Method: Select GET or POST, depending on how the external service will send data.

  3. Explanation & Testing: A brief description is displayed, along with a Test Trigger button to review inbound requests.

The automation is currently disabled, which allows you to test without running production actions.

Note: Remember that anyone who has the URL for your webhook trigger can trigger your automation. We recommend thinking carefully about how and where this URL might be shared.


Step 3: Test the Webhook

Click Test Trigger to see if any requests have been received:

  1. No Recent Requests: If no requests have been sent to your webhook yet, you’ll see a message like “No requests found yet!”

  2. Send a Request: From an external system or a tool like Postman/cURL, send a GET or POST request to your webhook URL. (For POST requests with JSON, ensure the Content-Type: application/json header and valid JSON body.)

  3. Refresh & View: Click Refresh to retrieve up to 10 recent requests from the past 24 hours. Select a request to see the data (query parameters for GET or JSON payload for POST).

Note: SmartSuite logs incoming request data for up to 24 hours while the automation is disabled, making it easy to test and configure your field mappings.


Step 4: Map Incoming Data

Once you select a recent request, you can map fields or parameters:

  1. For GET Requests: SmartSuite shows detected query parameters (e.g., ?order_id=123&status=new). Each parameter is available as a text output.

  2. For POST Requests (JSON): SmartSuite shows the data structure.

    • Simple Fields (strings, numbers, booleans) appear as {key}: {value} and become separate outputs in later steps.

    • Arrays are labeled as {key}: Array. In this initial release, array items are combined into a single text output. Note that arrays at the top (root) level or under the root object can be used in Looping actions (when available).

    • Nested Objects are expanded into dot notation (e.g., customer.name, customer.email).

Click Use this structure to confirm SmartSuite should use those fields as outputs in later automation steps.

Advanced: If you have an array at the top level or just under the root object, you can use it for looping in subsequent steps.


Step 5: Enable & Finalize

  1. Review & Enable: Check your mapped fields. Feel free to add or remove fields manually if needed. Once satisfied, Enable the automation.

  2. Go Live: Now, any valid incoming request to the webhook URL will automatically trigger your automation and pass along the mapped data to subsequent steps (e.g., create a record, send a notification, etc.)

Important: Once the automation is enabled, testing is disabled. To test again, disable the automation and use the Redetermine data structure button.


Error Handling & Limits

  • Rate Limits: The webhook enforces up to 5 requests per second. Exceeding this returns a 429 Too Many Requests.

  • Payload Size: Requests over 1 MB receive a 413 Payload Too Large.

  • Unsupported Content Types: SmartSuite currently supports application/json for POST requests. Anything else triggers a 415 Unsupported Media Type.

  • Character Encoding: Must be UTF-8. Otherwise, 415 Unsupported Media Type is returned.

  • Invalid JSON: If the JSON is malformed, SmartSuite responds with a 400 Bad Request.


Common Use Cases

  • 3rd Party Integrations: Automate record creation when a third-party service (e.g., payment processor) sends order information.

  • Custom Applications: Trigger internal business logic in SmartSuite by sending POST requests from in-house tools.

    1. Example of a Zapier workflow that sends to a SmartSuite Webhook Trigger:

  • Simple Queries: Use GET requests with URL parameters to quickly pass small data (like IDs or statuses) into SmartSuite for immediate processing.

Did this answer your question?