{
    "name": "Simple Web Scraping",
    "flow": [
        {
            "id": 1,
            "module": "http:ActionSendData",
            "version": 3,
            "parameters": {
                "handleErrors": true,
                "useNewZLibDeCompress": true
            },
            "mapper": {
                "ca": "",
                "qs": [],
                "url": "https://photokings.ca/",
                "gzip": true,
                "method": "get",
                "headers": [],
                "timeout": "",
                "useMtls": false,
                "authPass": "",
                "authUser": "",
                "bodyType": "x_www_form_urlencoded",
                "formFields": [],
                "serializeUrl": false,
                "shareCookies": false,
                "parseResponse": false,
                "followRedirect": true,
                "useQuerystring": false,
                "followAllRedirects": false,
                "rejectUnauthorized": true
            },
            "metadata": {
                "designer": {
                    "x": 0,
                    "y": 0
                },
                "restore": {
                    "expect": {
                        "qs": {
                            "mode": "chose"
                        },
                        "method": {
                            "mode": "chose",
                            "label": "GET"
                        },
                        "headers": {
                            "mode": "chose"
                        },
                        "bodyType": {
                            "label": "Application/x-www-form-urlencoded"
                        },
                        "formFields": {
                            "mode": "chose"
                        }
                    }
                },
                "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",
                        "spec": [
                            {
                                "name": "name",
                                "type": "text",
                                "label": "Name",
                                "required": true
                            },
                            {
                                "name": "value",
                                "type": "text",
                                "label": "Value"
                            }
                        ],
                        "type": "array",
                        "label": "Headers"
                    },
                    {
                        "name": "qs",
                        "spec": [
                            {
                                "name": "name",
                                "type": "text",
                                "label": "Name",
                                "required": true
                            },
                            {
                                "name": "value",
                                "type": "text",
                                "label": "Value"
                            }
                        ],
                        "type": "array",
                        "label": "Query String"
                    },
                    {
                        "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": "formFields",
                        "spec": [
                            {
                                "name": "key",
                                "type": "text",
                                "label": "Key",
                                "required": true
                            },
                            {
                                "name": "value",
                                "type": "text",
                                "label": "Value"
                            }
                        ],
                        "type": "array",
                        "label": "Fields"
                    },
                    {
                        "name": "followAllRedirects",
                        "type": "boolean",
                        "label": "Follow all redirect",
                        "required": true
                    }
                ]
            }
        },
        {
            "id": 7,
            "module": "openai-gpt-3:CreateCompletion",
            "version": 1,
            "parameters": {
                "__IMTCONN__": 1504129
            },
            "mapper": {
                "model": "gpt-4o",
                "top_p": "1",
                "select": "chat",
                "messages": [
                    {
                        "role": "system",
                        "content": "Please pull out all the text in the first header tag on this website. Do not include the code, just the text in between the lines the h1 tags. Here's the code:\n{{1.data}}"
                    }
                ],
                "max_tokens": "200",
                "temperature": "1",
                "n_completions": "1",
                "response_format": "text"
            },
            "metadata": {
                "designer": {
                    "x": 300,
                    "y": 0
                },
                "restore": {
                    "expect": {
                        "stop": {
                            "mode": "chose"
                        },
                        "model": {
                            "mode": "chose",
                            "label": "gpt-4o (system)"
                        },
                        "select": {
                            "label": "Create a Chat Completion (GPT Models)"
                        },
                        "messages": {
                            "mode": "chose",
                            "items": [
                                {
                                    "role": {
                                        "mode": "chose",
                                        "label": "System"
                                    }
                                }
                            ]
                        },
                        "logit_bias": {
                            "mode": "chose"
                        },
                        "response_format": {
                            "mode": "chose",
                            "label": "Text"
                        },
                        "additionalParameters": {
                            "mode": "chose"
                        }
                    },
                    "parameters": {
                        "__IMTCONN__": {
                            "data": {
                                "scoped": "true",
                                "connection": "openai-gpt-3"
                            },
                            "label": "My OpenAI connection"
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "__IMTCONN__",
                        "type": "account:openai-gpt-3",
                        "label": "Connection",
                        "required": true
                    }
                ],
                "expect": [
                    {
                        "name": "select",
                        "type": "select",
                        "label": "Select Method",
                        "required": true,
                        "validate": {
                            "enum": [
                                "chat",
                                "prompt"
                            ]
                        }
                    },
                    {
                        "name": "max_tokens",
                        "type": "number",
                        "label": "Max Tokens",
                        "required": true
                    },
                    {
                        "name": "temperature",
                        "type": "number",
                        "label": "Temperature",
                        "validate": {
                            "max": 2,
                            "min": 0
                        }
                    },
                    {
                        "name": "top_p",
                        "type": "number",
                        "label": "Top P",
                        "validate": {
                            "max": 1,
                            "min": 0
                        }
                    },
                    {
                        "name": "n_completions",
                        "type": "number",
                        "label": "Number"
                    },
                    {
                        "name": "frequency_penalty",
                        "type": "number",
                        "label": "Frequency Penalty",
                        "validate": {
                            "max": 2,
                            "min": -2
                        }
                    },
                    {
                        "name": "presence_penalty",
                        "type": "number",
                        "label": "Presence Penalty",
                        "validate": {
                            "max": 2,
                            "min": -2
                        }
                    },
                    {
                        "name": "logit_bias",
                        "spec": {
                            "name": "value",
                            "spec": [
                                {
                                    "name": "token",
                                    "type": "text",
                                    "label": "Token ID",
                                    "required": true
                                },
                                {
                                    "name": "probability",
                                    "type": "number",
                                    "label": "Probability",
                                    "required": true,
                                    "validate": {
                                        "max": 100,
                                        "min": -100
                                    }
                                }
                            ],
                            "type": "collection",
                            "label": "Token Probability"
                        },
                        "type": "array",
                        "label": "Token Probability"
                    },
                    {
                        "name": "response_format",
                        "type": "select",
                        "label": "Response Format",
                        "validate": {
                            "enum": [
                                "text",
                                "json_object"
                            ]
                        }
                    },
                    {
                        "name": "seed",
                        "type": "integer",
                        "label": "Seed"
                    },
                    {
                        "name": "stop",
                        "spec": {
                            "name": "value",
                            "type": "text",
                            "label": "Stop Sequence"
                        },
                        "type": "array",
                        "label": "Stop Sequences",
                        "validate": {
                            "maxItems": 4
                        }
                    },
                    {
                        "name": "additionalParameters",
                        "spec": {
                            "name": "value",
                            "spec": [
                                {
                                    "name": "key",
                                    "type": "text",
                                    "label": "Parameter Name",
                                    "required": true
                                },
                                {
                                    "name": "type",
                                    "type": "select",
                                    "label": "Input Type",
                                    "options": [
                                        {
                                            "label": "Text",
                                            "value": "text",
                                            "nested": [
                                                {
                                                    "name": "value",
                                                    "type": "text",
                                                    "label": "Parameter Value"
                                                }
                                            ],
                                            "default": true
                                        },
                                        {
                                            "label": "Number",
                                            "value": "number",
                                            "nested": [
                                                {
                                                    "name": "value",
                                                    "type": "number",
                                                    "label": "Parameter Value"
                                                }
                                            ]
                                        },
                                        {
                                            "label": "Boolean",
                                            "value": "boolean",
                                            "nested": [
                                                {
                                                    "name": "value",
                                                    "type": "boolean",
                                                    "label": "Parameter Value"
                                                }
                                            ]
                                        },
                                        {
                                            "label": "Date",
                                            "value": "date",
                                            "nested": [
                                                {
                                                    "name": "value",
                                                    "type": "date",
                                                    "label": "Parameter Value"
                                                }
                                            ]
                                        },
                                        {
                                            "label": "Any",
                                            "value": "any",
                                            "nested": [
                                                {
                                                    "name": "value",
                                                    "type": "any",
                                                    "label": "Parameter Value"
                                                }
                                            ]
                                        }
                                    ]
                                }
                            ],
                            "type": "collection",
                            "label": "Input Parameter"
                        },
                        "type": "array",
                        "label": "Other Input Parameters"
                    },
                    {
                        "name": "model",
                        "type": "select",
                        "label": "Model",
                        "required": true
                    },
                    {
                        "name": "messages",
                        "spec": {
                            "name": "value",
                            "spec": [
                                {
                                    "name": "role",
                                    "type": "select",
                                    "label": "Role",
                                    "options": [
                                        {
                                            "label": "System",
                                            "value": "system"
                                        },
                                        {
                                            "label": "User",
                                            "value": "user"
                                        },
                                        {
                                            "label": "Assistant",
                                            "value": "assistant"
                                        }
                                    ],
                                    "required": true
                                },
                                {
                                    "name": "content",
                                    "type": "text",
                                    "label": "Message Content"
                                }
                            ],
                            "type": "collection",
                            "label": "Message"
                        },
                        "type": "array",
                        "label": "Messages",
                        "required": true
                    }
                ]
            }
        },
        {
            "id": 8,
            "module": "regexp:AdvancedParser",
            "version": 1,
            "parameters": {
                "global": true,
                "multiline": false,
                "sensitive": true,
                "singleline": false,
                "advancedParser": true,
                "continueWhenNoRes": true,
                "ignoreInfiniteLoopsWhenGlobal": false
            },
            "mapper": {
                "text": "{{1.data}}",
                "pattern": "<h1[^>]*>(.*?)<\\/h1>"
            },
            "metadata": {
                "designer": {
                    "x": 600,
                    "y": 0
                },
                "restore": {},
                "parameters": [
                    {
                        "name": "global",
                        "type": "boolean",
                        "label": "Global match",
                        "required": true
                    },
                    {
                        "name": "sensitive",
                        "type": "boolean",
                        "label": "Case sensitive",
                        "required": true
                    },
                    {
                        "name": "multiline",
                        "type": "boolean",
                        "label": "Multiline",
                        "required": true
                    },
                    {
                        "name": "singleline",
                        "type": "boolean",
                        "label": "Singleline",
                        "required": true
                    },
                    {
                        "name": "continueWhenNoRes",
                        "type": "boolean",
                        "label": "Continue the execution of the route even if the module finds no matches",
                        "required": true
                    },
                    {
                        "name": "advancedParser",
                        "type": "hidden"
                    },
                    {
                        "name": "ignoreInfiniteLoopsWhenGlobal",
                        "type": "boolean",
                        "label": "Ignore errors when there is an infinite search loop",
                        "required": true
                    }
                ],
                "expect": [
                    {
                        "name": "pattern",
                        "type": "text",
                        "label": "Pattern",
                        "required": true
                    },
                    {
                        "name": "text",
                        "type": "text",
                        "label": "Text",
                        "required": true
                    }
                ]
            }
        },
        {
            "id": 2,
            "module": "regexp:HTMLToText",
            "version": 1,
            "parameters": {},
            "mapper": {
                "html": "{{1.data}}",
                "newline": "lf",
                "uppercaseHeadings": true
            },
            "metadata": {
                "designer": {
                    "x": 900,
                    "y": 0
                },
                "restore": {
                    "expect": {
                        "newline": {
                            "label": "LF (\\n) - Unix/Mac OS X"
                        }
                    }
                },
                "expect": [
                    {
                        "name": "html",
                        "type": "text",
                        "label": "HTML"
                    },
                    {
                        "name": "newline",
                        "type": "select",
                        "label": "Line break",
                        "required": true,
                        "validate": {
                            "enum": [
                                "lf",
                                "crlf",
                                "cr"
                            ]
                        }
                    },
                    {
                        "name": "uppercaseHeadings",
                        "type": "boolean",
                        "label": "Uppercase headings",
                        "required": true
                    }
                ]
            }
        },
        {
            "id": 3,
            "module": "regexp:GetElementsFromText",
            "version": 1,
            "parameters": {
                "continueWhenNoRes": false
            },
            "mapper": {
                "text": "{{2.text}}",
                "pattern": "##emails",
                "specialCharsPattern": ""
            },
            "metadata": {
                "designer": {
                    "x": 1200,
                    "y": 0
                },
                "restore": {
                    "expect": {
                        "pattern": {
                            "label": "Email"
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "continueWhenNoRes",
                        "type": "boolean",
                        "label": "Continue the execution of the route even if the module finds no matches",
                        "required": true
                    }
                ],
                "expect": [
                    {
                        "name": "pattern",
                        "type": "select",
                        "label": "Pattern",
                        "required": true,
                        "validate": {
                            "enum": [
                                "##emails",
                                "##html_tags",
                                "##http_urls",
                                "##ftp_urls",
                                "##telephone_numbers",
                                "##ipv4",
                                "##ipv6",
                                "##emoji",
                                "##key_value_pairs"
                            ]
                        }
                    },
                    {
                        "name": "text",
                        "type": "text",
                        "label": "Text",
                        "required": true
                    },
                    {
                        "name": "specialCharsPattern",
                        "type": "text",
                        "label": "Special characters in the pattern"
                    }
                ],
                "interface": [
                    {
                        "name": "match",
                        "type": "any",
                        "label": "Match"
                    }
                ]
            }
        },
        {
            "id": 4,
            "module": "regexp:GetElementsFromText",
            "version": 1,
            "parameters": {
                "continueWhenNoRes": false
            },
            "mapper": {
                "text": "{{2.text}}",
                "pattern": "##telephone_numbers"
            },
            "metadata": {
                "designer": {
                    "x": 1500,
                    "y": 0,
                    "messages": [
                        {
                            "category": "last",
                            "severity": "warning",
                            "message": "A transformer should not be the last module in the route."
                        }
                    ]
                },
                "restore": {
                    "expect": {
                        "pattern": {
                            "label": "Phone numbers"
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "continueWhenNoRes",
                        "type": "boolean",
                        "label": "Continue the execution of the route even if the module finds no matches",
                        "required": true
                    }
                ],
                "expect": [
                    {
                        "name": "pattern",
                        "type": "select",
                        "label": "Pattern",
                        "required": true,
                        "validate": {
                            "enum": [
                                "##emails",
                                "##html_tags",
                                "##http_urls",
                                "##ftp_urls",
                                "##telephone_numbers",
                                "##ipv4",
                                "##ipv6",
                                "##emoji",
                                "##key_value_pairs"
                            ]
                        }
                    },
                    {
                        "name": "text",
                        "type": "text",
                        "label": "Text",
                        "required": true
                    }
                ],
                "interface": [
                    {
                        "name": "match",
                        "type": "any",
                        "label": "Match"
                    }
                ]
            }
        }
    ],
    "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": "us1.make.com"
    }
}