Can you define multiple data structures on one custom webhook

I have 3 functions that send data to 1 webhook . What do I need to do to ensure that the data of these 3 functions are passed to relevant variables. As it stands , sometimes the variable is passed through and sometimes it isnt. I have to manually do the variable picking , save and then get a sucessful run . The concern is that the variable is not persisting as subsequent runs sometimes come up as empty.
Also, I am guessing you can only define 1 data structure per webhook or could you collect all three functions into 1 data structure?

Address-Validation:
{
“type”: “object”,
“properties”: {
“required_postcode”: {
“type”: “string”,
“description”: “The required postcode for the service area.”
},
“address”: {
“type”: “string”,
“description”: “The full address provided by the caller.”
}
},
“required”: [
“address”
]
}

  1. Availability_Check :
    {
    “type”: “object”,
    “properties”: {
    “set_scheduled_time”: {
    “type”: “string”,
    “description”: “The date and time provided by the caller for the plumbing booking, formatted as ‘YYYY-MM-DD HH:mm:ss’ (e.g., ‘2025-07-18 11:00:00’). Must be on the hour.”
    }
    },
    “required”: [
    “scheduled_time”
    ]
    }

Create_Job :
{
“type”: “object”,
“properties”: {
“job_type”: {
“type”: “string”,
“description”: “The type of job (‘emergency’ or ‘routine’).”,
“enum”: [
“emergency”,
“routine”
]
},
“job_address”: {
“type”: “string”,
“description”: “The validated address of the job.”
},
“email_address”: {
“type”: “string”,
“description”: “The caller’s email address.”
},
“job_description”: {
“type”: “string”,
“description”: “Description of the job (e.g., ‘fix leaking tap’ or ‘burst pipe repair’).”
},
“mobile”: {
“type”: “string”,
“pattern”: “^\+?[1-9]\d{1,14}$”,
“description”: “The caller’s mobile number.”
},
“last_name”: {
“type”: “string”,
“description”: “The caller’s last name.”
},
“set_scheduled_time”: {
“type”: “string”,
“description”: “formatted as ‘YYYY-MM-DD HH:mm:ss’ (e.g., ‘2025-07-18 11:00:00’). Must be on the hour.”
},
“first_name”: {
“type”: “string”,
“description”: “The caller’s first name.”
}
},
“required”: [
“first_name”,
“last_name”,
“mobile”,
“email_address”,
“job_address”,
“job_type”,
“set_scheduled_time”,
“job_description”
]
}

Hello,

Make.com uses dot notation for value mapping. This means that:

is a visual representation of:

{{4.key1}}

So if you use, for example:

{{4.key3}}

and this key is not defined in the data structure:

scenario will still work.

Of course, this approach requires some understanding of JSON and dot notation, or running the scenario multiple times to get mappings.
In your case, the easiest way to handle three different routes would be to use router right after webhook- so modules can be mapped accordingly.

The tricky part is that you need to determine which value (or which occurrence of a value) should decide which route the data should follow.

1 Like