How to build reusable callable scenarios on Make
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
Step-by-Step Instructions
Create the Parent Callable Scenario
Configure Input Parameters
customerID, processType, and priority using the webhook's request data: {{1.customerID}}, {{1.processType}}, etc.Build the Reusable Logic
{{processType}}.Add Response Handling
200 and Body with relevant data like {"status": "success", "processedID": "{{customerID}}", "timestamp": "{{now}}"}. Set Headers to include Content-Type: application/json.Create Child Scenarios for Specific Tasks
Connect Parent to Child Scenarios
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.Test the Callable Scenario
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.Schedule and Deploy
Common Issues & 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.