🔂 Rerun Webhook Triggers: Get the already processed webhook payload and run again your scenario

The Issue
Over time I find myself trying to rerun an already-processed webhook execution, and while for a single rerun it’s super easy I can just download the payload from the history and send it again to the webhook via postman or this tool: https://reqbin.com/curl

But when it comes to rerunning a batch of already processed webhook triggers, it is seriously difficult. So here’s the JSON scenario you can use rerun batch executions.

Scenario Blueprint in JSON
{
    "subflows": [
        {
            "flow": [
                {
                    "id": 1,
                    "module": "make:listScenarioLogs",
                    "version": 1,
                    "parameters": {
                        "__IMTCONN__": 701937
                    },
                    "mapper": {
                        "scenario": "SCENARIO_ID",
                        "from": "01/30/2023 9:05 PM",
                        "to": "01/31/2023 8:53 PM",
                        "showCheckRuns": false,
                        "limit": "50"
                    },
                    "metadata": {
                        "designer": {
                            "x": -361,
                            "y": 6
                        },
                        "restore": {
                            "parameters": {
                                "__IMTCONN__": {
                                    "label": "My Make connection",
                                    "data": {
                                        "scoped": "true",
                                        "connection": "make"
                                    }
                                }
                            },
                            "expect": {
                                "status": {
                                    "mode": "chose",
                                    "label": "Empty"
                                },
                                "showCheckRuns": {
                                    "mode": "chose"
                                }
                            }
                        },
                        "parameters": [
                            {
                                "name": "__IMTCONN__",
                                "type": "account:make",
                                "label": "Connection",
                                "required": true
                            }
                        ],
                        "expect": [
                            {
                                "name": "scenario",
                                "type": "text",
                                "label": "Scenario ID",
                                "required": true
                            },
                            {
                                "name": "from",
                                "type": "date",
                                "label": "From",
                                "time": true
                            },
                            {
                                "name": "to",
                                "type": "date",
                                "label": "To",
                                "time": true
                            },
                            {
                                "name": "status",
                                "type": "select",
                                "label": "Status",
                                "validate": {
                                    "enum": [
                                        "1",
                                        "2",
                                        "3"
                                    ]
                                }
                            },
                            {
                                "name": "showCheckRuns",
                                "type": "boolean",
                                "label": "Show Check Runs"
                            },
                            {
                                "name": "limit",
                                "type": "uinteger",
                                "label": "Limit"
                            }
                        ]
                    }
                },
                {
                    "id": 3,
                    "module": "http:ActionSendData",
                    "version": 3,
                    "parameters": {
                        "handleErrors": false,
                        "useNewZLibDeCompress": true
                    },
                    "mapper": {
                        "url": "https://us1.make.com/streamer/scenario/SCENARIO_ID/log/{{1.id}}/module/1",
                        "serializeUrl": false,
                        "method": "post",
                        "headers": [
                            {
                                "name": "authority",
                                "value": "us1.make.com"
                            },
                            {
                                "name": "accept",
                                "value": "application/json, text/javascript, */*; q=0.01"
                            },
                            {
                                "name": "accept-language",
                                "value": "en-US,en;q=0.9"
                            },
                            {
                                "name": "content-type",
                                "value": "application/json; charset=UTF-8"
                            },
                            {
                                "name": "cookie",
                                "value": "ADD_MAKE_COOKIE_HERE"
                            },
                            {
                                "name": "origin",
                                "value": "https"
                            },
                            {
                                "name": "referer",
                                "value": "https"
                            },
                            {
                                "name": "sec-ch-ua",
                                "value": "\"Not_A Brand\";v=\"99\", \"Google Chrome\";v=\"109\", \"Chromium\";v=\"109\""
                            },
                            {
                                "name": "sec-ch-ua-mobile",
                                "value": "?0"
                            },
                            {
                                "name": "sec-ch-ua-platform",
                                "value": "\"Windows\""
                            },
                            {
                                "name": "sec-fetch-dest",
                                "value": "empty"
                            },
                            {
                                "name": "sec-fetch-mode",
                                "value": "cors"
                            },
                            {
                                "name": "sec-fetch-site",
                                "value": "same-origin"
                            },
                            {
                                "name": "user-agent",
                                "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
                            },
                            {
                                "name": "x-requested-with",
                                "value": "XMLHttpRequest"
                            }
                        ],
                        "qs": [],
                        "bodyType": "raw",
                        "parseResponse": true,
                        "authUser": "my-api-key",
                        "authPass": "",
                        "timeout": "",
                        "shareCookies": false,
                        "ca": "",
                        "rejectUnauthorized": true,
                        "followRedirect": true,
                        "useQuerystring": false,
                        "gzip": true,
                        "useMtls": false,
                        "contentType": "application/json",
                        "data": "{\"cycle\":1}",
                        "followAllRedirects": false
                    },
                    "metadata": {
                        "designer": {
                            "x": -61,
                            "y": 6
                        },
                        "restore": {
                            "expect": {
                                "method": {
                                    "mode": "chose",
                                    "label": "POST"
                                },
                                "headers": {
                                    "mode": "chose",
                                    "items": [
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null
                                    ]
                                },
                                "qs": {
                                    "mode": "chose"
                                },
                                "bodyType": {
                                    "label": "Raw"
                                },
                                "contentType": {
                                    "label": "JSON (application/json)"
                                }
                            }
                        },
                        "parameters": [
                            {
                                "name": "handleErrors",
                                "type": "boolean",
                                "label": "Evaluate all states as errors (except for 2xx and 3xx )",
                                "required": true
                            },
                            {
                                "name": "useNewZLibDeCompress",
                                "type": "hidden"
                            }
                        ],
                        "expect": [
                            {
                                "name": "url",
                                "type": "url",
                                "label": "URL",
                                "required": true
                            },
                            {
                                "name": "serializeUrl",
                                "type": "boolean",
                                "label": "Serialize URL",
                                "required": true
                            },
                            {
                                "name": "method",
                                "type": "select",
                                "label": "Method",
                                "required": true,
                                "validate": {
                                    "enum": [
                                        "get",
                                        "head",
                                        "post",
                                        "put",
                                        "patch",
                                        "delete",
                                        "options"
                                    ]
                                }
                            },
                            {
                                "name": "headers",
                                "type": "array",
                                "label": "Headers",
                                "spec": [
                                    {
                                        "name": "name",
                                        "label": "Name",
                                        "type": "text",
                                        "required": true
                                    },
                                    {
                                        "name": "value",
                                        "label": "Value",
                                        "type": "text"
                                    }
                                ]
                            },
                            {
                                "name": "qs",
                                "type": "array",
                                "label": "Query String",
                                "spec": [
                                    {
                                        "name": "name",
                                        "label": "Name",
                                        "type": "text",
                                        "required": true
                                    },
                                    {
                                        "name": "value",
                                        "label": "Value",
                                        "type": "text"
                                    }
                                ]
                            },
                            {
                                "name": "bodyType",
                                "type": "select",
                                "label": "Body type",
                                "validate": {
                                    "enum": [
                                        "raw",
                                        "x_www_form_urlencoded",
                                        "multipart_form_data"
                                    ]
                                }
                            },
                            {
                                "name": "parseResponse",
                                "type": "boolean",
                                "label": "Parse response",
                                "required": true
                            },
                            {
                                "name": "authUser",
                                "type": "text",
                                "label": "User name"
                            },
                            {
                                "name": "authPass",
                                "type": "password",
                                "label": "Password"
                            },
                            {
                                "name": "timeout",
                                "type": "uinteger",
                                "label": "Timeout",
                                "validate": {
                                    "max": 300,
                                    "min": 1
                                }
                            },
                            {
                                "name": "shareCookies",
                                "type": "boolean",
                                "label": "Share cookies with other HTTP modules",
                                "required": true
                            },
                            {
                                "name": "ca",
                                "type": "cert",
                                "label": "Self-signed certificate"
                            },
                            {
                                "name": "rejectUnauthorized",
                                "type": "boolean",
                                "label": "Reject connections that are using unverified (self-signed) certificates",
                                "required": true
                            },
                            {
                                "name": "followRedirect",
                                "type": "boolean",
                                "label": "Follow redirect",
                                "required": true
                            },
                            {
                                "name": "useQuerystring",
                                "type": "boolean",
                                "label": "Disable serialization of multiple same query string keys as arrays",
                                "required": true
                            },
                            {
                                "name": "gzip",
                                "type": "boolean",
                                "label": "Request compressed content",
                                "required": true
                            },
                            {
                                "name": "useMtls",
                                "type": "boolean",
                                "label": "Use Mutual TLS",
                                "required": true
                            },
                            {
                                "name": "contentType",
                                "type": "select",
                                "label": "Content type",
                                "validate": {
                                    "enum": [
                                        "text/plain",
                                        "application/json",
                                        "application/xml",
                                        "text/xml",
                                        "text/html",
                                        "custom"
                                    ]
                                }
                            },
                            {
                                "name": "data",
                                "type": "buffer",
                                "label": "Request content"
                            },
                            {
                                "name": "followAllRedirects",
                                "type": "boolean",
                                "label": "Follow all redirect",
                                "required": true
                            }
                        ]
                    }
                },
                {
                    "id": 8,
                    "module": "util:FunctionSleep",
                    "version": 1,
                    "parameters": {},
                    "mapper": {
                        "duration": "2"
                    },
                    "metadata": {
                        "designer": {
                            "x": 262,
                            "y": 5
                        },
                        "restore": {},
                        "expect": [
                            {
                                "name": "duration",
                                "type": "uinteger",
                                "label": "Delay",
                                "required": true,
                                "validate": {
                                    "max": 300,
                                    "min": 1
                                }
                            }
                        ]
                    }
                },
                {
                    "id": 7,
                    "module": "http:ActionSendData",
                    "version": 3,
                    "parameters": {
                        "handleErrors": false,
                        "useNewZLibDeCompress": true
                    },
                    "mapper": {
                        "url": "https://hook.us1.make.com/YOUR_MAKE_WEBHOOK",
                        "serializeUrl": false,
                        "method": "get",
                        "headers": [],
                        "qs": [],
                        "bodyType": "raw",
                        "parseResponse": true,
                        "authUser": "",
                        "authPass": "",
                        "timeout": "",
                        "shareCookies": false,
                        "ca": "",
                        "rejectUnauthorized": true,
                        "followRedirect": true,
                        "useQuerystring": false,
                        "gzip": true,
                        "useMtls": false,
                        "contentType": "application/json",
                        "data": "{{3.data[].data[]}}",
                        "followAllRedirects": false
                    },
                    "metadata": {
                        "designer": {
                            "x": 580,
                            "y": 1
                        },
                        "restore": {
                            "expect": {
                                "method": {
                                    "mode": "chose",
                                    "label": "GET"
                                },
                                "headers": {
                                    "mode": "chose"
                                },
                                "qs": {
                                    "mode": "chose"
                                },
                                "bodyType": {
                                    "label": "Raw"
                                },
                                "contentType": {
                                    "label": "JSON (application/json)"
                                }
                            }
                        },
                        "parameters": [
                            {
                                "name": "handleErrors",
                                "type": "boolean",
                                "label": "Evaluate all states as errors (except for 2xx and 3xx )",
                                "required": true
                            },
                            {
                                "name": "useNewZLibDeCompress",
                                "type": "hidden"
                            }
                        ],
                        "expect": [
                            {
                                "name": "url",
                                "type": "url",
                                "label": "URL",
                                "required": true
                            },
                            {
                                "name": "serializeUrl",
                                "type": "boolean",
                                "label": "Serialize URL",
                                "required": true
                            },
                            {
                                "name": "method",
                                "type": "select",
                                "label": "Method",
                                "required": true,
                                "validate": {
                                    "enum": [
                                        "get",
                                        "head",
                                        "post",
                                        "put",
                                        "patch",
                                        "delete",
                                        "options"
                                    ]
                                }
                            },
                            {
                                "name": "headers",
                                "type": "array",
                                "label": "Headers",
                                "spec": [
                                    {
                                        "name": "name",
                                        "label": "Name",
                                        "type": "text",
                                        "required": true
                                    },
                                    {
                                        "name": "value",
                                        "label": "Value",
                                        "type": "text"
                                    }
                                ]
                            },
                            {
                                "name": "qs",
                                "type": "array",
                                "label": "Query String",
                                "spec": [
                                    {
                                        "name": "name",
                                        "label": "Name",
                                        "type": "text",
                                        "required": true
                                    },
                                    {
                                        "name": "value",
                                        "label": "Value",
                                        "type": "text"
                                    }
                                ]
                            },
                            {
                                "name": "bodyType",
                                "type": "select",
                                "label": "Body type",
                                "validate": {
                                    "enum": [
                                        "raw",
                                        "x_www_form_urlencoded",
                                        "multipart_form_data"
                                    ]
                                }
                            },
                            {
                                "name": "parseResponse",
                                "type": "boolean",
                                "label": "Parse response",
                                "required": true
                            },
                            {
                                "name": "authUser",
                                "type": "text",
                                "label": "User name"
                            },
                            {
                                "name": "authPass",
                                "type": "password",
                                "label": "Password"
                            },
                            {
                                "name": "timeout",
                                "type": "uinteger",
                                "label": "Timeout",
                                "validate": {
                                    "max": 300,
                                    "min": 1
                                }
                            },
                            {
                                "name": "shareCookies",
                                "type": "boolean",
                                "label": "Share cookies with other HTTP modules",
                                "required": true
                            },
                            {
                                "name": "ca",
                                "type": "cert",
                                "label": "Self-signed certificate"
                            },
                            {
                                "name": "rejectUnauthorized",
                                "type": "boolean",
                                "label": "Reject connections that are using unverified (self-signed) certificates",
                                "required": true
                            },
                            {
                                "name": "followRedirect",
                                "type": "boolean",
                                "label": "Follow redirect",
                                "required": true
                            },
                            {
                                "name": "useQuerystring",
                                "type": "boolean",
                                "label": "Disable serialization of multiple same query string keys as arrays",
                                "required": true
                            },
                            {
                                "name": "gzip",
                                "type": "boolean",
                                "label": "Request compressed content",
                                "required": true
                            },
                            {
                                "name": "useMtls",
                                "type": "boolean",
                                "label": "Use Mutual TLS",
                                "required": true
                            },
                            {
                                "name": "contentType",
                                "type": "select",
                                "label": "Content type",
                                "validate": {
                                    "enum": [
                                        "text/plain",
                                        "application/json",
                                        "application/xml",
                                        "text/xml",
                                        "text/html",
                                        "custom"
                                    ]
                                }
                            },
                            {
                                "name": "data",
                                "type": "buffer",
                                "label": "Request content"
                            },
                            {
                                "name": "followAllRedirects",
                                "type": "boolean",
                                "label": "Follow all redirect",
                                "required": true
                            }
                        ]
                    }
                }
            ]
        }
    ],
    "metadata": {
        "version": 1
    }
}

In here, you can modify as you need it. Maybe add repeater to get around make’s 50 log limit in first module, also you can add data store to prevent same log being sent twice.

2 Likes

Hi,
This is a great idea.

I have copied this JSON text into a new notepad file and changed extension to .JSON
On Make, I did “import blueprint”. It says import compete, but the scenario is still empty.
What am I doing wrong?

2 Likes

I am facing the same issue. its empty

When I import the blueprint Make shows just a blank page. Can you please post a working blueprint again? THANK YOU!