{
    "name": "Make if() - threshold and missing-input example",
    "flow": [
        {
            "id": 1,
            "module": "json:ParseJSON",
            "version": 1,
            "parameters": {
                "type": ""
            },
            "mapper": {
                "json": "[{\"case\":\"above\",\"amount\":\"101.00\",\"expected\":\"above\"},{\"case\":\"below\",\"amount\":\"99.00\",\"expected\":\"below\"},{\"case\":\"equal\",\"amount\":\"100.00\",\"expected\":\"at_threshold\"},{\"case\":\"zero\",\"amount\":\"0\",\"expected\":\"below\"},{\"case\":\"blank\",\"amount\":\"\",\"expected\":\"needs_review\"},{\"case\":\"missing\",\"expected\":\"needs_review\"},{\"case\":\"null\",\"amount\":null,\"expected\":\"needs_review\"}]"
            },
            "metadata": {
                "designer": {
                    "x": 0,
                    "y": 0,
                    "name": "Seven synthetic inputs"
                },
                "restore": {
                    "parameters": {
                        "type": {
                            "label": "Choose a data structure"
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "type",
                        "type": "udt",
                        "label": "Data structure"
                    }
                ],
                "expect": [
                    {
                        "name": "json",
                        "type": "text",
                        "label": "JSON string",
                        "required": true
                    }
                ]
            }
        },
        {
            "id": 2,
            "module": "util:SetVariables",
            "version": 1,
            "parameters": {},
            "mapper": {
                "scope": "roundtrip",
                "variables": [
                    {
                        "name": "numericAmount",
                        "value": "{{if(ifempty(1.amount; \"__MISSING__\") = \"__MISSING__\"; \"MISSING\"; parseNumber(1.amount; \".\"))}}"
                    }
                ]
            },
            "metadata": {
                "designer": {
                    "x": 300,
                    "y": 0,
                    "name": "Convert a present amount"
                },
                "interface": [
                    {
                        "name": "numericAmount",
                        "label": "numericAmount",
                        "type": "any"
                    }
                ]
            }
        },
        {
            "id": 3,
            "module": "util:SetVariables",
            "version": 1,
            "parameters": {},
            "mapper": {
                "scope": "roundtrip",
                "variables": [
                    {
                        "name": "outcome",
                        "value": "{{if(2.numericAmount = \"MISSING\"; \"needs_review\"; if(2.numericAmount > 100; \"above\"; if(2.numericAmount = 100; \"at_threshold\"; \"below\")))}}"
                    }
                ]
            },
            "metadata": {
                "designer": {
                    "x": 600,
                    "y": 0,
                    "name": "Classify against 100"
                },
                "interface": [
                    {
                        "name": "outcome",
                        "label": "outcome",
                        "type": "any"
                    }
                ]
            }
        },
        {
            "id": 4,
            "module": "util:SetVariables",
            "version": 1,
            "parameters": {},
            "mapper": {
                "scope": "roundtrip",
                "variables": [
                    {
                        "name": "case",
                        "value": "{{1.case}}"
                    },
                    {
                        "name": "input",
                        "value": "{{ifempty(1.amount; \"MISSING\")}}"
                    },
                    {
                        "name": "numericAmount",
                        "value": "{{2.numericAmount}}"
                    },
                    {
                        "name": "expected",
                        "value": "{{1.expected}}"
                    },
                    {
                        "name": "actual",
                        "value": "{{3.outcome}}"
                    },
                    {
                        "name": "passed",
                        "value": "{{3.outcome = 1.expected}}"
                    }
                ]
            },
            "metadata": {
                "designer": {
                    "x": 900,
                    "y": 0,
                    "name": "Check actual against expected"
                },
                "interface": [
                    {
                        "name": "case",
                        "label": "case",
                        "type": "any"
                    },
                    {
                        "name": "input",
                        "label": "input",
                        "type": "any"
                    },
                    {
                        "name": "numericAmount",
                        "label": "numericAmount",
                        "type": "any"
                    },
                    {
                        "name": "expected",
                        "label": "expected",
                        "type": "any"
                    },
                    {
                        "name": "actual",
                        "label": "actual",
                        "type": "any"
                    },
                    {
                        "name": "passed",
                        "label": "passed",
                        "type": "any"
                    }
                ]
            }
        }
    ],
    "metadata": {
        "instant": false,
        "version": 1,
        "scenario": {
            "roundtrips": 1,
            "maxErrors": 3,
            "autoCommit": true,
            "autoCommitTriggerLast": true,
            "sequential": false,
            "slots": null,
            "confidential": false,
            "dataloss": false,
            "dlq": false,
            "freshVariables": false
        },
        "designer": {
            "orphans": []
        },
        "zone": "eu1.make.com",
        "notes": []
    }
}