Advanced Webhook Features
Advanced Webhook Features
Once you're comfortable with basic webhook setup, these advanced features unlock powerful automation capabilities for complex workflows and data processing.
Multi-Step Webhooks
Multi-step webhooks may be available on select plans. Check your account features to confirm availability.
Multi-step webhooks allow a single incoming request to trigger multiple actions in your app. Instead of creating just one record, you can create or update records in multiple tables with one webhook.
Common Use Cases
- Create a customer record AND an order record from a single e-commerce webhook
- Update a contact AND log an activity when receiving CRM webhooks
- Create a main record and multiple related child records simultaneously
- Update data in multiple tables based on a single incoming event
Setting Up Multi-Step Webhooks
- Create or edit a webhook
- After configuring the first step (table and field mapping), click "Add Another Step"
- For each additional step:
- Select the target data table
- Choose whether to create or update records
- Map fields from the incoming data
- Optionally reference data from previous steps
- Save your webhook
Referencing Previous Steps
You can use data created in earlier steps within later steps. For example:
- Step 1 creates a Customer record (record ID: 12345)
- Step 2 creates an Order record and references the Customer ID from Step 1
To reference a previous step, use the special syntax:
{{step.1.record_id}}
This inserts the record ID created in Step 1.
Step Execution Order
Steps execute sequentially in the order you define them. If any step fails, execution stops and subsequent steps are not processed.
Multi-Step Logging
Each step is logged separately in your webhook logs, showing:
- Which step succeeded or failed
- The record created/updated in each step
- Any errors specific to that step
- Processing time per step
Conditional Values
Conditional values allow you to set different field values based on conditions in the incoming data. This is like an "if-then" statement for your field mapping.
How It Works
Instead of mapping a field directly to incoming data, you define rules:
- If a certain condition is met
- Then use this value
- Otherwise use a default value
Example Scenarios
- Set status to "VIP" if order amount is greater than $1000, otherwise "Standard"
- Assign different categories based on product type in the incoming data
- Set priority to "High" if the email subject contains "urgent"
- Route records to different teams based on incoming values
Setting Up Conditional Values
- When mapping a field, click the "Add Condition" option
- Configure your condition:
- Field to Check: Which incoming field to evaluate
- Operator: How to compare (equals, contains, greater than, etc.)
- Value: What to compare against
- Then Value: What to use if condition is true
- Optionally add more conditions with "Add Another Condition"
- Set a default value for when no conditions match
Available Operators
- Is: Exact match
- Is Not: Does not match
- Contains: Text contains a substring
- Does Not Contain: Text does not contain a substring
- Starts With: Text begins with a value
- Ends With: Text ends with a value
- Greater Than: Number is greater than
- Less Than: Number is less than
- Is Blank: Field is empty or null
- Is Not Blank: Field has a value
Multiple Conditions (Match Any)
You can add multiple conditions to a single field. Choose whether:
- All conditions must match: Every condition must be true
- Any condition can match: At least one condition must be true
Example Configuration
Field: Status
Conditions:
If "amount" is greater than "1000" → Set to "Premium"
If "amount" is greater than "500" → Set to "Standard"
Default: "Basic"
Validation Rules
Validation rules ensure incoming data meets your requirements before creating or updating records. If validation fails, the webhook rejects the request.
When to Use Validation Rules
- Ensure required fields are present in incoming data
- Verify data formats (email addresses, phone numbers, etc.)
- Check numeric values are within acceptable ranges
- Prevent duplicate records
- Enforce business rules
Setting Up Validation Rules
- When configuring field mapping, click "Add Validation Rule"
- Choose the validation type:
- Required: Field must have a value
- Format: Field must match a pattern (email, URL, etc.)
- Range: Numeric field must be within min/max values
- Length: Text must be within character limits
- Custom: Define your own validation logic
- Configure validation parameters
- Set an error message to return if validation fails
Validation Error Handling
When a validation rule fails:
- The webhook returns an error response
- No record is created or updated
- The error is logged in your webhook logs
- The sending service receives the error message
Update Records by Conditions
Instead of always creating new records, you can update existing records based on matching criteria.
How It Works
When a webhook receives data:
- Search for an existing record matching your conditions
- If found, update that record
- If not found, optionally create a new record
Setting Up Update Conditions
- In webhook configuration, select "Update Existing Record"
- Choose "Update by Condition" instead of "Update by ID"
- Define matching conditions:
- Which field to match on (e.g., email address)
- How to match (equals, contains, etc.)
- Value from incoming data to match against
- Choose whether to create a new record if no match is found
Example: Update Contacts by Email
Configuration:
Update existing record if:
Field: Email
Operator: Equals
Value: {{incoming.email}}
If no match: Create new record
This configuration will:
- Search for a contact with matching email address
- Update that contact if found
- Create a new contact if no match exists
Complex Field Types
Some Tadabase field types have special mapping requirements.
Name Fields
Name fields have sub-components (first name, last name, etc.). Map them separately:
First Name: incoming.firstName
Last Name: incoming.lastName
Middle Name: incoming.middleName
Address Fields
Address fields have multiple components:
Street: incoming.address.street
City: incoming.address.city
State: incoming.address.state
Postal Code: incoming.address.zip
Country: incoming.address.country
Date and Time Fields
Date fields accept various formats:
- ISO 8601: "2024-01-15T10:30:00Z"
- Unix timestamp: 1705315800
- Common formats: "01/15/2024", "2024-01-15"
The system automatically converts recognized date formats.
Link (Relationship) Fields
To link records, provide the record ID:
Customer Link: incoming.customerId
Or use a multi-step webhook to link to records created in previous steps:
Customer Link: {{step.1.record_id}}
File/Attachment Fields
Map file URLs from incoming data:
File Field: incoming.fileUrl
The system downloads and attaches the file from the URL.
Custom Response Messages
Custom response messages may be available on select plans.
Control what response your webhook sends back to the calling service.
Default Response
By default, successful webhooks return:
{
"status": "success",
"record_id": "12345"
}
Custom Responses
You can configure custom success and error messages:
- Edit your webhook
- Navigate to "Response Settings"
- Enter custom success message
- Enter custom error message
- Optionally include dynamic values from the created record
Including Record Data in Response
You can include specific field values in your response:
{
"status": "success",
"customer_id": "{{record.id}}",
"customer_email": "{{record.email}}",
"order_number": "{{record.order_number}}"
}
Equation Handling Options
Control how Tadabase equations are processed when webhooks create or update records.
Available Options
- Run Equations Immediately: All equations calculate before the webhook responds (slower but ensures data is complete)
- Queue Equations: Equations run in the background after the webhook responds (faster response time)
- Don't Run Equations: Skip equation processing entirely (fastest, but equations won't calculate automatically)
When to Use Each Option
- Run Immediately: When subsequent steps or your response needs equation results
- Queue: For high-volume webhooks where speed matters and equations can calculate later
- Don't Run: When you'll manually trigger equations via API or equations aren't needed
Large Request Handling
For webhooks receiving very large payloads (over 1MB), the system uses special handling:
- Payload is stored separately for efficient processing
- Processing may take longer but won't fail due to size limits
- Memory limits are adjusted automatically
No configuration needed - this happens automatically when needed.
Best Practices for Advanced Features
- Start simple: Get basic webhooks working before adding advanced features
- Test incrementally: Add one advanced feature at a time and test thoroughly
- Document your logic: Use webhook descriptions to note complex conditional logic
- Monitor performance: Watch processing times when using multi-step webhooks
- Plan for failures: Consider what happens if a middle step fails in multi-step webhooks
- Use validation wisely: Too many validation rules can cause legitimate data to be rejected
- Test with sample data: Use the sample request feature to test complex configurations
Troubleshooting Advanced Features
Multi-Step Webhooks Failing
- Check logs to see which step failed
- Verify field mappings for each step
- Ensure referenced step data exists (step.X.field)
- Test each step individually before combining
Conditional Values Not Working
- Verify the incoming data field names match exactly
- Check operator logic (is vs contains, etc.)
- Ensure data types match (numbers vs text)
- Review logs to see actual incoming values
Validation Rules Rejecting Valid Data
- Review the exact error message in logs
- Test validation logic with sample data first
- Check for extra whitespace or formatting issues
- Verify validation parameters are correct
We'd love to hear your feedback.