{
  "name": "HasData - Keyword rank history (test candidate)",
  "flow": [
    {
      "id": 1,
      "module": "util:SetVariables",
      "version": 1,
      "parameters": {},
      "mapper": {
        "variables": [
          {
            "name": "query",
            "value": "Coffee"
          },
          {
            "name": "targetHostname",
            "value": "cuveecoffee.com"
          },
          {
            "name": "location",
            "value": "Austin,Texas,United States"
          },
          {
            "name": "country",
            "value": "us"
          },
          {
            "name": "language",
            "value": "en"
          },
          {
            "name": "googleDomain",
            "value": "google.com"
          },
          {
            "name": "checkedAtUtc",
            "value": "{{formatDate(now; \"YYYY-MM-DD HH:mm:ss\"; \"UTC\")}}"
          }
        ],
        "scope": "roundtrip"
      },
      "metadata": {
        "designer": {
          "x": 0,
          "y": 0
        },
        "interface": [
          {
            "name": "query",
            "label": "query",
            "type": "any"
          },
          {
            "name": "targetHostname",
            "label": "targetHostname",
            "type": "any"
          },
          {
            "name": "location",
            "label": "location",
            "type": "any"
          },
          {
            "name": "country",
            "label": "country",
            "type": "any"
          },
          {
            "name": "language",
            "label": "language",
            "type": "any"
          },
          {
            "name": "googleDomain",
            "label": "googleDomain",
            "type": "any"
          },
          {
            "name": "checkedAtUtc",
            "label": "checkedAtUtc",
            "type": "any"
          }
        ]
      }
    },
    {
      "id": 2,
      "module": "hasdata:googleSerpLight",
      "version": 1,
      "parameters": {},
      "mapper": {
        "q": "{{1.query}}",
        "location": "{{1.location}}",
        "domain": "{{1.googleDomain}}",
        "gl": "{{1.country}}",
        "hl": "{{1.language}}",
        "start": 0,
        "num": 10
      },
      "metadata": {
        "designer": {
          "x": 300,
          "y": 0
        },
        "parameters": [
          {
            "name": "__IMTCONN__",
            "type": "account:hasdata",
            "label": "Connection",
            "required": true
          }
        ],
        "expect": [
          {
            "name": "q",
            "type": "text",
            "label": "Search Query",
            "required": true
          },
          {
            "name": "location",
            "type": "text",
            "label": "Location"
          },
          {
            "name": "uule",
            "type": "text",
            "label": "Encoded Location"
          },
          {
            "name": "domain",
            "type": "select",
            "label": "Domain",
            "validate": {
              "enum": [
                "google.ac",
                "google.ad",
                "google.ae",
                "google.al",
                "google.am",
                "google.as",
                "google.at",
                "google.az",
                "google.ba",
                "google.be",
                "google.bf",
                "google.bg",
                "google.bi",
                "google.bj",
                "google.bs",
                "google.bt",
                "google.by",
                "google.ca",
                "google.cd",
                "google.cf",
                "google.cg",
                "google.ch",
                "google.ci",
                "google.cl",
                "google.cm",
                "google.co.ao",
                "google.co.bw",
                "google.co.ck",
                "google.co.cr",
                "google.co.id",
                "google.co.il",
                "google.co.in",
                "google.co.jp",
                "google.co.ke",
                "google.co.kr",
                "google.co.ls",
                "google.co.ma",
                "google.co.mz",
                "google.co.nz",
                "google.co.th",
                "google.co.tz",
                "google.co.ug",
                "google.co.uk",
                "google.co.uz",
                "google.co.ve",
                "google.co.vi",
                "google.co.za",
                "google.co.zm",
                "google.co.zw",
                "google.com",
                "google.com.af",
                "google.com.ag",
                "google.com.ai",
                "google.com.ar",
                "google.com.au",
                "google.com.bd",
                "google.com.bh",
                "google.com.bn",
                "google.com.bo",
                "google.com.br",
                "google.com.bz",
                "google.com.co",
                "google.com.cu",
                "google.com.cy",
                "google.com.do",
                "google.com.ec",
                "google.com.eg",
                "google.com.et",
                "google.com.fj",
                "google.com.gh",
                "google.com.gi",
                "google.com.gt",
                "google.com.hk",
                "google.com.jm",
                "google.com.kh",
                "google.com.kw",
                "google.com.lb",
                "google.com.ly",
                "google.com.mm",
                "google.com.mt",
                "google.com.mx",
                "google.com.my",
                "google.com.na",
                "google.com.ng",
                "google.ng",
                "google.com.nf",
                "google.com.ni",
                "google.com.np",
                "google.com.om",
                "google.com.pa",
                "google.com.pe",
                "google.com.pg",
                "google.com.ph",
                "google.com.pk",
                "google.com.pr",
                "google.com.py",
                "google.com.qa",
                "google.com.sa",
                "google.com.sb",
                "google.com.sg",
                "google.com.sl",
                "google.com.sv",
                "google.com.tj",
                "google.com.tr",
                "google.com.tw",
                "google.com.ua",
                "google.com.uy",
                "google.com.vc",
                "google.com.vn",
                "google.cat",
                "google.cn",
                "google.cv",
                "google.cz",
                "google.de",
                "google.dj",
                "google.dk",
                "google.dm",
                "google.dz",
                "google.ee",
                "google.es",
                "google.fi",
                "google.fm",
                "google.fr",
                "google.ga",
                "google.ge",
                "google.gg",
                "google.gl",
                "google.gm",
                "google.gp",
                "google.gr",
                "google.gy",
                "google.hn",
                "google.hr",
                "google.ht",
                "google.hu",
                "google.ie",
                "google.im",
                "google.iq",
                "google.is",
                "google.it",
                "google.je",
                "google.jo",
                "google.kg",
                "google.ki",
                "google.kz",
                "google.la",
                "google.li",
                "google.lk",
                "google.lt",
                "google.lu",
                "google.lv",
                "google.md",
                "google.me",
                "google.mg",
                "google.mk",
                "google.ml",
                "google.mn",
                "google.ms",
                "google.mu",
                "google.mv",
                "google.mw",
                "google.ne",
                "google.nl",
                "google.no",
                "google.nr",
                "google.nu",
                "google.pl",
                "google.pn",
                "google.ps",
                "google.pt",
                "google.ro",
                "google.rs",
                "google.ru",
                "google.rw",
                "google.sc",
                "google.se",
                "google.sh",
                "google.si",
                "google.sk",
                "google.sm",
                "google.sn",
                "google.so",
                "google.sr",
                "google.st",
                "google.td",
                "google.tg",
                "google.tk",
                "google.tl",
                "google.tm",
                "google.tn",
                "google.to",
                "google.tt",
                "google.vg",
                "google.vu",
                "google.ws"
              ]
            }
          },
          {
            "name": "gl",
            "type": "select",
            "label": "Country",
            "validate": {
              "enum": [
                "ac",
                "af",
                "al",
                "dz",
                "as",
                "ad",
                "ao",
                "ai",
                "aq",
                "ag",
                "ar",
                "am",
                "aw",
                "au",
                "at",
                "az",
                "bs",
                "bh",
                "bd",
                "bb",
                "by",
                "be",
                "bz",
                "bj",
                "bm",
                "bt",
                "bo",
                "ba",
                "bw",
                "bv",
                "br",
                "io",
                "bn",
                "bg",
                "bf",
                "bi",
                "kh",
                "cm",
                "ca",
                "cv",
                "ky",
                "cf",
                "td",
                "cl",
                "cn",
                "cx",
                "cc",
                "co",
                "km",
                "cg",
                "cd",
                "ck",
                "cr",
                "ci",
                "hr",
                "cu",
                "cy",
                "cz",
                "dk",
                "dj",
                "dm",
                "do",
                "ec",
                "eg",
                "sv",
                "gq",
                "er",
                "ee",
                "et",
                "fk",
                "fo",
                "fj",
                "fi",
                "fr",
                "gf",
                "pf",
                "tf",
                "ga",
                "gm",
                "ge",
                "gg",
                "de",
                "gh",
                "gi",
                "gr",
                "gl",
                "gd",
                "gp",
                "gu",
                "gt",
                "gn",
                "gw",
                "gy",
                "ht",
                "hm",
                "va",
                "hn",
                "hk",
                "hu",
                "im",
                "is",
                "in",
                "id",
                "ir",
                "iq",
                "ie",
                "il",
                "it",
                "je",
                "jm",
                "jp",
                "jo",
                "kz",
                "ke",
                "ki",
                "kp",
                "kr",
                "kw",
                "kg",
                "la",
                "lv",
                "lb",
                "ls",
                "lr",
                "ly",
                "li",
                "lt",
                "lu",
                "me",
                "mo",
                "mk",
                "mg",
                "mw",
                "my",
                "mv",
                "ml",
                "mt",
                "mh",
                "mq",
                "mr",
                "mu",
                "yt",
                "mx",
                "fm",
                "md",
                "mc",
                "mn",
                "ms",
                "ma",
                "mz",
                "mm",
                "na",
                "nr",
                "np",
                "nl",
                "an",
                "nc",
                "nz",
                "ni",
                "ne",
                "ng",
                "nu",
                "nf",
                "mp",
                "no",
                "om",
                "pk",
                "pw",
                "ps",
                "pa",
                "pg",
                "py",
                "pe",
                "ph",
                "pn",
                "pl",
                "pt",
                "pr",
                "qa",
                "re",
                "ro",
                "ru",
                "rw",
                "sh",
                "kn",
                "lc",
                "pm",
                "vc",
                "ws",
                "sm",
                "st",
                "sa",
                "sn",
                "rs",
                "sc",
                "sl",
                "sg",
                "sk",
                "si",
                "sb",
                "so",
                "za",
                "gs",
                "es",
                "lk",
                "sd",
                "sr",
                "sj",
                "sz",
                "se",
                "ch",
                "sy",
                "tw",
                "tj",
                "tz",
                "th",
                "tl",
                "tg",
                "tk",
                "to",
                "tt",
                "tn",
                "tr",
                "tm",
                "tc",
                "tv",
                "ug",
                "ua",
                "ae",
                "uk",
                "gb",
                "us",
                "um",
                "uy",
                "uz",
                "vu",
                "ve",
                "vn",
                "vg",
                "vi",
                "wf",
                "eh",
                "ye",
                "zm",
                "zw"
              ]
            }
          },
          {
            "name": "hl",
            "type": "select",
            "label": "Language",
            "validate": {
              "enum": [
                "af",
                "ak",
                "sq",
                "ws",
                "am",
                "ar",
                "hy",
                "az",
                "eu",
                "be",
                "bem",
                "bn",
                "bh",
                "xx-bork",
                "bs",
                "br",
                "bg",
                "bt",
                "km",
                "ca",
                "chr",
                "ny",
                "zh-cn",
                "zh-tw",
                "zh-hk",
                "co",
                "hr",
                "cs",
                "da",
                "nl",
                "xx-elmer",
                "en",
                "eo",
                "et",
                "ee",
                "fo",
                "tl",
                "fil",
                "fi",
                "fr",
                "fy",
                "gaa",
                "gl",
                "ka",
                "de",
                "el",
                "kl",
                "gn",
                "gu",
                "xx-hacker",
                "ht",
                "ha",
                "haw",
                "iw",
                "he",
                "hi",
                "hu",
                "is",
                "ig",
                "id",
                "ia",
                "ga",
                "it",
                "ja",
                "jw",
                "kn",
                "kk",
                "rw",
                "rn",
                "xx-klingon",
                "kg",
                "ko",
                "kri",
                "ku",
                "ckb",
                "ky",
                "lo",
                "la",
                "lv",
                "ln",
                "lt",
                "loz",
                "lg",
                "ach",
                "mk",
                "mg",
                "my",
                "ml",
                "mt",
                "mv",
                "mi",
                "mr",
                "mfe",
                "mo",
                "mn",
                "ms",
                "sr-me",
                "ne",
                "pcm",
                "nso",
                "no",
                "nn",
                "oc",
                "or",
                "om",
                "ps",
                "fa",
                "xx-pirate",
                "pl",
                "pt",
                "pt-br",
                "pt-pt",
                "pa",
                "qu",
                "ro",
                "rm",
                "nyn",
                "ru",
                "gd",
                "sr",
                "sh",
                "st",
                "tn",
                "crs",
                "sn",
                "sd",
                "si",
                "sk",
                "sl",
                "so",
                "es",
                "es-419",
                "su",
                "sw",
                "sv",
                "tg",
                "ta",
                "tt",
                "te",
                "th",
                "ti",
                "to",
                "lua",
                "tum",
                "tr",
                "tk",
                "tw",
                "ug",
                "uk",
                "ur",
                "uz",
                "vu",
                "vi",
                "cy",
                "wo",
                "xh",
                "yi",
                "yo",
                "zu"
              ]
            }
          },
          {
            "name": "lr",
            "type": "select",
            "label": "Set Multiple Languages",
            "multiple": true,
            "validate": {
              "enum": [
                "lang_ar",
                "lang_hy",
                "lang_bg",
                "lang_ca",
                "lang_cs",
                "lang_da",
                "lang_de",
                "lang_el",
                "lang_en",
                "lang_es",
                "lang_et",
                "lang_tl",
                "lang_fi",
                "lang_fr",
                "lang_hr",
                "lang_hi",
                "lang_hu",
                "lang_id",
                "lang_is",
                "lang_it",
                "lang_iw",
                "lang_he",
                "lang_ja",
                "lang_ko",
                "lang_lt",
                "lang_lv",
                "lang_nl",
                "lang_no",
                "lang_fa",
                "lang_pl",
                "lang_pt",
                "lang_ro",
                "lang_ru",
                "lang_sk",
                "lang_sl",
                "lang_sr",
                "lang_sv",
                "lang_th",
                "lang_tr",
                "lang_uk",
                "lang_vi",
                "lang_zh-CN",
                "lang_zh-TW"
              ]
            }
          },
          {
            "name": "tbs",
            "type": "text",
            "label": "Advanced Search Parameters"
          },
          {
            "name": "safe",
            "type": "select",
            "label": "Adult Content Filtering",
            "validate": {
              "enum": [
                "active",
                "off"
              ]
            }
          },
          {
            "name": "filter",
            "type": "number",
            "label": "Results Filtering"
          },
          {
            "name": "start",
            "type": "integer",
            "label": "Result Offset"
          },
          {
            "name": "num",
            "type": "integer",
            "label": "Number of Results"
          }
        ]
      }
    },
    {
      "id": 3,
      "module": "builtin:BasicFeeder",
      "version": 1,
      "parameters": {},
      "mapper": {
        "array": "{{slice(2.organicResults; 0; 10)}}"
      },
      "metadata": {
        "designer": {
          "x": 600,
          "y": 0
        }
      }
    },
    {
      "id": 4,
      "module": "builtin:BasicAggregator",
      "version": 1,
      "parameters": {
        "feeder": 3
      },
      "mapper": {
        "position": "{{3.position}}",
        "link": "{{3.link}}",
        "host": "{{lower(get(split(3.link; \"/\"); 3))}}"
      },
      "metadata": {
        "designer": {
          "x": 900,
          "y": 0
        },
        "restore": {
          "extra": {
            "feeder": {
              "label": "Iterator [3]"
            },
            "target": {
              "label": "Custom"
            }
          }
        }
      },
      "flags": {
        "stopIfEmpty": false
      }
    },
    {
      "id": 5,
      "module": "google-sheets:addRow",
      "version": 2,
      "parameters": {},
      "mapper": {
        "from": "drive",
        "mode": "select",
        "spreadsheetId": "",
        "sheetId": "RankHistory",
        "includesHeaders": true,
        "useColumnHeaders": false,
        "insertDataOption": "INSERT_ROWS",
        "valueInputOption": "RAW",
        "insertUnformatted": false,
        "values": {
          "0": "{{1.checkedAtUtc}}",
          "1": "{{1.query}}",
          "2": "{{lower(trim(1.targetHostname))}}",
          "3": "{{1.location}}",
          "4": "{{1.country}}",
          "5": "{{1.language}}",
          "6": "{{1.googleDomain}}",
          "7": "0",
          "8": "10",
          "9": "{{length(4.array)}}",
          "10": "{{first(map(sort(4.array; asc; position); position; host; lower(trim(1.targetHostname))))}}",
          "11": "{{first(map(sort(4.array; asc; position); link; host; lower(trim(1.targetHostname))))}}",
          "12": "{{if(length(4.array) = 0; \"No organic results returned\"; if(length(map(sort(4.array; asc; position); position; host; lower(trim(1.targetHostname)))) > 0; \"Found in checked results\"; \"Not found in checked results\"))}}"
        }
      },
      "metadata": {
        "designer": {
          "x": 1200,
          "y": 0
        },
        "parameters": [
          {
            "name": "__IMTCONN__",
            "type": "account:google",
            "label": "Connection",
            "required": true
          }
        ]
      }
    }
  ],
  "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": []
    },
    "notes": []
  }
}
