Intermediate
How to build reusable callable scenarios on Make
Quick Answer
Create reusable callable scenarios on Make by building a parent scenario with webhook triggers and child scenarios that can be invoked via HTTP requests. This allows you to modularize complex workflows and reuse automation logic across multiple scenarios.
Prerequisites
- Active Make account
- Basic understanding of Make scenarios
- Familiarity with webhooks and API concepts
- Experience with Make's module system
1
Create the Parent Callable Scenario
Navigate to your Make dashboard and click Create a new scenario. Start with a Webhooks module by searching for "Custom Webhook" in the module library. Click Add and select Custom Webhook. Give your webhook a descriptive name like "Parent Process Handler" and copy the generated webhook URL for later use.
Tip
Use descriptive names for your webhooks to easily identify them when managing multiple callable scenarios.
2
Configure Input Parameters
After your webhook module, add a Set Variable module from the Tools section. Define the input parameters your callable scenario will accept by mapping webhook data to variables. For example, create variables like
customerID, processType, and priority using the webhook's request data: {{1.customerID}}, {{1.processType}}, etc.Tip
Always validate input parameters using filters or routers to ensure data integrity before processing.
3
Build the Reusable Logic
Add your core processing modules after the variable setup. This could include HTTP requests, Data Store operations, or Email notifications. Use the variables you defined earlier throughout these modules. For complex logic, use Router modules to create different execution paths based on input parameters like
{{processType}}.4
Add Response Handling
End your scenario with a Webhook Response module to return data to the calling scenario. Configure the response format by setting Status to
200 and Body with relevant data like {"status": "success", "processedID": "{{customerID}}", "timestamp": "{{now}}"}. Set Headers to include Content-Type: application/json.Tip
Always include meaningful response data and error handling to help debug issues in calling scenarios.
5
Create Child Scenarios for Specific Tasks
Create additional scenarios for specific sub-processes. Each should start with a Custom Webhook module. For example, create a "Send Notification" scenario or "Update Database" scenario. These child scenarios should accept specific parameters and perform focused tasks. Save the webhook URLs from each child scenario.
Tip
Keep child scenarios focused on single responsibilities to maximize reusability.
6
Connect Parent to Child Scenarios
In your parent scenario, add HTTP modules to call child scenarios. Set Method to
POST, URL to the child scenario's webhook URL, and Body with the required parameters: {"customerID": "{{customerID}}", "message": "Process completed"}. Add error handling using Error Handler routes.Tip
Use the HTTP module's timeout settings and retry logic for reliable communication between scenarios.
7
Test the Callable Scenario
Click Run once and test your scenario using a tool like Postman or curl. Send a POST request to your parent webhook URL with sample data:
curl -X POST [webhook-url] -H "Content-Type: application/json" -d '{"customerID": "12345", "processType": "premium"}' Monitor the execution log to ensure all modules execute correctly and child scenarios are called properly.Tip
Test with various input combinations to ensure your error handling and routing logic work correctly.
8
Schedule and Deploy
Once tested, turn on your scenarios by clicking the ON/OFF toggle for each scenario (parent and children). Set appropriate scheduling if needed using the Scheduling settings. Document your webhook URLs and required parameters for future use. Consider creating a simple documentation file with endpoint details and example payloads.
Tip
Monitor your scenario usage and execution times regularly to optimize performance and manage operation consumption.
Troubleshooting
Child scenario not receiving data from parent scenario
Check that the HTTP module in the parent scenario has the correct webhook URL and that the request body format matches what the child scenario expects. Verify both scenarios are turned ON.
Webhook returns 'Scenario is not running' error
Ensure the target scenario is activated by checking the ON/OFF toggle in the scenario settings. Also verify that the webhook module is the first module in the scenario.
Variables not passing correctly between modules
Use the mapping panel to properly map data from previous modules. Check that variable names match exactly and use the
{{module.variable}} syntax correctly.Scenarios timing out or running slowly
Optimize by reducing unnecessary HTTP requests, using aggregator modules for batch processing, and implementing proper error handling to avoid infinite loops or retries.
Ready to get started with Make?
Put this tutorial into practice. Visit Make and follow the steps above.
Visit Make →