Webhook In¶
Trigger Task - The entry point for your automation workflows
The Webhook In task is a trigger task that receives incoming data from external applications via HTTP POST requests. It creates a unique URL endpoint that external services can call to start your workflow.
When to Use
Use Webhook In when you need to:
- Receive real-time data from external services
- Trigger workflows based on external events
- Create API endpoints for third-party integrations
- Build custom webhooks for your applications
How It Works¶
sequenceDiagram
participant External as External Service
participant Webhook as Webhook In Task
participant Workflow as Your Workflow
External->>Webhook: POST request with data
Webhook->>Workflow: Trigger workflow
Workflow->>Workflow: Process data
Workflow-->>External: Response (optional) Quick Start¶
- Add a Webhook In task as the first task in your workflow
- Copy the Production URL from the task settings
- Configure your external service to send POST requests to this URL
- The webhook data will be available to all subsequent tasks
Task Settings¶
Task Name¶
Give your webhook a descriptive name that indicates its purpose.
Example: Customer Order Webhook, Lead Form Submission, Payment Notification
Webhook URLs¶
Every Webhook In task provides two URLs:
Test URL¶
Purpose: Development and testing environment
Use when:
- Testing new integrations
- Debugging workflow issues
- Validating data structures
- Experimenting with configurations
Production URL¶
Purpose: Live production traffic
Use when:
- Integration is tested and working
- Ready for real customer data
- Production environment is stable
Important
Always test with the Test URL first. Only switch to Production URL when you're confident everything works correctly.
Response Settings¶
Configure how your webhook responds to the caller.
Response Type¶
Respond Immediately¶
Returns a quick acknowledgment, then processes the workflow in the background.
When to use:
- Long-running workflows (> 30 seconds)
- When the caller doesn't need workflow results
- To prevent timeout issues
Response:
Respond After Workflow Completes¶
Waits for all child tasks to finish, then returns the complete results.
When to use:
- Caller needs confirmation of successful processing
- Workflow completes quickly (< 30 seconds)
- Need to return processed data to the caller
Response:
Custom Response Body¶
Customize the JSON response sent back to the caller.
Simple response:
Dynamic response with workflow data:
{
"success": true,
"processed_at": "{{$now}}",
"customer_id": "{{task_46055_output.customer_id}}",
"order_number": "{{task_46055_output.order_number}}"
}
Accessing Webhook Data¶
All data sent to your webhook is available in subsequent tasks.
Available Variables¶
| Variable | Description | Example |
|---|---|---|
{{task_46055_run}} | Whether task executed successfully | true |
{{task_46055_run_text}} | Status message | "Inbound data received and processed successfully" |
{{task_46055_test_date}} | Test data sample | "Some data" |
Accessing POST Data¶
If the external service sends:
Access it in later tasks:
{{task_46055_customer_name}} → "John Doe"
{{task_46055_email}} → "john@example.com"
{{task_46055_order_total}} → 150.00
Real-World Examples¶
Example 1: E-commerce Order Processing¶
Workflow:
Configuration:
- Webhook In Task
- Name: "Shopify Order Webhook"
- Response Type: Respond Immediately
-
Custom Response:
{"success": true, "order_queued": true} -
External Service (Shopify):
- Webhook URL: Production URL
- Event: Order Created
- Format: JSON
Example 2: Form Submission Handler¶
Workflow:
Configuration:
- Webhook In Task
- Name: "Contact Form Submission"
- Response Type: Respond After Completion
- Custom Response:
Example 3: Payment Webhook¶
Workflow:
Configuration:
- Webhook In Task
- Name: "Stripe Payment Webhook"
- Response Type: Respond Immediately (Stripe has strict timeout limits)
- Custom Response:
{"received": true}
Testing Your Webhook¶
Using Postman¶
- Copy your Test URL
- Create a new POST request in Postman
- Set headers:
- Add body:
- Send request
- Check workflow execution in BaseCloud
Using cURL¶
curl -X POST \
https://api.basecloudglobal.com/webhook/test/YOUR_WEBHOOK_ID \
-H 'Content-Type: application/json' \
-d '{
"customer_name": "John Doe",
"email": "john@example.com"
}'
Using JavaScript¶
fetch('https://api.basecloudglobal.com/webhook/test/YOUR_WEBHOOK_ID', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
customer_name: 'John Doe',
email: 'john@example.com'
})
})
.then(response => response.json())
.then(data => console.log('Success:', data))
.catch((error) => console.error('Error:', error));
Best Practices¶
✓ Do¶
- Always test first - Use Test URL extensively before switching to Production
- Validate incoming data - Add validation tasks after the webhook
- Log important data - Keep records of webhook calls for debugging
- Set appropriate timeouts - Use "Respond Immediately" for long workflows
- Document your webhooks - Keep notes on what each webhook URL is used for
✗ Don't¶
- Don't skip testing - Never use Production URL without testing first
- Don't expose sensitive URLs - Keep your webhook URLs private
- Don't ignore errors - Set up error handling in your workflow
- Don't forget security - Consider adding authentication if handling sensitive data
Troubleshooting¶
Webhook Not Triggering¶
Possible causes:
- Wrong URL - Verify you're using the correct Test or Production URL
- HTTP Method - Webhook must receive POST requests (not GET)
- Workflow inactive - Ensure workflow is published and active
Solution:
1. Check the webhook URL in external service
2. Verify POST method is being used
3. Test with Postman to isolate the issue
4. Check workflow execution logs
Data Not Appearing¶
Possible causes:
- Incorrect variable names - Check exact field names
- Data format mismatch - Webhook expects JSON
- Nested objects - May need to access nested properties
Solution:
1. Use {{task_46055_run_text}} to see raw data
2. Verify JSON structure being sent
3. Check for typos in variable names
4. Use data formatter task if needed
Timeout Issues¶
Possible causes:
- Long-running workflow - Workflow takes > 30 seconds
- External service timeout - Caller has strict timeout limits
Solution:
1. Change Response Type to "Respond Immediately"
2. Optimize slow tasks in workflow
3. Consider splitting into multiple workflows
Common Questions¶
Can I use GET requests instead of POST?
No, Webhook In only accepts POST requests with JSON data.
Is there a limit to how much data I can send?
Standard HTTP payload limits apply (typically 10MB), which is more than sufficient for most use cases.
Can I trigger the webhook manually?
Yes! Use the Test URL with Postman, cURL, or any HTTP client to manually trigger your workflow.
How quickly does the workflow trigger?
Workflows trigger in real-time, typically within milliseconds of receiving the webhook request.
Can I use the same webhook URL for multiple external services?
Yes, though we recommend creating separate Webhook In tasks for different sources to keep workflows organized.
What happens if my workflow fails?
The webhook will return an error response, and you can review the error in the workflow execution logs.
Related Tasks¶
- HTTP Request - Make outgoing API calls
- Delay - Add time delays in your workflow
- If Condition - Add conditional logic
See Also¶
Last updated: February 3, 2026
Need help? Contact Support or visit our Community Forum