{
  "name": "Hostilo: publish a page from Google Sheets (create or update)",
  "flow": [
    {
      "id": 1,
      "module": "google-sheets:watchRows",
      "version": 2,
      "parameters": {
        "from": "drive",
        "mode": "select",
        "spreadsheetId": "",
        "sheetId": "",
        "includesHeaders": true,
        "tableFirstRow": "A1:Z1",
        "limit": 10
      },
      "mapper": {},
      "metadata": {
        "designer": {
          "x": 0,
          "y": 0,
          "name": "New row: A = site, B = title, C = text"
        }
      }
    },
    {
      "id": 2,
      "module": "json:TransformToJSON",
      "version": 1,
      "parameters": {},
      "mapper": {
        "object": "<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><title>{{escapeHTML(1.`1`)}}</title><style>body{font-family:system-ui,sans-serif;max-width:720px;margin:48px auto;padding:0 20px;line-height:1.6;color:#1f2937}</style></head><body><h1>{{escapeHTML(1.`1`)}}</h1><p style=\"white-space:pre-line\">{{escapeHTML(1.`2`)}}</p></body></html>"
      },
      "metadata": {
        "designer": {
          "x": 300,
          "y": 0,
          "name": "Build HTML (safe JSON string)"
        }
      }
    },
    {
      "id": 3,
      "module": "http:ActionSendDataAPIKeyAuth",
      "version": 3,
      "parameters": {
        "handleErrors": false
      },
      "mapper": {
        "url": "https://hostilo.app/api/v1/update_site",
        "serializeUrl": false,
        "method": "post",
        "headers": [],
        "qs": [],
        "bodyType": "raw",
        "parseResponse": true,
        "timeout": "",
        "shareCookies": false,
        "ca": "",
        "rejectUnauthorized": true,
        "followRedirect": true,
        "useQuerystring": false,
        "gzip": true,
        "useMtls": false,
        "contentType": "application/json",
        "data": "{\"site_id\": \"{{1.`0`}}\", \"html\": {{2.json}}}",
        "followAllRedirects": false
      },
      "metadata": {
        "designer": {
          "x": 600,
          "y": 0,
          "name": "Hostilo: update_site"
        },
        "restore": {
          "parameters": {
            "auth": {
              "label": "Hostilo API key (Authorization: Bearer hk_...)"
            }
          },
          "expect": {
            "method": {
              "mode": "chose",
              "label": "POST"
            },
            "headers": {
              "mode": "chose"
            },
            "qs": {
              "mode": "chose"
            },
            "bodyType": {
              "label": "Raw"
            },
            "contentType": {
              "label": "JSON (application/json)"
            }
          }
        },
        "parameters": [
          {
            "name": "auth",
            "type": "keychain:apikeyauth",
            "label": "Credentials",
            "required": true
          },
          {
            "name": "handleErrors",
            "type": "boolean",
            "label": "Evaluate all states as errors (except for 2xx and 3xx )",
            "required": true
          }
        ],
        "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": "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"
          }
        ]
      }
    },
    {
      "id": 4,
      "module": "http:ActionSendDataAPIKeyAuth",
      "version": 3,
      "parameters": {
        "handleErrors": false
      },
      "mapper": {
        "url": "https://hostilo.app/api/v1/create_site",
        "serializeUrl": false,
        "method": "post",
        "headers": [],
        "qs": [],
        "bodyType": "raw",
        "parseResponse": true,
        "timeout": "",
        "shareCookies": false,
        "ca": "",
        "rejectUnauthorized": true,
        "followRedirect": true,
        "useQuerystring": false,
        "gzip": true,
        "useMtls": false,
        "contentType": "application/json",
        "data": "{\"site_name\": \"{{1.`0`}}\", \"html\": {{2.json}}}",
        "followAllRedirects": false
      },
      "metadata": {
        "designer": {
          "x": 900,
          "y": 0,
          "name": "Hostilo: create_site"
        },
        "restore": {
          "parameters": {
            "auth": {
              "label": "Hostilo API key (Authorization: Bearer hk_...)"
            }
          },
          "expect": {
            "method": {
              "mode": "chose",
              "label": "POST"
            },
            "headers": {
              "mode": "chose"
            },
            "qs": {
              "mode": "chose"
            },
            "bodyType": {
              "label": "Raw"
            },
            "contentType": {
              "label": "JSON (application/json)"
            }
          }
        },
        "parameters": [
          {
            "name": "auth",
            "type": "keychain:apikeyauth",
            "label": "Credentials",
            "required": true
          },
          {
            "name": "handleErrors",
            "type": "boolean",
            "label": "Evaluate all states as errors (except for 2xx and 3xx )",
            "required": true
          }
        ],
        "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": "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"
          }
        ]
      },
      "filter": {
        "name": "Site does not exist yet",
        "conditions": [
          [
            {
              "a": "{{3.data.error}}",
              "b": "nie istnieje",
              "o": "text:contain"
            }
          ]
        ]
      }
    }
  ],
  "metadata": {
    "instant": false,
    "version": 1,
    "scenario": {
      "roundtrips": 1,
      "maxErrors": 3,
      "autoCommit": true,
      "autoCommitTriggerLast": true,
      "sequential": true,
      "slots": null,
      "confidential": false,
      "dataloss": false,
      "dlq": false,
      "freshVariables": false
    },
    "designer": {
      "orphans": [],
      "notes": [
        {
          "moduleIds": [
            3
          ],
          "content": "Hostilo API key: Credentials → Add → API key. Key: Bearer hk_... (from Hostilo dashboard → API & tools), API Key placement: In the header, API Key parameter name: Authorization. Docs: https://hostilo.app/docs#rest"
        }
      ]
    },
    "zone": "eu1.make.com"
  }
}
