The Issue
Make.com does not provide a native merge routes feature. This can cause messy workflows when you want to route conditionally and then continue the scenario from a single point.
Example Problem
Imagine you want to:
1. Search for a user in the database (and capture their ID)
2. If the user does not exist:
- Create a new user (and capture their ID)
3. Do something with the captured user ID
4. Do something else afterwards
Make.com does not allow you to conditionally fork your scenario and then merge it back easily.
The Solution
This solution requires using scenario variables to merge your routes manually.
Steps of merging:
- Create a scenario variable (e.g., called
user_id
) to store the user ID after checking the database. - Set the
user_id
variable after searching for the user:
- If the user exists, save their ID to the
user_id
variable. - If not, the variable remains empty.
- Use a Router module with two routes (or more, as you wish):
- Route 1:
- Inserts a new user into the database.
- Saves the newly created user ID into the
user_id
variable.
- Route 2 (Default Route):
- At the beginning, use a “Get Variable” module to load the current value of
user_id
. - This allows you to access the correct
user_id
regardless of which route ran.
- At the beginning, use a “Get Variable” module to load the current value of
Why Use the “Get Variable” Module?
When using routers, all data before the router is copied into each route. This means:
- Updating a variable inside one route does not update the variable value in other routes.
- The router passes a copy of the data, not the original source.
Therefore, to have a consistent, updated variable (user_id
), you need to explicitly fetch the latest value with the “Get Variable” module inside each route.
After Applying the Solution, the Flow Looks Like This:
1. Search for user (and capture ID)
2. Set variable "user_id" with the found ID (or leave empty if not found)
3. If user does not exist:
- Create user (and capture new ID)
- Set variable "user_id" again (this updates the variable globally)
4. Get variable "user_id"
(to retrieve the updated value, e.g., the new user ID if created)
5. Do something with the captured ID
(by referencing the "user_id" from the "Get Variable" module)
Before and after Images
Keep in mind:
The route sequence is very important, the default route should always be the last one!
Before:
After: