[{"data":1,"prerenderedAt":28151},["ShallowReactive",2],{"docs-nav":3,"content-\u002Fdocs\u002Fno-code-tool\u002Fintegrations":1552,"content-doc-\u002Fdocs\u002Fno-code-tool\u002Fintegrations-inline":1552,"search-dialog-corpus":1650,"search-dialog-default-links":26575,"pinned-blogs":27643,"doc-nav-siblings:%2Fdocs%2Fno-code-tool%2Fintegrations":27644,"docs-cards:\u002Fdocs\u002Fno-code-tool\u002Fintegrations:tree::-:false:all":28124},[4,8,12,16,40,44,48,52,56,60,80,84,1493,1497,1501,1524,1528,1532,1536,1540,1544,1548],{"title":5,"path":6,"stem":7},"About axciom ai","\u002F_about"," _about",{"title":9,"path":10,"stem":11},"A list of available compoenents and there variables","\u002F_components"," _components",{"title":13,"path":14,"stem":15},"Code Dashboard for browser automations","\u002F_code-dashboard","_code-dashboard",{"title":17,"path":18,"stem":19,"children":20},"Integrations","\u002F_integrations","_integrations",[21,24,28,32,36],{"title":22,"path":18,"stem":23},"The axiom.ai runner","_integrations\u002Findex",{"title":25,"path":26,"stem":27},"Integrate your browser automations with 2Captcha","\u002F_integrations\u002F2captcha","_integrations\u002F2captcha",{"title":29,"path":30,"stem":31},"Excel","\u002F_integrations\u002Fexcel","_integrations\u002Fexcel",{"title":33,"path":34,"stem":35},"Intergrate Google sheets with your browser automations","\u002F_integrations\u002Fgoogle-sheets","_integrations\u002Fgoogle-sheets",{"title":37,"path":38,"stem":39},"Integrate your browser automations and web scrapers with Zapier in Chrome.","\u002F_integrations\u002Fzap","_integrations\u002Fzap",{"title":41,"path":42,"stem":43},"Get started","\u002F_signup","_signup",{"title":45,"path":46,"stem":47},"Affiliate program","\u002Faffiliate-program","affiliate-program",{"title":49,"path":50,"stem":51},"Connect browser automation to Claude, ChatGPT, Gemini, and more | axiom.ai","\u002Fai-assistant","ai-assistant",{"title":53,"path":54,"stem":55},"Build browser automations with Claude","\u002Fbuild-in-claude","build-in-claude",{"title":57,"path":58,"stem":59},"Build browser automations with code","\u002Fbuild-with-code","build-with-code",{"title":61,"path":62,"stem":63,"children":64},"Build With No Code","\u002Fbuild-with-no-code","build-with-no-code",[65,68,72,76],{"title":66,"path":62,"stem":67},"Build no-code browser bots by describing them to AI","build-with-no-code\u002Findex",{"title":69,"path":70,"stem":71},"Build in Claude Code","\u002Fbuild-with-no-code\u002Fclaude","build-with-no-code\u002Fclaude",{"title":73,"path":74,"stem":75},"Build with code","\u002Fbuild-with-no-code\u002Fdescription","build-with-no-code\u002Fdescription",{"title":77,"path":78,"stem":79},"Build no-code bots step by step","\u002Fbuild-with-no-code\u002Fstep-by-step","build-with-no-code\u002Fstep-by-step",{"title":81,"path":82,"stem":83},"Customer support — docs, AI help, or talk to a human","\u002Fcustomer-support","customer-support",{"title":85,"path":86,"stem":87,"children":88},"Docs","\u002Fdocs","docs",[89,92,110,154,454,480,1489],{"title":90,"path":86,"stem":91},"Browser Automation Documentation: No-Code, Code, API | axiom","docs\u002Findex",{"title":93,"path":94,"stem":95,"children":96},"Account","\u002Fdocs\u002Faccount","docs\u002Faccount\u002Findex",[97,98,102,106],{"title":93,"path":94,"stem":95},{"title":99,"path":100,"stem":101},"Manage your account","\u002Fdocs\u002Faccount\u002Faccount","docs\u002Faccount\u002Faccount",{"title":103,"path":104,"stem":105},"Create an account","\u002Fdocs\u002Faccount\u002Fcreate-account","docs\u002Faccount\u002Fcreate-account",{"title":107,"path":108,"stem":109},"Manage your subscription","\u002Fdocs\u002Faccount\u002Fsubscription","docs\u002Faccount\u002Fsubscription",{"title":111,"path":112,"stem":113,"children":114},"Code Dashboard","\u002Fdocs\u002Fcode","docs\u002Fcode\u002Findex",[115,116,120,124,128,132,136,150],{"title":111,"path":112,"stem":113},{"title":117,"path":118,"stem":119},"Create scripts","\u002Fdocs\u002Fcode\u002Fcreate-scripts","docs\u002Fcode\u002Fcreate-scripts",{"title":121,"path":122,"stem":123},"Dashboard","\u002Fdocs\u002Fcode\u002Fdashboard","docs\u002Fcode\u002Fdashboard",{"title":125,"path":126,"stem":127},"Live editor","\u002Fdocs\u002Fcode\u002Flive-editor","docs\u002Fcode\u002Flive-editor",{"title":129,"path":130,"stem":131},"Run reports","\u002Fdocs\u002Fcode\u002Frun-reports","docs\u002Fcode\u002Frun-reports",{"title":133,"path":134,"stem":135},"Run scripts","\u002Fdocs\u002Fcode\u002Frunning-scripts","docs\u002Fcode\u002Frunning-scripts",{"title":137,"path":138,"stem":139,"children":140},"Sample scripts","\u002Fdocs\u002Fcode\u002Fsamples","docs\u002Fcode\u002Fsamples\u002Findex",[141,142,146],{"title":137,"path":138,"stem":139},{"title":143,"path":144,"stem":145},"Enter data into a page","\u002Fdocs\u002Fcode\u002Fsamples\u002Fdata-entry","docs\u002Fcode\u002Fsamples\u002Fdata-entry",{"title":147,"path":148,"stem":149},"Navigate to a page","\u002Fdocs\u002Fcode\u002Fsamples\u002Fnavigate-to-page","docs\u002Fcode\u002Fsamples\u002Fnavigate-to-page",{"title":151,"path":152,"stem":153},"Generate an API key","\u002Fdocs\u002Fcode\u002Ftoken-generation","docs\u002Fcode\u002Ftoken-generation",{"title":155,"path":156,"stem":157,"children":158},"Developer Hub","\u002Fdocs\u002Fdeveloper-hub","docs\u002Fdeveloper-hub\u002Findex",[159,160,370,392,440],{"title":155,"path":156,"stem":157},{"title":161,"path":162,"stem":163,"children":164},"API","\u002Fdocs\u002Fdeveloper-hub\u002Fapi","docs\u002Fdeveloper-hub\u002Fapi\u002Findex",[165,166,170,176,198,202,206,228,262,352],{"title":161,"path":162,"stem":163},{"title":167,"path":168,"stem":169},"Authentication","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fauthentication","docs\u002Fdeveloper-hub\u002Fapi\u002Fauthentication",{"title":171,"path":172,"stem":173,"children":174},"Chrome API","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fcdp","docs\u002Fdeveloper-hub\u002Fapi\u002Fcdp\u002Findex",[175],{"title":171,"path":172,"stem":173},{"title":177,"path":178,"stem":179,"children":180},"MCP","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fmcp","docs\u002Fdeveloper-hub\u002Fapi\u002Fmcp\u002Findex",[181,182,186,190,194],{"title":177,"path":178,"stem":179},{"title":183,"path":184,"stem":185},"Build your own server (Python)","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fmcp\u002Fbuild-your-own-server-python","docs\u002Fdeveloper-hub\u002Fapi\u002Fmcp\u002Fbuild-your-own-server-python",{"title":187,"path":188,"stem":189},"Build your own server (TypeScript)","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fmcp\u002Fbuild-your-own-typescript","docs\u002Fdeveloper-hub\u002Fapi\u002Fmcp\u002Fbuild-your-own-typescript",{"title":191,"path":192,"stem":193},"Desktop app MCP server","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fmcp\u002Fdesktop-app-server","docs\u002Fdeveloper-hub\u002Fapi\u002Fmcp\u002Fdesktop-app-server",{"title":195,"path":196,"stem":197},"Register with Claude clients","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fmcp\u002Fregister-with-claude","docs\u002Fdeveloper-hub\u002Fapi\u002Fmcp\u002Fregister-with-claude",{"title":199,"path":200,"stem":201},"Programmatic signup","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fprogrammatic-signup","docs\u002Fdeveloper-hub\u002Fapi\u002Fprogrammatic-signup",{"title":203,"path":204,"stem":205},"Quickstart","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fquickstart","docs\u002Fdeveloper-hub\u002Fapi\u002Fquickstart",{"title":207,"path":208,"stem":209,"children":210},"Reference","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Freference","docs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Findex",[211,212,216,220,224],{"title":207,"path":208,"stem":209},{"title":213,"path":214,"stem":215},"Data payload format","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Fdata-payload","docs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Fdata-payload",{"title":217,"path":218,"stem":219},"Endpoints","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Fendpoints","docs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Fendpoints",{"title":221,"path":222,"stem":223},"Error codes","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Ferrorcodes","docs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Ferrorcodes",{"title":225,"path":226,"stem":227},"API responses","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Fresponses","docs\u002Fdeveloper-hub\u002Fapi\u002Freference\u002Fresponses",{"title":229,"path":230,"stem":231,"children":232},"Orchestrate API","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Findex",[233,234,238,242,246,250,254,258],{"title":229,"path":230,"stem":231},{"title":235,"path":236,"stem":237},"Check run status","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fcheck-run-status","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fcheck-run-status",{"title":239,"path":240,"stem":241},"List automations","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Flist-automations","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Flist-automations",{"title":243,"path":244,"stem":245},"Pass input data","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fpass-input-data","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fpass-input-data",{"title":247,"path":248,"stem":249},"List run reports","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Frun-reports","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Frun-reports",{"title":251,"path":252,"stem":253},"Stop a run","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fstop-a-run","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fstop-a-run",{"title":255,"path":256,"stem":257},"Trigger an automation","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Ftrigger-an-automation","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Ftrigger-an-automation",{"title":259,"path":260,"stem":261},"Webhooks from a step","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fwebhooks-from-a-step","docs\u002Fdeveloper-hub\u002Fapi\u002Frun-automations\u002Fwebhooks-from-a-step",{"title":263,"path":264,"stem":265,"children":266},"Step API","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Findex",[267,268,272,276,280,284,288,292,296,300,304,308,312,316,320,324,328,332,336,340,344,348],{"title":263,"path":264,"stem":265},{"title":269,"path":270,"stem":271},"Click","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick",{"title":273,"path":274,"stem":275},"Click and drag","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick-and-drag","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick-and-drag",{"title":277,"path":278,"stem":279},"Click engagement button","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick-engagement-button","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick-engagement-button",{"title":281,"path":282,"stem":283},"Click multiple","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick-multiple","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclick-multiple",{"title":285,"path":286,"stem":287},"Close a session","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclose-a-session","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fclose-a-session",{"title":289,"path":290,"stem":291},"Date picker","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fdate-picker","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fdate-picker",{"title":293,"path":294,"stem":295},"Enter text","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fenter-text","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fenter-text",{"title":297,"path":298,"stem":299},"Get clipboard contents","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fget-clipboard-contents","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fget-clipboard-contents",{"title":301,"path":302,"stem":303},"Go to URL","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fgoto","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fgoto",{"title":305,"path":306,"stem":307},"Hover","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fhover","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fhover",{"title":309,"path":310,"stem":311},"Integrate AI","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fintegrate-ai","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fintegrate-ai",{"title":313,"path":314,"stem":315},"Press keys","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fpress-keys","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fpress-keys",{"title":317,"path":318,"stem":319},"Restart browser","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Frestart-browser","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Frestart-browser",{"title":321,"path":322,"stem":323},"Scrape","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fscrape","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fscrape",{"title":325,"path":326,"stem":327},"Scrape metadata","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fscrape-metadata","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fscrape-metadata",{"title":329,"path":330,"stem":331},"Select list","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fselect-list","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fselect-list",{"title":333,"path":334,"stem":335},"Solve captcha","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fsolve-captcha","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fsolve-captcha",{"title":337,"path":338,"stem":339},"Start a session","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fstart-a-session","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fstart-a-session ",{"title":341,"path":342,"stem":343},"Step function vs No-Code step","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fstep-function-vs-no-code-step","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fstep-function-vs-no-code-step",{"title":345,"path":346,"stem":347},"Switch browser tab","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fswitch-browser-tab","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fswitch-browser-tab",{"title":349,"path":350,"stem":351},"Wait","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fwait","docs\u002Fdeveloper-hub\u002Fapi\u002Fstep-functions\u002Fwait",{"title":353,"path":354,"stem":355,"children":356},"Usage and limits","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits","docs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits\u002Findex",[357,358,362,366],{"title":353,"path":354,"stem":355},{"title":359,"path":360,"stem":361},"Queue and concurrency","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits\u002Fqueue-and-concurrency","docs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits\u002Fqueue-and-concurrency",{"title":363,"path":364,"stem":365},"Rate limits","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits\u002Frate-limits","docs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits\u002Frate-limits",{"title":367,"path":368,"stem":369},"Check remaining runtime","\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits\u002Fremaining-runtime","docs\u002Fdeveloper-hub\u002Fapi\u002Fusage-and-limits\u002Fremaining-runtime",{"title":371,"path":372,"stem":373,"children":374},"Deep dives","\u002Fdocs\u002Fdeveloper-hub\u002Fdeep-dives","docs\u002Fdeveloper-hub\u002Fdeep-dives\u002Findex",[375,376,380,384,388],{"title":371,"path":372,"stem":373},{"title":377,"path":378,"stem":379},"Automation JSON structure","\u002Fdocs\u002Fdeveloper-hub\u002Fdeep-dives\u002Faxiom-structure","docs\u002Fdeveloper-hub\u002Fdeep-dives\u002Faxiom-structure",{"title":381,"path":382,"stem":383},"Chromium","\u002Fdocs\u002Fdeveloper-hub\u002Fdeep-dives\u002Fchromium","docs\u002Fdeveloper-hub\u002Fdeep-dives\u002Fchromium",{"title":385,"path":386,"stem":387},"Cookies in axiom.ai","\u002Fdocs\u002Fdeveloper-hub\u002Fdeep-dives\u002Fcookies","docs\u002Fdeveloper-hub\u002Fdeep-dives\u002Fcookies",{"title":389,"path":390,"stem":391},"Data handling","\u002Fdocs\u002Fdeveloper-hub\u002Fdeep-dives\u002Fdata-handling","docs\u002Fdeveloper-hub\u002Fdeep-dives\u002Fdata-handling",{"title":393,"path":394,"stem":395,"children":396},"Code snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets","docs\u002Fdeveloper-hub\u002Fsnippets\u002Findex",[397,398,428],{"title":393,"path":394,"stem":395},{"title":399,"path":400,"stem":401,"children":402},"JavaScript snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Findex",[403,404,408,412,416,420,424],{"title":399,"path":400,"stem":401},{"title":405,"path":406,"stem":407},"Data snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fdata","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fdata",{"title":409,"path":410,"stem":411},"Interaction snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Finteraction","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Finteraction",{"title":413,"path":414,"stem":415},"Navigation snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fnavigation","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fnavigation",{"title":417,"path":418,"stem":419},"Network snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fnetwork","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fnetwork",{"title":421,"path":422,"stem":423},"Page manipulation snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fpage-manipulation","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fpage-manipulation",{"title":425,"path":426,"stem":427},"Scrape snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fscrape","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript\u002Fscrape",{"title":429,"path":430,"stem":431,"children":432},"Puppeteer snippets","\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fpuppeteer","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fpuppeteer\u002Findex",[433,434,437],{"title":429,"path":430,"stem":431},{"title":409,"path":435,"stem":436},"\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fpuppeteer\u002Finteraction","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fpuppeteer\u002Finteraction",{"title":417,"path":438,"stem":439},"\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fpuppeteer\u002Fnetwork","docs\u002Fdeveloper-hub\u002Fsnippets\u002Fpuppeteer\u002Fnetwork",{"title":441,"path":442,"stem":443,"children":444},"Developer troubleshooting","\u002Fdocs\u002Fdeveloper-hub\u002Ftroubleshooting","docs\u002Fdeveloper-hub\u002Ftroubleshooting\u002Findex",[445,446,450],{"title":441,"path":442,"stem":443},{"title":447,"path":448,"stem":449},"API errors","\u002Fdocs\u002Fdeveloper-hub\u002Ftroubleshooting\u002Fapi","docs\u002Fdeveloper-hub\u002Ftroubleshooting\u002Fapi",{"title":451,"path":452,"stem":453},"Debug developer features","\u002Fdocs\u002Fdeveloper-hub\u002Ftroubleshooting\u002Fdebug","docs\u002Fdeveloper-hub\u002Ftroubleshooting\u002Fdebug",{"title":455,"path":456,"stem":457,"children":458},"FAQ","\u002Fdocs\u002Ffaq","docs\u002Ffaq\u002Findex",[459,460,464,468,472,476],{"title":455,"path":456,"stem":457},{"title":461,"path":462,"stem":463},"General FAQ","\u002Fdocs\u002Ffaq\u002Fgeneral","docs\u002Ffaq\u002Fgeneral",{"title":465,"path":466,"stem":467},"Builder FAQ","\u002Fdocs\u002Ffaq\u002Fno-code-builder","docs\u002Ffaq\u002Fno-code-builder",{"title":469,"path":470,"stem":471},"Runtime and scheduling FAQ","\u002Fdocs\u002Ffaq\u002Fruntime-and-scheduling","docs\u002Ffaq\u002Fruntime-and-scheduling",{"title":473,"path":474,"stem":475},"Subscriptions and accounts FAQ","\u002Fdocs\u002Ffaq\u002Fsubscriptions-and-accounts","docs\u002Ffaq\u002Fsubscriptions-and-accounts",{"title":477,"path":478,"stem":479},"Third-party tools FAQ","\u002Fdocs\u002Ffaq\u002Fthird-party","docs\u002Ffaq\u002Fthird-party",{"title":481,"path":482,"stem":483,"children":484},"No-Code Tool","\u002Fdocs\u002Fno-code-tool","docs\u002Fno-code-tool\u002Findex",[485,486,507,729,786,1228,1350,1397],{"title":481,"path":482,"stem":483},{"title":41,"path":487,"stem":488,"children":489},"\u002Fdocs\u002Fno-code-tool\u002Fget-started","docs\u002Fno-code-tool\u002Fget-started\u002Findex",[490,491,495,499,503],{"title":41,"path":487,"stem":488},{"title":492,"path":493,"stem":494},"Fill a form from a spreadsheet","\u002Fdocs\u002Fno-code-tool\u002Fget-started\u002Fform-filling","docs\u002Fno-code-tool\u002Fget-started\u002Fform-filling",{"title":496,"path":497,"stem":498},"Loop through a list of URLs","\u002Fdocs\u002Fno-code-tool\u002Fget-started\u002Floop-urls","docs\u002Fno-code-tool\u002Fget-started\u002Floop-urls",{"title":500,"path":501,"stem":502},"Scrape a page into a Google Sheet","\u002Fdocs\u002Fno-code-tool\u002Fget-started\u002Fscrape-to-sheet","docs\u002Fno-code-tool\u002Fget-started\u002Fscrape-to-sheet",{"title":504,"path":505,"stem":506},"How to automate web forms","\u002Fdocs\u002Fno-code-tool\u002Fget-started\u002Fwebforms","docs\u002Fno-code-tool\u002Fget-started\u002Fwebforms",{"title":508,"path":509,"stem":510,"children":511},"How it works","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works","docs\u002Fno-code-tool\u002Fhow-it-works\u002Findex",[512,513,595,617,621,625,628,632,636,666,670,712,716],{"title":508,"path":509,"stem":510},{"title":514,"path":515,"stem":516,"children":517},"Interact with the browser","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Findex",[518,519,523,527,531,535,539,543,547,551,555,559,563,567,571,575,579,583,587,591],{"title":514,"path":515,"stem":516},{"title":520,"path":521,"stem":522},"Tick a checkbox","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fcheckbox","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fcheckbox",{"title":524,"path":525,"stem":526},"Automate a button click","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fclicks","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fclicks",{"title":528,"path":529,"stem":530},"Get the current URL","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fcurrent-url","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fcurrent-url",{"title":532,"path":533,"stem":534},"Use a date picker","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fdate-picker","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fdate-picker",{"title":536,"path":537,"stem":538},"Download files to Google Drive","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fdownload-cloud","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fdownload-cloud",{"title":540,"path":541,"stem":542},"Download files to your computer","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fdownload-local","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fdownload-local",{"title":544,"path":545,"stem":546},"Enter text into an input field","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fenter-text","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fenter-text",{"title":548,"path":549,"stem":550},"Record keystrokes","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fkey-strokes","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fkey-strokes",{"title":552,"path":553,"stem":554},"Drag the mouse","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fmouse-drag","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fmouse-drag",{"title":556,"path":557,"stem":558},"Click multiple buttons","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fmulti-click","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fmulti-click",{"title":560,"path":561,"stem":562},"Click a radio button","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fradio-buttons","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fradio-buttons",{"title":564,"path":565,"stem":566},"Trigger a rollover","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Frollover","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Frollover",{"title":568,"path":569,"stem":570},"Use a select list","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fselect-lists","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fselect-lists",{"title":572,"path":573,"stem":574},"Click likes and follows","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fsocial-media-buttons","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fsocial-media-buttons",{"title":576,"path":577,"stem":578},"Solve a captcha","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fsolve-captcha","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fsolve-captcha",{"title":580,"path":581,"stem":582},"Switch and close browser tabs","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Ftabs","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Ftabs",{"title":584,"path":585,"stem":586},"Upload files from Google Drive","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fupload-cloud","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fupload-cloud",{"title":588,"path":589,"stem":590},"Upload files from your computer","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fupload-local","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fupload-local",{"title":592,"path":593,"stem":594},"Pause an automation","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fwait","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fbrowser-actions\u002Fwait",{"title":596,"path":597,"stem":598,"children":599},"Work with data","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Findex",[600,601,605,609,613],{"title":596,"path":597,"stem":598},{"title":602,"path":603,"stem":604},"How to write data to a specific row","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Fdynamically_write","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Fdynamically_write",{"title":606,"path":607,"stem":608},"How to export data from axiom.ai","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Fexport","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Fexport",{"title":610,"path":611,"stem":612},"How to import data to use in your automation","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Fimport","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Fimport",{"title":614,"path":615,"stem":616},"Transforming data during the run","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Ftransform","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fdata\u002Ftransform",{"title":618,"path":619,"stem":620},"Scrape data","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fget-data","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fget-data",{"title":622,"path":623,"stem":624},"Make automations with our no-code tool","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fget-started","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fget-started",{"title":309,"path":626,"stem":627},"\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fintegrate-ai","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fintegrate-ai",{"title":629,"path":630,"stem":631},"Run custom JavaScript","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fjavascript","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fjavascript",{"title":633,"path":634,"stem":635},"Use logic","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogic","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogic",{"title":637,"path":638,"stem":639,"children":640},"Log in to sites","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Findex",[641,642,646,650,654,658,662],{"title":637,"path":638,"stem":639},{"title":643,"path":644,"stem":645},"Log in with 2FA","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002F2fa","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002F2fa",{"title":647,"path":648,"stem":649},"Log in using a password manager","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fpassword-manager","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fpassword-manager",{"title":651,"path":652,"stem":653},"Secure login automation","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fsecure","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fsecure",{"title":655,"path":656,"stem":657},"Log in by sharing your session","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fsessions","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fsessions",{"title":659,"path":660,"stem":661},"Log in using a Google Sheet","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fsteps","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fsteps",{"title":663,"path":664,"stem":665},"Log in using the VPS","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fvps","docs\u002Fno-code-tool\u002Fhow-it-works\u002Flogin\u002Fvps",{"title":667,"path":668,"stem":669},"Loop through data","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Floop","docs\u002Fno-code-tool\u002Fhow-it-works\u002Floop",{"title":671,"path":672,"stem":673,"children":674},"Run and schedule bots","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Findex",[675,676,680,684,688,692,696,700,704,708],{"title":671,"path":672,"stem":673},{"title":677,"path":678,"stem":679},"Advanced running methods","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fadvanced-running-methods","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fadvanced-running-methods",{"title":681,"path":682,"stem":683},"Schedule an automation","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fautomation","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fautomation",{"title":685,"path":686,"stem":687},"Login with a scheduled automation","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Flogin","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Flogin",{"title":689,"path":690,"stem":691},"Structure automations for long runs","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Flong-bot-runs","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Flong-bot-runs",{"title":693,"path":694,"stem":695},"Manage scheduled automations","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fmanage","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fmanage",{"title":697,"path":698,"stem":699},"Schedule on a specific computer","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fother","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fother",{"title":701,"path":702,"stem":703},"Run your automation","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Frun","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Frun",{"title":705,"path":706,"stem":707},"Speed up your automations","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fspeed-up-run","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fspeed-up-run",{"title":709,"path":710,"stem":711},"Stop a running automation","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fstop-bot-runs","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fschedule-and-run\u002Fstop-bot-runs",{"title":713,"path":714,"stem":715},"VPS Guide","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fvps","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fvps",{"title":717,"path":718,"stem":719,"children":720},"Send and receive webhooks","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fwebhooks","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fwebhooks\u002Findex",[721,722,726],{"title":717,"path":718,"stem":719},{"title":723,"path":724,"stem":725},"Import data with a webhook","\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fwebhooks\u002Fexport","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fwebhooks\u002Fexport",{"title":723,"path":727,"stem":728},"\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Fwebhooks\u002Fimport","docs\u002Fno-code-tool\u002Fhow-it-works\u002Fwebhooks\u002Fimport",{"title":17,"path":730,"stem":731,"children":732},"\u002Fdocs\u002Fno-code-tool\u002Fintegrations","docs\u002Fno-code-tool\u002Fintegrations\u002Findex",[733,734,738,742,746,750,754,758,762,766,770,774,778,782],{"title":17,"path":730,"stem":731},{"title":735,"path":736,"stem":737},"2Captcha","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002F2captcha","docs\u002Fno-code-tool\u002Fintegrations\u002F2captcha",{"title":739,"path":740,"stem":741},"ChatGPT","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fchatgpt","docs\u002Fno-code-tool\u002Fintegrations\u002Fchatgpt",{"title":743,"path":744,"stem":745},"Claude","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fclaude","docs\u002Fno-code-tool\u002Fintegrations\u002Fclaude",{"title":747,"path":748,"stem":749},"DeepSeek","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fdeepseek","docs\u002Fno-code-tool\u002Fintegrations\u002Fdeepseek",{"title":751,"path":752,"stem":753},"Microsoft Excel","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fexcel","docs\u002Fno-code-tool\u002Fintegrations\u002Fexcel",{"title":755,"path":756,"stem":757},"Gemini","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fgemini","docs\u002Fno-code-tool\u002Fintegrations\u002Fgemini",{"title":759,"path":760,"stem":761},"Google Sheets","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fgoogle-sheets","docs\u002Fno-code-tool\u002Fintegrations\u002Fgoogle-sheets",{"title":763,"path":764,"stem":765},"Make","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fmake","docs\u002Fno-code-tool\u002Fintegrations\u002Fmake",{"title":767,"path":768,"stem":769},"n8n","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fn8n","docs\u002Fno-code-tool\u002Fintegrations\u002Fn8n",{"title":771,"path":772,"stem":773},"Puppeteer","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fpuppeteer","docs\u002Fno-code-tool\u002Fintegrations\u002Fpuppeteer",{"title":775,"path":776,"stem":777},"Relay.app","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Frelay-app","docs\u002Fno-code-tool\u002Fintegrations\u002Frelay-app",{"title":779,"path":780,"stem":781},"Sonar","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fsonar","docs\u002Fno-code-tool\u002Fintegrations\u002Fsonar",{"title":783,"path":784,"stem":785},"Zapier","\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Fzapier","docs\u002Fno-code-tool\u002Fintegrations\u002Fzapier",{"title":207,"path":787,"stem":788,"children":789},"\u002Fdocs\u002Fno-code-tool\u002Freference","docs\u002Fno-code-tool\u002Freference\u002Findex",[790,791,892],{"title":207,"path":787,"stem":788},{"title":792,"path":793,"stem":794,"children":795},"Automation settings","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Findex",[796,797,823,841,851],{"title":792,"path":793,"stem":794},{"title":798,"path":799,"stem":800,"children":801},"Chrome","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Findex",[802,803,807,811,815,819],{"title":798,"path":799,"stem":800},{"title":804,"path":805,"stem":806},"Bypass bot detection","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fbypass-bot-detection","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fbypass-bot-detection",{"title":808,"path":809,"stem":810},"Set executable path","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fexecutable-path","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fexecutable-path",{"title":812,"path":813,"stem":814},"Run in incognito mode","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fincognito","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fincognito",{"title":816,"path":817,"stem":818},"Load another extension","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fload-extension","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fload-extension",{"title":820,"path":821,"stem":822},"Set a custom Chromium profile","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fprofile","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fchrome\u002Fprofile",{"title":824,"path":825,"stem":826,"children":827},"Error handling","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling\u002Findex",[828,829,833,837],{"title":824,"path":825,"stem":826},{"title":830,"path":831,"stem":832},"Continue on error","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling\u002Fcontinue-on-error","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling\u002Fcontinue-on-error",{"title":834,"path":835,"stem":836},"Interact with iframes","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling\u002Fiframes","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling\u002Fiframes",{"title":838,"path":839,"stem":840},"Disable page monitoring","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling\u002Fpage-monitoring","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Ferror-handling\u002Fpage-monitoring",{"title":842,"path":843,"stem":844,"children":845},"Import and export","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fimport-export","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fimport-export\u002Findex",[846,847],{"title":842,"path":843,"stem":844},{"title":848,"path":849,"stem":850},"Import or download an automation","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fimport-export\u002Fsharing","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Fimport-export\u002Fsharing",{"title":852,"path":853,"stem":854,"children":855},"Run options","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Findex",[856,857,861,865,869,873,877,881,884,888],{"title":852,"path":853,"stem":854},{"title":858,"path":859,"stem":860},"Block resources","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fblock-resources","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fblock-resources",{"title":862,"path":863,"stem":864},"Concurrency","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fconcurrency","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fconcurrency",{"title":866,"path":867,"stem":868},"Run headless","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fheadless","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fheadless",{"title":870,"path":871,"stem":872},"Set maximum runtime","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fmax-runtime","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fmax-runtime",{"title":874,"path":875,"stem":876},"Set up notifications","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fnotifications","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fnotifications",{"title":878,"path":879,"stem":880},"Use a proxy","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fproxy","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fproxy",{"title":681,"path":882,"stem":883},"\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fschedule","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fschedule",{"title":885,"path":886,"stem":887},"Store cookies","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fstore-cookies","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Fstore-cookies",{"title":889,"path":890,"stem":891},"Configure timezone","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Ftimezone","docs\u002Fno-code-tool\u002Freference\u002Fsettings\u002Frun-options\u002Ftimezone",{"title":893,"path":894,"stem":895,"children":896},"Step index","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Findex",[897,898,902,906,910,914,918,922,926,930,934,938,942,946,950,954,958,962,966,970,974,978,982,986,990,994,998,1002,1006,1010,1014,1018,1022,1026,1030,1034,1038,1042,1046,1050,1054,1058,1061,1065,1069,1073,1077,1081,1085,1089,1093,1097,1101,1105,1109,1113,1117,1121,1125,1129,1133,1136,1140,1144,1148,1152,1156,1160,1164,1168,1172,1176,1180,1184,1188,1192,1196,1200,1204,1208,1212,1216,1220,1224],{"title":893,"path":894,"stem":895},{"title":899,"path":900,"stem":901},"Add error metadata step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fadd-error-metadata","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fadd-error-metadata",{"title":903,"path":904,"stem":905},"Add row numbers","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fadd-row-numbers","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fadd-row-numbers",{"title":907,"path":908,"stem":909},"Append or Merge data step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fappend-or-merge-data","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fappend-or-merge-data",{"title":911,"path":912,"stem":913},"Back step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fback","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fback",{"title":915,"path":916,"stem":917},"Clear cookies step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclear-cookies","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclear-cookies",{"title":919,"path":920,"stem":921},"Clear data from a Google Sheet step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclear-data-from-a-google-sheet","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclear-data-from-a-google-sheet",{"title":923,"path":924,"stem":925},"Click element step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclick-element","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclick-element",{"title":927,"path":928,"stem":929},"Click multiple elements step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclick-multiple-elements","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclick-multiple-elements",{"title":931,"path":932,"stem":933},"Click social media buttons step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclick-social-media-buttons","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclick-social-media-buttons",{"title":935,"path":936,"stem":937},"Close browser tab step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclose-tab","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclose-tab",{"title":939,"path":940,"stem":941},"Conditionally jump to another step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fconditionall-jump-step","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fconditionall-jump-step",{"title":943,"path":944,"stem":945},"Continue only if a condition is met step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcontinue-if-condition-met","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcontinue-if-condition-met",{"title":947,"path":948,"stem":949},"Count rows step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcount-rows","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcount-rows",{"title":951,"path":952,"stem":953},"Create a new Google Sheet step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcreate-a-new-google-sheet","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcreate-a-new-google-sheet",{"title":955,"path":956,"stem":957},"Get current bot URL step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcurrent-url","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcurrent-url",{"title":959,"path":960,"stem":961},"Enter custom data step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcustom-data","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fcustom-data",{"title":963,"path":964,"stem":965},"Date picker step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdate-picker","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdate-picker",{"title":967,"path":968,"stem":969},"Date and time step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdate-time","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdate-time",{"title":971,"path":972,"stem":973},"Delete from Google Drive step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdelete-files-from-google-drive","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdelete-files-from-google-drive",{"title":975,"path":976,"stem":977},"Delete rows from a Google Sheet step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdelete-rows-from-a-google-sheet","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdelete-rows-from-a-google-sheet",{"title":979,"path":980,"stem":981},"Display a message step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdisplay-a-message","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdisplay-a-message",{"title":983,"path":984,"stem":985},"Download file from URL step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-file-from-url","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-file-from-url",{"title":987,"path":988,"stem":989},"Download file step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-file-step","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-file-step",{"title":991,"path":992,"stem":993},"Download files step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-files","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-files",{"title":995,"path":996,"stem":997},"Download a file to Google Drive step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-files-to-google-drive","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fdownload-files-to-google-drive",{"title":999,"path":1000,"stem":1001},"Edit Row step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fedit-row","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fedit-row",{"title":1003,"path":1004,"stem":1005},"End loop","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fend-loop","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fend-loop",{"title":1007,"path":1008,"stem":1009},"End run","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fend-run","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fend-run",{"title":1011,"path":1012,"stem":1013},"Enter text step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fenter-text","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fenter-text",{"title":1015,"path":1016,"stem":1017},"Export to CSV step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fexport-csv-file","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fexport-csv-file",{"title":1019,"path":1020,"stem":1021},"Find Row step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Ffind-row","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Ffind-row",{"title":1023,"path":1024,"stem":1025},"Generate random password step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fgenerate-random-password","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fgenerate-random-password",{"title":1027,"path":1028,"stem":1029},"Get a list of links from a page step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-a-list-of-links-to-pages","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-a-list-of-links-to-pages",{"title":1031,"path":1032,"stem":1033},"Get a list of links from a URL step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-a-list-of-links-url","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-a-list-of-links-url",{"title":1035,"path":1036,"stem":1037},"Get data from a URL","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-data-from-url","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-data-from-url",{"title":1039,"path":1040,"stem":1041},"Get data from a webpage","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-data-from-website","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fget-data-from-website",{"title":1043,"path":1044,"stem":1045},"Go to page","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fgo-to-page","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fgo-to-page",{"title":1047,"path":1048,"stem":1049},"If a condition is true, run steps","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fif-condtion","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fif-condtion",{"title":1051,"path":1052,"stem":1053},"If Else condition step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fif-else-condition","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fif-else-condition",{"title":1055,"path":1056,"stem":1057},"Import CSV File step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fimport-csv-file","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fimport-csv-file",{"title":309,"path":1059,"stem":1060},"\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fintegrate-ai","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fintegrate-ai",{"title":1062,"path":1063,"stem":1064},"Interact step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Finteract-with-a-pages-interface","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Finteract-with-a-pages-interface",{"title":1066,"path":1067,"stem":1068},"Join different data sources based on matching columns step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fjoin-different-data-sources","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fjoin-different-data-sources",{"title":1070,"path":1071,"stem":1072},"Jump to another step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fjump-step","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fjump-step",{"title":1074,"path":1075,"stem":1076},"Loop step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Floop","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Floop",{"title":1078,"path":1079,"stem":1080},"Mouse click and drag","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fmouse-click-and-drag","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fmouse-click-and-drag",{"title":1082,"path":1083,"stem":1084},"Move a Google Sheet to a new folder in Google Drive","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fmove-a-google-sheet","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fmove-a-google-sheet",{"title":1086,"path":1087,"stem":1088},"Press keys(s) step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fpress-key","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fpress-key",{"title":1090,"path":1091,"stem":1092},"Read data from a Google Sheet step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-data-from-a-google-sheet-step","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-data-from-a-google-sheet-step",{"title":1094,"path":1095,"stem":1096},"Read data from Airtable","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-data-from-airtable","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-data-from-airtable",{"title":1098,"path":1099,"stem":1100},"Read data from Excel sheet step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-data-from-excel","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-data-from-excel",{"title":1102,"path":1103,"stem":1104},"Read file from Google Drive step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-file-from-google-drive","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-file-from-google-drive",{"title":1106,"path":1107,"stem":1108},"Read local file step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-local-file","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-local-file",{"title":1110,"path":1111,"stem":1112},"Receive data from another app","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Freceive-data-from-another-app","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Freceive-data-from-another-app",{"title":1114,"path":1115,"stem":1116},"Remove duplicates step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-duplicates","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-duplicates",{"title":1118,"path":1119,"stem":1120},"Remove HTML code step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-html-code","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-html-code",{"title":1122,"path":1123,"stem":1124},"Remove results that contain certain words step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-results-that-contain-certain-words","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-results-that-contain-certain-words",{"title":1126,"path":1127,"stem":1128},"Remove results which do not contain certain words step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-results-which-do-not-contain-certain-words","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fremove-results-which-do-not-contain-certain-words",{"title":1130,"path":1131,"stem":1132},"Replace text step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Freplace-text-step","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Freplace-text-step",{"title":317,"path":1134,"stem":1135},"\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Frestart-browser","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Frestart-browser",{"title":1137,"path":1138,"stem":1139},"Rollover element step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Frollover-element","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Frollover-element",{"title":1141,"path":1142,"stem":1143},"Run another Axiom step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Frun-another-axiom","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Frun-another-axiom",{"title":1145,"path":1146,"stem":1147},"Save page HTML step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsave-page-as-html","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsave-page-as-html",{"title":1149,"path":1150,"stem":1151},"Save screenshot locally step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsave-screenshot-locally","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsave-screenshot-locally",{"title":1153,"path":1154,"stem":1155},"Save screenshot to Google Drive step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsave-screenshot-to-google-drive","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsave-screenshot-to-google-drive",{"title":1157,"path":1158,"stem":1159},"Scrape metadata step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fscrape-metadata","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fscrape-metadata",{"title":1161,"path":1162,"stem":1163},"Select list step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fselect-list","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fselect-list",{"title":1165,"path":1166,"stem":1167},"Select random rows step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fselect-random-rows","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fselect-random-rows",{"title":1169,"path":1170,"stem":1171},"Send an email step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsend-an-email","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsend-an-email",{"title":1173,"path":1174,"stem":1175},"Solve Captcha step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsolve-captcha","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsolve-captcha",{"title":1177,"path":1178,"stem":1179},"Split a name into columns step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsplit-a-name-into-columns","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsplit-a-name-into-columns",{"title":1181,"path":1182,"stem":1183},"Split by character step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsplit-by-character","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsplit-by-character",{"title":1185,"path":1186,"stem":1187},"Swap rows and columns step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fswap-rows-and-columns","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fswap-rows-and-columns",{"title":1189,"path":1190,"stem":1191},"Switch browser tab step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fswitch-browser-tab","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fswitch-browser-tab",{"title":1193,"path":1194,"stem":1195},"Trigger webhook step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Ftrigger-webhook","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Ftrigger-webhook",{"title":1197,"path":1198,"stem":1199},"Try catch","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Ftry-catch","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Ftry-catch",{"title":1201,"path":1202,"stem":1203},"Upload a file step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fupload-file","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fupload-file",{"title":1205,"path":1206,"stem":1207},"Upload a file from Google Drive step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fupload-file-google-drive","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fupload-file-google-drive",{"title":1209,"path":1210,"stem":1211},"Wait step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwait","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwait",{"title":1213,"path":1214,"stem":1215},"Write data to a Google Sheet step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-data-to-a-google-sheet-step","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-data-to-a-google-sheet-step",{"title":1217,"path":1218,"stem":1219},"Write data to Airtable","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-data-to-airtable","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-data-to-airtable",{"title":1221,"path":1222,"stem":1223},"Write data to a Excel sheet step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-data-to-an-excel-sheet","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-data-to-an-excel-sheet",{"title":1225,"path":1226,"stem":1227},"Write javascript step","\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-javascript","docs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fwrite-javascript",{"title":1229,"path":1230,"stem":1231,"children":1232},"Release notes","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes","docs\u002Fno-code-tool\u002Frelease-notes\u002Findex",[1233,1234,1238,1242,1246,1250,1254,1258,1262,1266,1270,1274,1278,1282,1286,1290,1294,1298,1302,1306,1310,1314,1318,1322,1326,1330,1334,1338,1342,1346],{"title":1229,"path":1230,"stem":1231},{"title":1235,"path":1236,"stem":1237},"New Make integration, better loops, smarter scraping, and fixes","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-10-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-10-0",{"title":1239,"path":1240,"stem":1241},"Dashboard redesign, better conditionals, stop remote bots, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-11-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-11-0",{"title":1243,"path":1244,"stem":1245},"Solve captchas, press keys smarter, fix iframe hangs, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-12-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-12-0",{"title":1247,"path":1248,"stem":1249},"Optional steps, screenshot tool, scraper upgrades","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-13-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-13-0",{"title":1251,"path":1252,"stem":1253},"Selector overhaul, drag to reorder steps, new templates, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-14-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-14-0",{"title":1255,"path":1256,"stem":1257},"Custom scraper settings, new templates, and payment upgrade","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-15-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-15-0",{"title":1259,"path":1260,"stem":1261},"Upload to drive, undo mistakes, upgrade steps, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-16-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-16-0",{"title":1263,"path":1264,"stem":1265},"Better notifications, custom errors, iframe tools, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-17-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-17-0",{"title":1267,"path":1268,"stem":1269},"Structured scraping with chatgpt, new schedule view, filters, and fixes","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-18-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-18-0",{"title":1271,"path":1272,"stem":1273},"New debugger, generate text with chatgpt, save to drive, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-19-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-19-0",{"title":1275,"path":1276,"stem":1277},"Affiliates, smarter queues, overwrite files, and a 4.0 teaser","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-20-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-20-0",{"title":1279,"path":1280,"stem":1281},"Sneak peek at 4.0, open linked axioms, new steps, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-21-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-21-0",{"title":1283,"path":1284,"stem":1285},"Last stop before 4.0, Scrape images, reorder columns, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-22-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-22-0",{"title":1287,"path":1288,"stem":1289},"Live data previews, easier navigation, new onboarding tools","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-5-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-5-0",{"title":1291,"path":1292,"stem":1293},"Better sheets integration, loop controls, and fixes","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-6-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-6-0",{"title":1295,"path":1296,"stem":1297},"Better builder errors, webhook stability, test default data, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-7-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-7-0",{"title":1299,"path":1300,"stem":1301},"Axiom academy is live, smarter scraping, improved validation","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-8-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-8-0",{"title":1303,"path":1304,"stem":1305},"Step-by-step templates, improved scraping, click multiple, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-9-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-3-9-0",{"title":1307,"path":1308,"stem":1309},"Build smarter with nesting, chatgpt 4, and cloud sessions","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-0-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-0-0",{"title":1311,"path":1312,"stem":1313},"Guided templates, step help, datepickers, partial screenshots, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-1-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-1-0",{"title":1315,"path":1316,"stem":1317},"Proxy auth, conditional logic, flexible scheduling, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-2-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-2-0",{"title":1319,"path":1320,"stem":1321},"Quick builder, new sidebar, better onboarding, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-3-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-3-0",{"title":1323,"path":1324,"stem":1325},"Live run status, step recommendations, keyboard shortcuts, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-4-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-4-0",{"title":1327,"path":1328,"stem":1329},"Scrape faster, set keys once, skip steps, end runs early, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-5-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-5-0",{"title":1331,"path":1332,"stem":1333},"Excel steps, folder sorting, GPT-4o smarts, end loop control, quick filters, and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-6-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-6-0",{"title":1335,"path":1336,"stem":1337},"Proxy rotation, AI updates, new run options and more","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-7-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-7-0",{"title":1339,"path":1340,"stem":1341},"Axiom.ai v4.8","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-8-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-8-0",{"title":1343,"path":1344,"stem":1345},"Axiom.ai v4.9","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-9-0","docs\u002Fno-code-tool\u002Frelease-notes\u002Faxiom-version-4-9-0",{"title":1347,"path":1348,"stem":1349},"Axiom.ai v4.10","\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Flatest","docs\u002Fno-code-tool\u002Frelease-notes\u002Flatest",{"title":622,"path":1351,"stem":1352,"children":1353},"\u002Fdocs\u002Fno-code-tool\u002Fthe-builder","docs\u002Fno-code-tool\u002Fthe-builder\u002Findex",[1354,1355,1359,1363,1367,1371,1375,1393],{"title":622,"path":1351,"stem":1352},{"title":1356,"path":1357,"stem":1358},"AI Assistant","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fai-assistant","docs\u002Fno-code-tool\u002Fthe-builder\u002Fai-assistant",{"title":1360,"path":1361,"stem":1362},"The no-code Builder","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fbuilder","docs\u002Fno-code-tool\u002Fthe-builder\u002Fbuilder",{"title":1364,"path":1365,"stem":1366},"The dashboard","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fdashboard","docs\u002Fno-code-tool\u002Fthe-builder\u002Fdashboard",{"title":1368,"path":1369,"stem":1370},"Installation","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Finstall","docs\u002Fno-code-tool\u002Fthe-builder\u002Finstall",{"title":1372,"path":1373,"stem":1374},"Pass data between steps","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fpass","docs\u002Fno-code-tool\u002Fthe-builder\u002Fpass",{"title":1376,"path":1377,"stem":1378,"children":1379},"The selector tool","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool","docs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Findex",[1380,1381,1385,1389],{"title":1376,"path":1377,"stem":1378},{"title":1382,"path":1383,"stem":1384},"Use custom CSS selectors","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Fcustom-css-selectors","docs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Fcustom-css-selectors",{"title":1386,"path":1387,"stem":1388},"Use the Multi Selector tool","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Fmulti","docs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Fmulti",{"title":1390,"path":1391,"stem":1392},"Use the Single Selector","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Fsingle","docs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Fsingle",{"title":1394,"path":1395,"stem":1396},"Share an automation","\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fsharing","docs\u002Fno-code-tool\u002Fthe-builder\u002Fsharing",{"title":1398,"path":1399,"stem":1400,"children":1401},"Troubleshooting","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Findex",[1402,1403,1407,1485],{"title":1398,"path":1399,"stem":1400},{"title":1404,"path":1405,"stem":1406},"Handle errors in an automation","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferror-handling","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferror-handling",{"title":1408,"path":1409,"stem":1410,"children":1411},"Common errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Findex",[1412,1413,1417,1421,1425,1443,1447],{"title":1408,"path":1409,"stem":1410},{"title":1414,"path":1415,"stem":1416},"Desktop app errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fdesktop-app","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fdesktop-app",{"title":1418,"path":1419,"stem":1420},"General errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fgeneral","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fgeneral",{"title":1422,"path":1423,"stem":1424},"Installation and uninstallation errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Finstallation","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Finstallation",{"title":1426,"path":1427,"stem":1428,"children":1429},"Integration errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations\u002Findex",[1430,1431,1435,1439],{"title":1426,"path":1427,"stem":1428},{"title":1432,"path":1433,"stem":1434},"2Captcha errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations\u002F2captcha","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations\u002F2captcha",{"title":1436,"path":1437,"stem":1438},"AI integration errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations\u002Fai","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations\u002Fai",{"title":1440,"path":1441,"stem":1442},"Google Sheets errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations\u002Fgoogle-sheets","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fintegrations\u002Fgoogle-sheets",{"title":1444,"path":1445,"stem":1446},"Runtime errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fruntime","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fruntime",{"title":1448,"path":1449,"stem":1450,"children":1451},"Step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Findex",[1452,1453,1457,1461,1465,1469,1473,1477,1481],{"title":1448,"path":1449,"stem":1450},{"title":1454,"path":1455,"stem":1456},"Control flow step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fcontrol-flow","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fcontrol-flow",{"title":1458,"path":1459,"stem":1460},"File step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Ffiles","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Ffiles",{"title":1462,"path":1463,"stem":1464},"Interact step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Finteract","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Finteract",{"title":1466,"path":1467,"stem":1468},"Loop step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Floop","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Floop",{"title":1470,"path":1471,"stem":1472},"Other step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fmisc","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fmisc",{"title":1474,"path":1475,"stem":1476},"Navigate step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fnavigate","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fnavigate",{"title":1478,"path":1479,"stem":1480},"Scrape step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fscrape","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fscrape",{"title":1482,"path":1483,"stem":1484},"Webhook and API step errors","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fwebhooks-api","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Ferrors\u002Fsteps\u002Fwebhooks-api",{"title":1486,"path":1487,"stem":1488},"Debug an automation","\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Fhow-to-debug","docs\u002Fno-code-tool\u002Ftroubleshooting\u002Fhow-to-debug",{"title":1490,"path":1491,"stem":1492},"Get support","\u002Fdocs\u002Fsupport","docs\u002Fsupport",{"title":1494,"path":1495,"stem":1496},"Extension uninstalled","\u002Fextension-uninstalled","extension-uninstalled",{"title":1498,"path":1499,"stem":1500},"Browser automation tools and infrastructure","\u002F","index",{"title":1502,"path":1503,"stem":1504,"children":1505},"Infrastructure","\u002Finfrastructure","infrastructure",[1506,1509,1512,1516,1520],{"title":1507,"path":1503,"stem":1508},"Private Browser Infrastructure","infrastructure\u002Findex",{"title":161,"path":1510,"stem":1511},"\u002Finfrastructure\u002F_api","infrastructure\u002F_api",{"title":1513,"path":1514,"stem":1515},"Build with Claude","\u002Finfrastructure\u002F_privacy","infrastructure\u002F_privacy",{"title":1517,"path":1518,"stem":1519},"Cloud Browser Infrastructure","\u002Finfrastructure\u002Fcloud","infrastructure\u002Fcloud",{"title":1521,"path":1522,"stem":1523},"Local Browser Automation on Desktop","\u002Finfrastructure\u002Fdesktop","infrastructure\u002Fdesktop",{"title":1525,"path":1526,"stem":1527},"Install the desktop runner for axiom.ai's browser automation extension","\u002Finstall-desktop-app","install-desktop-app",{"title":1529,"path":1530,"stem":1531},"No-code tool for making browser automations in Chrome","\u002Fno-code-tool","no-code-tool",{"title":1533,"path":1534,"stem":1535},"Pricing","\u002Fpricing","pricing",{"title":1537,"path":1538,"stem":1539},"Privacy Policy","\u002Fprivacy-policy","privacy-policy",{"title":1541,"path":1542,"stem":1543},"No-code steps for browser automation","\u002Fsteps","steps",{"title":1545,"path":1546,"stem":1547},"You're all set","\u002Fsuccess","success",{"title":1549,"path":1550,"stem":1551},"Terms of use","\u002Fterms-of-use","terms-of-use",{"id":1553,"title":17,"body":1554,"date":1641,"description":1642,"extension":1643,"meta":1644,"navigation":1646,"order":1647,"path":730,"seo":1648,"stem":731,"__hash__":1649},"content\u002Fdocs\u002Fno-code-tool\u002Fintegrations\u002Findex.md",{"type":1555,"value":1556,"toc":1635},"minimark",[1557,1611,1616,1619,1622],[1558,1559,1560,1561,1564,1565,1564,1567,1569,1570,1572,1573,1575,1576,1578,1579,1564,1581,1564,1583,1564,1585,1569,1587,1589,1590,1595,1596,1575,1598,1600,1601,1606,1607,1610],"p",{},"The axiom.ai Chrome extension integrates with workflow tools like ",[1562,1563,783],"a",{"href":784},", ",[1562,1566,763],{"href":764},[1562,1568,767],{"href":768},", and ",[1562,1571,775],{"href":776},"; spreadsheets like ",[1562,1574,759],{"href":760}," and ",[1562,1577,29],{"href":752},"; LLM providers like ",[1562,1580,739],{"href":740},[1562,1582,743],{"href":744},[1562,1584,755],{"href":756},[1562,1586,779],{"href":780},[1562,1588,747],{"href":748}," (all via the ",[1562,1591,1592],{"href":1059},[1593,1594,309],"strong",{}," step); and developer tools like ",[1562,1597,735],{"href":736},[1562,1599,771],{"href":772},". For anything else, build your own integration with the ",[1562,1602,1603],{"href":1194},[1593,1604,1605],{},"Trigger webhook"," step. If you'd like an integration that isn't listed, ",[1562,1608,1609],{"href":82},"contact support",".",[1612,1613,1615],"h2",{"id":1614},"available-integrations","Available integrations",[1617,1618],"hr",{},[1620,1621],"docs-cards",{},[1558,1623,1624,1625,1628,1629,1610],{},"Need help? Contact ",[1562,1626,1627],{"href":82},"support"," or ask a question in our ",[1562,1630,1634],{"href":1631,"rel":1632},"https:\u002F\u002Fwww.reddit.com\u002Fr\u002Faxiom_ai",[1633],"nofollow","Reddit community",{"title":1636,"searchDepth":1637,"depth":1637,"links":1638},"",3,[1639],{"id":1614,"depth":1640,"text":1615},2,null,"Connect axiom.ai to Zapier, Make, n8n, Google Sheets, Excel, ChatGPT, Claude, Gemini, Sonar, 2Captcha, Puppeteer, and Relay.app to extend your automations.","md",{"metaTitle":1645},"axiom.ai integrations with Zapier, Make, ChatGPT, Claude, and more",true,4,{"title":17,"description":1642},"pYJEBKbz-NNa6RuC7JbPmFfgS5ArO3zxilS2yMk1XeE",[1651,2155,2465,2689,2948,3163,3385,3852,4971,5632,6519,6732,7428,7743,8158,8620,8901,9118,9239,9457,9691,9897,10323,10522,10848,11381,11677,11793,12074,12242,12376,12748,13104,13392,13686,14255,14325,14592,14857,15106,15310,15808,15955,16129,16218,16515,16811,17396,17711,17997,18016,19729,19920,20207,20524,20820,21132,21405,21672,21776,21982,22259,22650,23937,24314,24546,24807,24998,25015,25298,25814,25831,26110,26294],{"id":1652,"title":1653,"body":1654,"date":2135,"description":2136,"extension":1643,"meta":2137,"navigation":1646,"order":1641,"path":2151,"seo":2152,"stem":2153,"__hash__":2154},"guides\u002Fguides\u002Fai-proofreading.md","Build an AI Proofreading Assistant for any Website",{"type":1555,"value":1655,"toc":2127},[1656,1658,1661,1664,1668,1686,1690,1701,1707,1710,1714,1717,1946,1950,1953,1957,1965,1968,1971,2116],[1617,1657],{},[1558,1659,1660],{},"This template is designed to create an AI assistant that proofreads your website. The assistant retrieves website links from a Google Sheet, opens the link in a Chrome browser, and scrapes the data. Afterwards, it checks for any typos and writes the response back into the Google Sheet alongside the webpage URL. This template requires a ChatGPT account with API key.",[1662,1663],"hero-media",{},[1612,1665,1667],{"id":1666},"get-started-create-your-google-sheet","Get started: create your Google Sheet",[1558,1669,1670,1671,1674,1675,1678,1679,1682,1683,1610],{},"Create a new Google Sheet. You can do this in your Chrome browser by entering the shortcut ",[1593,1672,1673],{},"\"sheet.new\""," into the address bar, assuming you already have an account. Name your sheet something like ",[1593,1676,1677],{},"\"ChatGPT AI Proofreader\""," and set up a tab called ",[1593,1680,1681],{},"\"Links\"",". Add another tab called ",[1593,1684,1685],{},"\"Data\"",[1612,1687,1689],{"id":1688},"install-the-ai-proofreading-template","Install the AI Proofreading template",[1558,1691,1692,1693,1696,1697,1700],{},"To install this AI Proofreading template, click ",[1593,1694,1695],{},"\"Install template\"",". If you’re a new user, you’ll have to click ",[1593,1698,1699],{},"\"Install Chrome extension\""," and create a free axiom.ai account before you can edit the template.",[1558,1702,1703,1704,1610],{},"Once installed, click ",[1593,1705,1706],{},"\"Start\"",[1558,1708,1709],{},"axiom.ai will guide you through the steps you need to configure in the app.",[1612,1711,1713],{"id":1712},"configure-your-ai-proofreading-assistant-in-7-easy-steps","Configure your AI Proofreading Assistant in 7 easy steps",[1558,1715,1716],{},"Please note in step 2.2, you need to select a single block of content with the selector tool.",[1718,1719,1720],"guide",{},[1721,1722,1723,1748],"ul",{},[1724,1725,1726,1729,1730,1734],"li",{},[1593,1727,1728],{},"1.0"," ",[1731,1732,1733],"code",{},"Read data from a Google Sheet",[1721,1735,1736,1742],{},[1724,1737,1738,1741],{},[1731,1739,1740],{},"Spreadsheet",": Search for the Google Sheet you created. Once found, click to select.",[1724,1743,1744,1747],{},[1731,1745,1746],{},"Sheet name",": Choose the sheet tab called 'Amazon product links'.",[1724,1749,1750,1729,1753,1755],{},[1593,1751,1752],{},"2.0",[1731,1754,667],{},[1721,1756,1757,1780,1805,1848,1876,1913],{},[1724,1758,1759,1729,1762,1764],{},[1593,1760,1761],{},"2.1",[1731,1763,1043],{},[1721,1765,1766],{},[1724,1767,1768,1771,1772,1775,1776,1779],{},[1731,1769,1770],{},"Enter URL",": Click ",[1731,1773,1774],{},"Insert Data",", select ",[1731,1777,1778],{},"google-sheet-data",", and select the column with the links in.",[1724,1781,1782,1729,1785,1788],{},[1593,1783,1784],{},"2.2",[1731,1786,1787],{},"Get data from bot's current page",[1721,1789,1790,1796],{},[1724,1791,1792,1795],{},[1731,1793,1794],{},"Select",": Point and click to select the data you wish to scrape. Make a single selection and choose an element that wraps around all the content.",[1724,1797,1798,1801,1802,1610],{},[1731,1799,1800],{},"Max Results",": Set to ",[1731,1803,1804],{},"1",[1724,1806,1807,1729,1810,1813],{},[1593,1808,1809],{},"2.3",[1731,1811,1812],{},"Generate text with ChatGPT",[1721,1814,1815,1821,1839],{},[1724,1816,1817,1820],{},[1731,1818,1819],{},"ChatGPT API key",": Enter your API key.",[1724,1822,1823,1826,1827,1830,1831,1834,1835,1838],{},[1731,1824,1825],{},"Prompt",": Insert the text ",[1731,1828,1829],{},"\"Check this text for spelling mistakes and grammar, return in bullet list compatible with spreadsheet cell -\""," then click ",[1731,1832,1833],{},"Insert data"," followed by ",[1731,1836,1837],{},"[scrape-data]"," to add the scraped data to check.",[1724,1840,1841,1844,1845,1610],{},[1731,1842,1843],{},"Extract values",": Insert the values you want to extract, separated by a comma — for example: ",[1731,1846,1847],{},"name, email, job title",[1724,1849,1850,1729,1853,1856],{},[1593,1851,1852],{},"2.4",[1731,1854,1855],{},"Append or Merge Data",[1721,1857,1858,1868],{},[1724,1859,1860,1863,1864,1867],{},[1731,1861,1862],{},"Data A",": Insert ",[1731,1865,1866],{},"[google-sheet-data]"," and select the column containing the URL.",[1724,1869,1870,1863,1873,1610],{},[1731,1871,1872],{},"Data B",[1731,1874,1875],{},"[chatgpt-output]",[1724,1877,1878,1729,1881,1884],{},[1593,1879,1880],{},"2.5",[1731,1882,1883],{},"Write Data to a Google Sheet",[1721,1885,1886,1890,1895,1904],{},[1724,1887,1888,1741],{},[1731,1889,1740],{},[1724,1891,1892,1894],{},[1731,1893,1746],{},": Choose the tab you created.",[1724,1896,1897,1900,1901,1610],{},[1731,1898,1899],{},"DATA",": Select ",[1731,1902,1903],{},"[appended-data]",[1724,1905,1906,1909,1910,1610],{},[1731,1907,1908],{},"Clear data before writing | Add to existing data",": Set this option to ",[1731,1911,1912],{},"\"Add to existing\"",[1724,1914,1915,1729,1918,1921],{},[1593,1916,1917],{},"2.6",[1731,1919,1920],{},"Delete rows from a Google Sheet",[1721,1922,1923,1927,1932,1939],{},[1724,1924,1925,1741],{},[1731,1926,1740],{},[1724,1928,1929,1931],{},[1731,1930,1746],{},": Choose the tab you created for links.",[1724,1933,1934,1801,1937,1610],{},[1731,1935,1936],{},"First row",[1731,1938,1804],{},[1724,1940,1941,1801,1944,1610],{},[1731,1942,1943],{},"Last row",[1731,1945,1804],{},[1612,1947,1949],{"id":1948},"testing-and-running-your-ai-proofreader","Testing and running your AI proofreader",[1558,1951,1952],{},"We suggest running a test first, stopping the bot after a few loops, and reviewing the data.",[1612,1954,1956],{"id":1955},"customize-your-template","Customize your template",[1558,1958,1959,1960,1964],{},"Like all Axiom ",[1562,1961,1963],{"href":1962},"\u002Fguides","templates",", you can use our no-code bot builder to customize any bot according to your requirements.",[1612,1966,1398],{"id":1967},"troubleshooting",[1558,1969,1970],{},"We recommend you watch the video to troubleshoot.",[1718,1972,1973],{},[1721,1974,1975,1996,2007,2022,2040,2051,2070,2090,2104],{},[1724,1976,1977,1980,1983,1984,1987,1988,1991,1992,1995],{},[1593,1978,1979],{},"Want to set an amount of loops?",[1981,1982],"br",{},"\nIn ",[1731,1985,1986],{},"Step 1.0",", set a ",[1731,1989,1990],{},"Last Cell"," — something like ",[1731,1993,1994],{},"AE50"," will scrape 50 rows.",[1724,1997,1998,2001,1983,2003,2006],{},[1593,1999,2000],{},"Selectors fail to find content?",[1981,2002],{},[1731,2004,2005],{},"Step 2.2 – Get data from bot's current page",", select a single block of content with the selector tool.",[1724,2008,2009,2012,2014,2015,2018,2019,1610],{},[1593,2010,2011],{},"Want to select all content on any website?",[1981,2013],{},"\nIn the same step, use a ",[1562,2016,2017],{"href":1383},"custom selector"," — try ",[1731,2020,2021],{},"body",[1724,2023,2024,2027,2029,2030,2033,2034,2037,2038,1610],{},[1593,2025,2026],{},"Slow running scrape?",[1981,2028],{},"\nIn the same step, toggle ",[1731,2031,2032],{},"Configure scraper",", then set ",[1731,2035,2036],{},"No. of retry..."," to ",[1731,2039,1804],{},[1724,2041,2042,2045,1983,2047,2050],{},[1593,2043,2044],{},"ChatGPT step not working?",[1981,2046],{},[1731,2048,2049],{},"Step 2.3 – Generate text with ChatGPT",", make sure you’ve entered your ChatGPT API key.",[1724,2052,2053,2056,2058,2059,2061,2062,2064,2067,2069],{},[1593,2054,2055],{},"Want better results from ChatGPT?",[1981,2057],{},"\nIn the same step, set the ",[1731,2060,1825],{}," to something like:",[1981,2063],{},[1731,2065,2066],{},"\"Check this text for spelling mistakes and grammar, return in bullet list compatible with spreadsheet cell - [scrape-data]\".",[1981,2068],{},"\nTweak the wording to fine-tune results.",[1724,2071,2072,2075,1983,2077,2080,2081,2083,2084,1575,2086,2083,2088,1610],{},[1593,2073,2074],{},"Wrong data written to sheet?",[1981,2076],{},[1731,2078,2079],{},"Step 2.5 – Write Data to a Google Sheet",", check that ",[1731,2082,1862],{}," is ",[1731,2085,1866],{},[1731,2087,1872],{},[1731,2089,1875],{},[1724,2091,2092,2095,2097,2098,2101,2102,1610],{},[1593,2093,2094],{},"No data written?",[1981,2096],{},"\nIn the same step, check that ",[1731,2099,2100],{},"Data"," is set to ",[1731,2103,1903],{},[1724,2105,2106,2109,2111,2112,2115],{},[1593,2107,2108],{},"Keeps overwriting data?",[1981,2110],{},"\nMake sure ",[1731,2113,2114],{},"Add to existing"," is selected in the same step.",[1558,2117,2118,2119,2122,2123],{},"We offer excellent customer support. If you need help, ",[1562,2120,2121],{"href":82},"get in touch."," You could also read this full guide on how to do ",[1562,2124,2126],{"href":2125},"\u002Fblog\u002Fchatgpt-web-scraping","ChatGPT web scraping.",{"title":1636,"searchDepth":1637,"depth":1637,"links":2128},[2129,2130,2131,2132,2133,2134],{"id":1666,"depth":1640,"text":1667},{"id":1688,"depth":1640,"text":1689},{"id":1712,"depth":1640,"text":1713},{"id":1948,"depth":1640,"text":1949},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"2023-04-04","Learn how to test, run, and customize your AI proofreader using a no-code bot. Includes troubleshooting tips, ChatGPT setup, and data export to Google Sheets.",{"logoFile":2138,"read":2139,"level":2140,"video":2141,"templateId":2142,"type":2143,"format":2144,"intent_type":2145,"intent":2146,"tags":2147,"platfrom":2150},"\u002Ftemplates\u002Fchat-gpt-logo.png","5 minutes","Easy","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FWhq1hgwYxcY",56,"no-code","template","pattern","Generate or transform content using AI",[2148,2149],"ai","scraping",[739],"\u002Fguides\u002Fai-proofreading",{"title":1653,"description":2136},"guides\u002Fai-proofreading","4pDvas5NqHibFUtuqv8Ow70UgUxrUGHugw1LHQ1ei1Y",{"id":2156,"title":2157,"body":2158,"date":1641,"description":2452,"extension":1643,"meta":2453,"navigation":1646,"order":1641,"path":2461,"seo":2462,"stem":2463,"__hash__":2464},"guides\u002Fguides\u002Fapple-shortcuts.md","How to use Apple Shortcuts to trigger an axiom.ai automation",{"type":1555,"value":2159,"toc":2441},[2160,2162,2165,2168,2170,2174,2176,2179,2209,2213,2215,2218,2223,2261,2265,2270,2272,2275,2303,2307,2309,2312,2333,2336,2340,2342,2345,2369,2373,2375,2378,2381,2400,2404,2406,2413,2420,2424,2426,2429,2431,2437],[1617,2161],{},[1558,2163,2164],{},"Users often inspire the best ideas, and we love to explore them. When someone asked if they could trigger a bot on their Mac using Apple Shortcuts, we thought, \"why not?\" We found not only can you do this, but you can also add a button to the macOS Dock for quick access. If you're a coder, you can even trigger a bot from the command line. Plus, you can trigger the bot from your iPhone, iPad, Mac or Apple Watch, making automation even more flexible.",[1558,2166,2167],{},"This guide assumes you already have an automation set up, want to create a trigger using Apple Shortcuts, and have a an axiom.ai subscription that supports webhooks.",[1662,2169],{},[1612,2171,2173],{"id":2172},"getting-started","Getting started",[1617,2175],{},[1558,2177,2178],{},"To get started, you will need the following from the axiom.ai Chrome extension:",[1718,2180,2181],{},[2182,2183,2184,2194,2200],"ol",{},[1724,2185,2186,2189,2190,1610],{},[1593,2187,2188],{},"API key",": The API key is found on the ",[1562,2191,2193],{"href":2192},"\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Fkeys","dashboard",[1724,2195,2196,2199],{},[1593,2197,2198],{},"Automation name",": Get the name of the automation you wish to trigger.",[1724,2201,2202,2205,2206,1610],{},[1593,2203,2204],{},"Endpoint",": The current endpoint is ",[1731,2207,2208],{},"https:\u002F\u002Flar.axiom.ai\u002Fapi\u002Fv3\u002Ftrigger",[1612,2210,2212],{"id":2211},"trigger-an-axiomai-automation-with-apple-shortcuts","Trigger an axiom.ai automation with Apple Shortcuts",[1617,2214],{},[1558,2216,2217],{},"Open the Apple Shortcuts application on your iPhone, iPad, or Mac.",[2219,2220],"img",{"src":2221,"alt":2222},"\u002Fdocs\u002Fguides\u002Fapple-shortcuts-get-contents.jpg","open apple Shortcuts in apple mac app folder",[1718,2224,2225],{},[2182,2226,2227,2233,2243,2255],{},[1724,2228,2229,2232],{},[1593,2230,2231],{},"Create shortcut",": Tap the \"+\" icon to create a new Shortcut.",[1724,2234,2235,2238,2239,2242],{},[1593,2236,2237],{},"Add step",": Add a ",[1593,2240,2241],{},"get contents from URL"," action, set the URL to the axiom.ai endpoint from above.",[1724,2244,2245,2248,2249,2037,2252,1610],{},[1593,2246,2247],{},"Configure",": Change the ",[1593,2250,2251],{},"method",[1593,2253,2254],{},"POST",[1724,2256,2257,2260],{},[1593,2258,2259],{},"Request body",": Add two key\u002Fvalue pairs. The first item will have a key called \"key\" and a value of your API key, the second will be called \"name\" and will be the automation name.",[2219,2262],{"src":2263,"alt":2264},"\u002Fdocs\u002Fguides\u002Fapple-shortcuts-get-contents-config-2.jpg","using Google App Script API request to trigger axiom.ai bot run",[2266,2267,2269],"h3",{"id":2268},"set-up-the-apple-shortcut-to-open-the-browser","Set up the Apple Shortcut to open the browser",[1617,2271],{},[1558,2273,2274],{},"Optionally, you can set your automation to automatically open the URL from the cloud run on your device. Add the following actions to your Apple Shortcut.",[1718,2276,2277],{},[2182,2278,2279,2291,2297],{},[1724,2280,2281,2238,2284,2287,2288,2290],{},[1593,2282,2283],{},"Get dictionary value",[1593,2285,2286],{},"get dictionary value"," action below the ",[1593,2289,2241],{}," action. This action converts the JSON response into a dictionary so you can work with its contents.",[1724,2292,2293,2296],{},[1593,2294,2295],{},"Get value for key",": In the \"key\" field, type \"OPEN LINK IN BROWSER\" (case sensitive).",[1724,2298,2299,2302],{},[1593,2300,2301],{},"Open URLs",": Set the value to \"dictionary value\".",[2266,2304,2306],{"id":2305},"trigger-a-bot-run-from-your-mac-dock","Trigger a bot run from your Mac dock",[1617,2308],{},[1558,2310,2311],{},"Your Apple Shortcut can be added to your macOS dock, allowing you easy access to your triggers with a single click.",[1718,2313,2314],{},[2182,2315,2316,2323,2326],{},[1724,2317,2318,2319,2322],{},"Open the ",[1593,2320,2321],{},"\"Shortcuts app\""," on your Mac.",[1724,2324,2325],{},"Right-click (or Control-click) on the shortcut you want to add to the Dock.",[1724,2327,2328,2329,2332],{},"Select ",[1593,2330,2331],{},"\"Add to Dock\""," from the context menu.",[2219,2334],{"src":2335,"alt":2264},"\u002Fdocs\u002Fguides\u002Fmac-dock.jpg",[2266,2337,2339],{"id":2338},"trigger-a-bot-run-from-the-command-line","Trigger a bot run from the command line",[1617,2341],{},[1558,2343,2344],{},"Apple developers have made it possible to trigger Apple Shortcuts from the command line. Open the Terminal and type the following command:",[2346,2347,2351],"pre",{"className":2348,"code":2349,"language":2350,"meta":1636,"style":1636},"language-bash shiki shiki-themes github-light-default github-dark-default","shortcuts run \"My bot's name\"\n","bash",[1731,2352,2353],{"__ignoreMap":1636},[2354,2355,2358,2362,2366],"span",{"class":2356,"line":2357},"line",1,[2354,2359,2361],{"class":2360},"sTDnQ","shortcuts",[2354,2363,2365],{"class":2364},"sSVrQ"," run",[2354,2367,2368],{"class":2364}," \"My bot's name\"\n",[2266,2370,2372],{"id":2371},"trigger-bot-runs-with-siri","Trigger bot runs with Siri",[1617,2374],{},[1558,2376,2377],{},"You can trigger your Shortcuts using Siri, which means you can run your bot tasks in the axiom.ai cloud using voice commands.",[1558,2379,2380],{},"The following prompt will allow you to run your Shortcut, which will trigger your axiom.ai automation:",[2346,2382,2386],{"className":2383,"code":2384,"language":2385,"meta":1636,"style":1636},"language-js shiki shiki-themes github-light-default github-dark-default","\"Hi Siri, run shortcut\" then \"Name of shortcut\"\n","js",[1731,2387,2388],{"__ignoreMap":1636},[2354,2389,2390,2393,2397],{"class":2356,"line":2357},[2354,2391,2392],{"class":2364},"\"Hi Siri, run shortcut\"",[2354,2394,2396],{"class":2395},"s4rv2"," then ",[2354,2398,2399],{"class":2364},"\"Name of shortcut\"\n",[1612,2401,2403],{"id":2402},"testing-your-workflow","Testing your workflow",[1617,2405],{},[1558,2407,2408,2409,2412],{},"Test the shortcut by tapping ",[1593,2410,2411],{},"run",". Apple Shortcuts will display any error messages and you should follow these for more information.",[1558,2414,2415,2416,1610],{},"If your automation is triggered successfully but the automation has run into an error, you will find these in your ",[1562,2417,2419],{"href":2418},"\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Fhow-to-debug#run-reports","run reports",[1612,2421,2423],{"id":2422},"wrapping-up","Wrapping up",[1617,2425],{},[1558,2427,2428],{},"Apple Shortcuts allows for you to create powerful shortcuts that can be powered up with axiom.ai. From triggering your automations based on your device configuration, to being able to trigger your automations from your Apple Watch, Apple Shortcuts has you covered. We'd love to hear what you use Apple Shortcuts for with your automations!",[1617,2430],{},[1558,2432,2433],{},[2434,2435,2436],"em",{},"Information valid as of 29th October 2024, tested on iOS18, iPadOS18, macOS15.",[2438,2439,2440],"style",{},"html pre.shiki code .sTDnQ, html code.shiki .sTDnQ{--shiki-default:#953800;--shiki-dark:#FFA657}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}",{"title":1636,"searchDepth":1637,"depth":1637,"links":2442},[2443,2444,2450,2451],{"id":2172,"depth":1640,"text":2173},{"id":2211,"depth":1640,"text":2212,"children":2445},[2446,2447,2448,2449],{"id":2268,"depth":1637,"text":2269},{"id":2305,"depth":1637,"text":2306},{"id":2338,"depth":1637,"text":2339},{"id":2371,"depth":1637,"text":2372},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"Learn how to set up an Apple shortcut that can trigger a bot from your dock or command line for faster automation. This guide covers creating a shortcut, configuring it to work with desktop apps, and using the command line to run the bot, streamlining your workflow with ease.",{"type":2143,"format":1718,"intent_type":2145,"intent":2454,"tags":2455,"platfrom":2458,"video":2460},"Move data between apps",[2456,2457],"api","trigger",[2459],"Mac","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FwE3PZCeivAI?rel=0&amp;","\u002Fguides\u002Fapple-shortcuts",{"title":2157,"description":2452},"guides\u002Fapple-shortcuts","jucW4uOTjSAvYiU8YOf-98E6nDmLA_9J5sMRpkz-0KA",{"id":2466,"title":2467,"body":2468,"date":2669,"description":2670,"extension":1643,"meta":2671,"navigation":1646,"order":1641,"path":2685,"seo":2686,"stem":2687,"__hash__":2688},"guides\u002Fguides\u002Fautomate-facebook-messages.md","How to automate messages on Facebook",{"type":1555,"value":2469,"toc":2661},[2470,2472,2475,2477,2481,2488,2492,2501,2504,2506,2510,2611,2615,2621,2623,2631,2633,2638,2657],[1617,2471],{},[1558,2473,2474],{},"The Facebook Messenger bot sends direct messages (DMs) in Chrome, sourced from a Google Sheet. It cycles through profile links in the sheet, opens them in Chrome, clicks on the message button, types a message, and presses return to send. After sending a message, the bot deletes the row and proceeds to the next profile.",[1662,2476],{},[1612,2478,2480],{"id":2479},"get-started-set-up-your-google-sheet","Get started: Set up your Google Sheet",[1558,2482,2483,2484,2487],{},"Create a new Google Sheet. You can do this in your Chrome browser by typing 'sheet.new' into the address bar, assuming you have a Google account. Name your sheet something like ",[1593,2485,2486],{},"\"Facebook Messenger bot\"",".. Set up a tab with profile links to message.",[1612,2489,2491],{"id":2490},"install-the-facebook-messenger-bot","Install the Facebook Messenger bot",[1558,2493,2494,2495,2497,2498,2500],{},"To install this Facebook Messenger bot, click ",[1593,2496,1695],{},".. If you’re a new user, you’ll have to click ",[1593,2499,1699],{},"., then create a free axiom.ai account to edit the template.",[1558,2502,2503],{},"Once installed, click 'Start'.",[1558,2505,1709],{},[1612,2507,2509],{"id":2508},"configure-your-facebook-messenger-bot-in-four-easy-steps","Configure your Facebook Messenger bot in four easy steps",[1718,2511,2512,2608],{},[1721,2513,2514,2531],{},[1724,2515,2516,1729,2518,2520],{},[1593,2517,1986],{},[1731,2519,1733],{},[1721,2521,2522,2526],{},[1724,2523,2524,1741],{},[1731,2525,1740],{},[1724,2527,2528,2530],{},[1731,2529,1746],{},": Choose the tab with the Facebook profile links.",[1724,2532,2533,1729,2536,2538],{},[1593,2534,2535],{},"Step 2.0",[1731,2537,667],{},[1721,2539,2540,2558,2566,2582,2590],{},[1724,2541,2542,1729,2545,2548],{},[1593,2543,2544],{},"Step 2.1",[1731,2546,2547],{},"Go to page: Profile page",[1721,2549,2550],{},[1724,2551,2552,2554,2555,2557],{},[1731,2553,1770],{},": Click 'Insert data', choose ",[1731,2556,1778],{},", and select the column with Facebook profile links.",[1724,2559,2560,1729,2563],{},[1593,2561,2562],{},"Step 2.2",[1731,2564,2565],{},"Click Element: Message^",[1724,2567,2568,1729,2571,2574],{},[1593,2569,2570],{},"Step 2.3",[1731,2572,2573],{},"Enter Text: Message",[1721,2575,2576],{},[1724,2577,2578,2581],{},[1731,2579,2580],{},"Text",": Input the message to be sent.",[1724,2583,2584,1729,2587],{},[1593,2585,2586],{},"Step 2.4",[1731,2588,2589],{},"Press Key(s): Send message^",[1724,2591,2592,1729,2595,2597],{},[1593,2593,2594],{},"Step 2.5",[1731,2596,1920],{},[1721,2598,2599,2603],{},[1724,2600,2601,1741],{},[1731,2602,1740],{},[1724,2604,2605,2607],{},[1731,2606,1746],{},": Choose the tab with Facebook links.",[1558,2609,2610],{},"^ Preconfigured",[1612,2612,2614],{"id":2613},"run-your-facebook-messenger-bot","Run your Facebook Messenger bot",[1558,2616,2617,2618,1610],{},"To test this Facebook Messenger bot, disable step 2.2 to prevent messages being sent.\nIf you wish to schedule the bot ",[1562,2619,2620],{"href":638},"add steps to login",[1612,2622,1956],{"id":1955},[1558,2624,1959,2625,2627,2628,1610],{},[1562,2626,1963],{"href":1962},", you can use our no-code bot builder to customize any bot according to your requirements. For example Step 2.3 you could personalise the message by passing in a name from the Google Sheet, simply click ",[1593,2629,2630],{},"\"Insert data\"",[1612,2632,1398],{"id":1967},[1558,2634,2635,2636,1610],{},"We recommend you watch the video to troubleshoot. If you wish to schedule the bot you will need to share the Cookie in settings or ",[1562,2637,2620],{"href":638},[1718,2639,2640],{},[1721,2641,2642,2651],{},[1724,2643,2644,2647,2648,2650],{},[1593,2645,2646],{},"Message button not clicked?"," Click ",[1731,2649,1794],{}," and reselect the button.",[1724,2652,2653,2656],{},[1593,2654,2655],{},"Message not being sent?"," Try re-recording the Return key action.",[1558,2658,2118,2659],{},[1562,2660,2121],{"href":82},{"title":1636,"searchDepth":1637,"depth":1637,"links":2662},[2663,2664,2665,2666,2667,2668],{"id":2479,"depth":1640,"text":2480},{"id":2490,"depth":1640,"text":2491},{"id":2508,"depth":1640,"text":2509},{"id":2613,"depth":1640,"text":2614},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"2022-04-07","This guide shows how to automate sending Facebook Messenger messages using a Google Sheet and axiom.ai’s no-code bot.",{"pinned":1646,"read":2672,"level":2140,"video":2673,"templateId":2674,"type":2143,"format":2144,"intent_type":2675,"intent":2676,"tags":2677,"platfrom":2683},"3 minutes","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FIIQyYGVcjUY",55,"usecase","Interact with pages",[2678,2679,2680,2681,2682],"social-media","dm","messaging","data entry","google sheets",[2684],"Facebook","\u002Fguides\u002Fautomate-facebook-messages",{"title":2467,"description":2670},"guides\u002Fautomate-facebook-messages","PJEF8Dvc_FkQ8r4wZTPTx18uh9Gv20EB_r1u8pl85a0",{"id":2690,"title":2691,"body":2692,"date":2669,"description":2936,"extension":1643,"meta":2937,"navigation":1646,"order":1641,"path":2944,"seo":2945,"stem":2946,"__hash__":2947},"guides\u002Fguides\u002Fautomate-facebook-posts.md","How to automate posting to Facebook with a bot",{"type":1555,"value":2693,"toc":2928},[2694,2696,2703,2705,2707,2715,2719,2725,2729,2731,2735,2842,2846,2856,2858,2862,2864,2868,2919],[1617,2695],{},[1558,2697,2698,2699,2702],{},"This Facebook automation template uses a bot to post content from a Google Sheet to Facebook without requiring an API. The bot retrieves data from the Sheet, opens Facebook in Chrome, clicks on ",[1593,2700,2701],{},"\"What's on your mind?\""," then inputs the data into the Facebook post web form, emulating your actions. After clicking post the bot removes the processed row from the Sheet.",[1662,2704],{},[1612,2706,2480],{"id":2479},[1558,2708,1670,2709,2711,2712,1610],{},[1593,2710,1673],{},", assuming you already have an account. Name your sheet something like ",[1593,2713,2714],{},"\"Facebook posts\"",[1612,2716,2718],{"id":2717},"install-the-facebook-post-bot","Install the Facebook post bot",[1558,2720,2721,2722,2724],{},"To install this FB bot, click ",[1593,2723,1695],{},". If you’re a new user, you’ll have to click 'Install Chrome extension' and create a free axiom.ai account before you can edit the template.",[1558,2726,1703,2727,1610],{},[1593,2728,1706],{},[1558,2730,1709],{},[1612,2732,2734],{"id":2733},"configure-your-facebook-post-bot-in-four-easy-steps","Configure your Facebook post bot in four easy steps",[1718,2736,2737],{},[1721,2738,2739,2757],{},[1724,2740,2741,1729,2743,2745],{},[1593,2742,1728],{},[1731,2744,1733],{},[1721,2746,2747,2752],{},[1724,2748,2749,2751],{},[1731,2750,1740],{},": Search for the Google Sheet you created. Once found, click to select",[1724,2753,2754,2756],{},[1731,2755,1746],{},": Choose the tab with the posts in it",[1724,2758,2759,1729,2761,2763],{},[1593,2760,1752],{},[1731,2762,667],{},[1721,2764,2765,2772,2779,2795,2802,2818,2825],{},[1724,2766,2767,1729,2769],{},[1593,2768,1761],{},[1731,2770,2771],{},"Go to page: facebook.com^",[1724,2773,2774,1729,2776],{},[1593,2775,1784],{},[1731,2777,2778],{},"Click element: What's on your mind?^",[1724,2780,2781,1729,2783,2786],{},[1593,2782,1809],{},[1731,2784,2785],{},"Enter text: Post message",[1721,2787,2788],{},[1724,2789,2790,2792,2793],{},[1731,2791,2580],{},": Click 'Insert data', select ",[1731,2794,1866],{},[1724,2796,2797,1729,2799],{},[1593,2798,1852],{},[1731,2800,2801],{},"Click element: Picture icon button^",[1724,2803,2804,1729,2806,2809],{},[1593,2805,1880],{},[1731,2807,2808],{},"Upload a file: Grey upload field",[1721,2810,2811],{},[1724,2812,2813,2792,2816],{},[1731,2814,2815],{},"File Path",[1731,2817,1866],{},[1724,2819,2820,1729,2822],{},[1593,2821,1917],{},[1731,2823,2824],{},"Click element: Post^",[1724,2826,2827,1729,2830,2832],{},[1593,2828,2829],{},"2.7",[1731,2831,1920],{},[1721,2833,2834,2838],{},[1724,2835,2836,2751],{},[1731,2837,1740],{},[1724,2839,2840,2756],{},[1731,2841,1746],{},[1612,2843,2845],{"id":2844},"run-your-facebook-post-bot","Run your Facebook post bot",[1558,2847,2848,2849,2851,2852,2855],{},"To test the Facebook bot, you should first disable step 2.6 or delete the test post on Facebook. It's necessary to run the bot while being logged into Facebook, as this will allow the sharing of cookies and enable Axiom to open Facebook in a logged-in state.  If you wish to schedule the bot, ",[1562,2850,2620],{"href":638},". The upload file step means this bot only runs on the desktop app. To run in the cloud simply replace the 'Upload files' step with the ",[1562,2853,2854],{"href":1206},"'Upload from Google drive'"," step.",[1612,2857,1956],{"id":1955},[1558,2859,1959,2860,1964],{},[1562,2861,1963],{"href":1962},[1612,2863,1398],{"id":1967},[1558,2865,2635,2866,1610],{},[1562,2867,2620],{"href":638},[1718,2869,2870],{},[1721,2871,2872,2884,2894,2900,2910],{},[1724,2873,2874,2877,2878,2880,2881,1610],{},[1593,2875,2876],{},"'What's on your mind?' button not found?","\nReselect the button. It's using the ",[1562,2879,2017],{"href":1383}," setting ",[1731,2882,2883],{},"'element text'",[1724,2885,2886,2889,2890,2893],{},[1593,2887,2888],{},"Text not entering?","\nReselect the ",[1731,2891,2892],{},"'What's on your mind?'"," text input field.",[1724,2895,2896,2899],{},[1593,2897,2898],{},"Image icon not found?","\nReselect the picture icon element.",[1724,2901,2902,2905,2906,2909],{},[1593,2903,2904],{},"Upload field not found?","\nReselect the grey ",[1593,2907,2908],{},"\"Add photos\u002Fvideos\""," upload area.",[1724,2911,2912,2915,2918],{},[1593,2913,2914],{},"File not uploading?",[1562,2916,2917],{"href":1210},"Add a wait step"," after the upload, especially for large files.",[1558,2920,2118,2921,2923,2924],{},[1562,2922,2121],{"href":82},"\nTo learn more, read this full in-depth guide on automating ",[1562,2925,2927],{"href":2926},"\u002Fblog\u002Fhow-to-automate-facebook-posts","posting to facebook.",{"title":1636,"searchDepth":1637,"depth":1637,"links":2929},[2930,2931,2932,2933,2934,2935],{"id":2479,"depth":1640,"text":2480},{"id":2717,"depth":1640,"text":2718},{"id":2733,"depth":1640,"text":2734},{"id":2844,"depth":1640,"text":2845},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"This guide explains how to automate posting to Facebook using a no-code bot from axiom.ai. Learn how to post from a Google Sheet without using the API.",{"pinned":1646,"read":2938,"level":2140,"video":2939,"templateId":2940,"type":2143,"format":2144,"intent_type":2675,"intent":2676,"tags":2941,"platfrom":2943},"4 minutes","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fn4OPAr1eiQ8",30,[2678,2942,2682],"posting",[2684],"\u002Fguides\u002Fautomate-facebook-posts",{"title":2691,"description":2936},"guides\u002Fautomate-facebook-posts","HavdTDWEWX014xj_KAX-d4MMh-HVaCNQ0hfrqYU1_O4",{"id":2949,"title":2950,"body":2951,"date":2669,"description":3149,"extension":1643,"meta":3150,"navigation":1646,"order":1641,"path":3159,"seo":3160,"stem":3161,"__hash__":3162},"guides\u002Fguides\u002Fautomate-gmail-inbox-clean.md","How to clean up your overflowing Gmail Inbox",{"type":1555,"value":2952,"toc":3142},[2953,2955,2958,2960,2964,2967,2969,2972,2976,3005,3009,3012,3014,3018,3022,3024,3132],[1617,2954],{},[1558,2956,2957],{},"This Gmail inbox cleaner template uses search terms to locate and delete emails. It inputs terms into 'Search in mail', submits, selects all emails, clicks 'Select all conversations that match this search' for bulk deletion, or just deletes emails directly if the option is not available.",[1662,2959],{},[1612,2961,2963],{"id":2962},"get-started-install-the-gmail-inbox-cleaner","Get started: install the Gmail inbox cleaner",[1558,2965,2966],{},"To install this Gmail inbox cleaner, click 'Install template'. If you’re a new user, you’ll have to click 'Install Chrome extension' and create a free axiom.ai account before you can edit the template.",[1558,2968,2503],{},[1558,2970,2971],{},"axiom.ai will guide you through the single step you need to configure in the app.",[1612,2973,2975],{"id":2974},"configure-your-gmail-inbox-cleaner-in-60-seconds","Configure your Gmail inbox cleaner in 60 seconds",[1718,2977,2978],{},[1721,2979,2980,2996],{},[1724,2981,2982,1729,2984,2987,2988],{},[1593,2983,1986],{},[1731,2985,2986],{},"Enter custom data:"," Add terms to search by",[1721,2989,2990],{},[1724,2991,2992,2995],{},[1731,2993,2994],{},"Custom data",": Enter emails or search terms, one per line.",[1724,2997,2998,3001],{},[1593,2999,3000],{},"Step 2.0 – 3.8",[1721,3002,3003],{},[1724,3004,2610],{},[1612,3006,3008],{"id":3007},"run-your-gmail-inbox-cleaner","Run your Gmail inbox cleaner",[1558,3010,3011],{},"For safety, first run a test using non-critical email addresses to search and remove.",[1612,3013,1956],{"id":1955},[1558,3015,1959,3016,1964],{},[1562,3017,1963],{"href":1962},[1612,3019,3021],{"id":3020},"trouibleshooting","Trouibleshooting",[1558,3023,1970],{},[1718,3025,3026],{},[1721,3027,3028,3039,3053,3064,3075,3086,3096,3110,3121],{},[1724,3029,3030,3033,1983,3035,3038],{},[1593,3031,3032],{},"Loops once?",[1981,3034],{},[1731,3036,3037],{},"Step 1.0 – Enter custom data",", check for blank spaces in the input field.",[1724,3040,3041,3044,1983,3046,3049,3050,1610],{},[1593,3042,3043],{},"Wrong URL?",[1981,3045],{},[1731,3047,3048],{},"Step 2.0 – Go to page",", make sure the URL is set to ",[1731,3051,3052],{},"https:\u002F\u002Fmail.google.com\u002Fmail\u002Fu\u002F0\u002F#inbox",[1724,3054,3055,3058,1983,3060,3063],{},[1593,3056,3057],{},"Search not working?",[1981,3059],{},[1731,3061,3062],{},"Step 3.1 – Enter text",", reselect the \"Search in mail\" input field.",[1724,3065,3066,3069,1983,3071,3074],{},[1593,3067,3068],{},"Select All not clicked?",[1981,3070],{},[1731,3072,3073],{},"Step 3.3 – Click element",", reselect the \"Select All\" tick box.",[1724,3076,3077,3080,1983,3082,3085],{},[1593,3078,3079],{},"Link not clicked?",[1981,3081],{},[1731,3083,3084],{},"Step 3.4 – Get data from bot's current page",", reselect \"Select all conversations that match this search\".",[1724,3087,3088,3091,3093,3094,1610],{},[1593,3089,3090],{},"Scraper retrying too long?",[1981,3092],{},"\nIn the same step, change \"Number of attempts when results not found\" to ",[1731,3095,1804],{},[1724,3097,3098,3101,1983,3103,3106,3107,3109],{},[1593,3099,3100],{},"Condition not working?",[1981,3102],{},[1731,3104,3105],{},"Step 3.5 – If condition",", make sure ",[1731,3108,1837],{}," is set.",[1724,3111,3112,3115,1983,3117,3120],{},[1593,3113,3114],{},"Delete not clicked?",[1981,3116],{},[1731,3118,3119],{},"Step 3.7 – Click element",", reselect the \"Delete\" button.",[1724,3122,3123,3126,1983,3128,3131],{},[1593,3124,3125],{},"Bot behaves randomly?",[1981,3127],{},[1731,3129,3130],{},"Step 3.8 – Wait",", increase the wait time.",[1558,3133,2118,3134,3136,3137,3141],{},[1562,3135,2121],{"href":82},"\nIf you are keen to learn more about browser automation, why not create an ",[1562,3138,3140],{"href":3139},"\u002Fblog\u002Fhow-to-send-email-blast","email blast"," using Gmail?",{"title":1636,"searchDepth":1637,"depth":1637,"links":3143},[3144,3145,3146,3147,3148],{"id":2962,"depth":1640,"text":2963},{"id":2974,"depth":1640,"text":2975},{"id":3007,"depth":1640,"text":3008},{"id":1955,"depth":1640,"text":1956},{"id":3020,"depth":1640,"text":3021},"This guide shows how to automatically delete emails in Gmail using axiom.ai’s no-code inbox cleaner. Learn to search, select, and bulk delete emails step by step.",{"read":3151,"level":2140,"video":3152,"templateId":3153,"type":2143,"format":2144,"intent_type":2675,"intent":3154,"tags":3155,"platfrom":3157},"2 minutes","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F3a0IKP3i_EY",13,"Send and manage emails",[3156],"email",[3158],"Gmail","\u002Fguides\u002Fautomate-gmail-inbox-clean",{"title":2950,"description":3149},"guides\u002Fautomate-gmail-inbox-clean","AtpQC69ZlgqlmCEiT92loTF1hKrp3y9V5FsxJxVx3Zk",{"id":3164,"title":3165,"body":3166,"date":3371,"description":3372,"extension":1643,"meta":3373,"navigation":1646,"order":1641,"path":3381,"seo":3382,"stem":3383,"__hash__":3384},"guides\u002Fguides\u002Fautomate-screenshots.md","How to automate screenshots",{"type":1555,"value":3167,"toc":3363},[3168,3170,3173,3175,3177,3182,3186,3193,3197,3199,3203,3306,3310,3313,3315,3323,3325,3327,3359],[1617,3169],{},[1558,3171,3172],{},"This AI bot template captures screenshots of webpages, operating by reading links from a Google Sheet, loading each page in Chrome, and taking a screenshot, followed by link deletion after processing. The screenshot is downloaded to your desktop.",[1662,3174],{},[1612,3176,1667],{"id":1666},[1558,3178,1670,3179,3181],{},[1593,3180,1673],{},", assuming you already have an account. Name your sheet something like 'Automate screenshots’ and set up a tab called 'Website links'.",[1612,3183,3185],{"id":3184},"install-the-screenshot-bot","Install the Screenshot bot",[1558,3187,3188,3189,1696,3191,1700],{},"To install this Screenshot bot click ",[1593,3190,1695],{},[1593,3192,1699],{},[1558,3194,1703,3195,1610],{},[1593,3196,1706],{},[1558,3198,1709],{},[1612,3200,3202],{"id":3201},"configure-your-screenshot-bot-in-minutes","Configure your Screenshot bot in minutes",[1718,3204,3205],{},[1721,3206,3207,3224],{},[1724,3208,3209,1729,3211,3213],{},[1593,3210,1728],{},[1731,3212,1733],{},[1721,3214,3215,3219],{},[1724,3216,3217,1741],{},[1731,3218,1740],{},[1724,3220,3221,3223],{},[1731,3222,1746],{},": Choose the sheet tab called 'Website links'.",[1724,3225,3226,1729,3228,3230],{},[1593,3227,1752],{},[1731,3229,667],{},[1721,3231,3232,3248,3280],{},[1724,3233,3234,1729,3236,3238],{},[1593,3235,1761],{},[1731,3237,1043],{},[1721,3239,3240],{},[1724,3241,3242,3244,3245,3247],{},[1731,3243,1770],{},": Click 'Insert Data', select ",[1731,3246,1778],{},", and choose the column with the links in it.",[1724,3249,3250,1729,3252,3255],{},[1593,3251,1784],{},[1731,3253,3254],{},"Save screenshot locally",[1721,3256,3257,3263,3269,3275],{},[1724,3258,3259,3262],{},[1731,3260,3261],{},"Folder",": Set a folder to download to.",[1724,3264,3265,3268],{},[1731,3266,3267],{},"File name",": Optional.",[1724,3270,3271,3274],{},[1731,3272,3273],{},"File type",": Select file types JPEG or PNG.",[1724,3276,3277,3268],{},[1731,3278,3279],{},"Overwrite existing file",[1724,3281,3282,1729,3284,3286],{},[1593,3283,1809],{},[1731,3285,1920],{},[1721,3287,3288,3292,3297,3302],{},[1724,3289,3290,1741],{},[1731,3291,1740],{},[1724,3293,3294,3296],{},[1731,3295,1746],{},": Choose the tab you created for website links.",[1724,3298,3299,3301],{},[1731,3300,1936],{},": Set to 1.",[1724,3303,3304,3301],{},[1731,3305,1943],{},[1612,3307,3309],{"id":3308},"run-your-screenshot-bot","Run your Screenshot bot",[1558,3311,3312],{},"We suggest running a test first, stopping the bot after a few loops, and reviewing the screenshots.",[1612,3314,1956],{"id":1955},[1558,3316,1959,3317,3319,3320,2855],{},[1562,3318,1963],{"href":1962},", you can use our no-code bot builder to customize any bot according to your requirements.\nIf you wish to download files whilst running in the cloud replace step 2.2 with the ",[1562,3321,3322],{"href":996},"Download to Google Drive",[1612,3324,1398],{"id":1967},[1558,3326,1970],{},[1718,3328,3329],{},[1721,3330,3331,3348],{},[1724,3332,3333,3336,1983,3338,3340,3341,3343,3344,3347],{},[1593,3334,3335],{},"Want to set a specific number of loops?",[1981,3337],{},[1731,3339,1986],{},", set the ",[1731,3342,1990],{}," to something like ",[1731,3345,3346],{},"AE100"," to scrape 100 rows.",[1724,3349,3350,3353,1983,3355,3358],{},[1593,3351,3352],{},"Files not saving?",[1981,3354],{},[1731,3356,3357],{},"Step 2.2 – Save screenshot locally",", check folder permissions on your computer.",[1558,3360,2118,3361],{},[1562,3362,2121],{"href":82},{"title":1636,"searchDepth":1637,"depth":1637,"links":3364},[3365,3366,3367,3368,3369,3370],{"id":1666,"depth":1640,"text":1667},{"id":3184,"depth":1640,"text":3185},{"id":3201,"depth":1640,"text":3202},{"id":3308,"depth":1640,"text":3309},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"2022-01-30","This guide explains how to automate webpage screenshots using axiom.ai’s no-code bot. Capture pages from a Google Sheet and save screenshots to your desktop.",{"logoFile":3374,"read":2672,"video":3375,"templateId":3376,"type":2143,"format":2144,"intent_type":3377,"intent":2676,"tags":3378,"platfrom":3379},"\u002Ftemplates\u002Faxiom-template-icon.png","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FBJB-siW113A",48,"workflow",[2149,2682],[3380],"Any","\u002Fguides\u002Fautomate-screenshots",{"title":3165,"description":3372},"guides\u002Fautomate-screenshots","poZFHQiU-KBQxIrYiJy9tvAaZMjswtpUw7sTeZpi1-M",{"id":3386,"title":3387,"body":3388,"date":1641,"description":3844,"extension":1643,"meta":3845,"navigation":1646,"order":1641,"path":3848,"seo":3849,"stem":3850,"__hash__":3851},"guides\u002Fguides\u002Fautomator.md","How to use Apple Automator to trigger an axiom.ai automation",{"type":1555,"value":3389,"toc":3838},[3390,3392,3395,3397,3400,3423,3427,3430,3441,3466,3469,3814,3816,3819,3825,3827,3830,3835],[1617,3391],{},[1558,3393,3394],{},"Automator is a macOS application that allows users to create custom workflows, tasks, and scripts to automate repetitive actions and streamline processes without needing extensive programming knowledge. This comes pre-installed on all macOS systems.",[1612,3396,2173],{"id":2172},[1558,3398,3399],{},"To get started, you will need thing from the axiom.ai Chrome extension:",[1718,3401,3402],{},[2182,3403,3404,3411,3416],{},[1724,3405,3406,3408,3409,1610],{},[1593,3407,2188],{}," - The API key is found on the ",[1562,3410,2193],{"href":2192},[1724,3412,3413,3415],{},[1593,3414,2198],{}," - Get the name of the automation you wish to trigger.",[1724,3417,3418,3420,3421,1610],{},[1593,3419,2204],{}," - The current endpoint is ",[1731,3422,2208],{},[1612,3424,3426],{"id":3425},"trigger-an-axiomai-automation-using-automator","Trigger an axiom.ai automation using Automator",[1558,3428,3429],{},"To get started, create your Automator workflow as you normally would, when you're ready to trigger your automation, continue this guide.",[1558,3431,3432,3433,3436,3437,3440],{},"Using the data from above, we will construct multiple variables called ",[1731,3434,3435],{},"webhookURL",", to store the URL of the axiom.ai API, and ",[1731,3438,3439],{},"jsonData"," to construct the payload that is to be sent to the automation. There are numerous modifications that will be needed:",[1718,3442,3443],{},[1721,3444,3445,3451,3457],{},[1724,3446,3447,3450],{},[1731,3448,3449],{},"\u003CYOUR_KEY>"," - This should be replaced with your API key.",[1724,3452,3453,3456],{},[1731,3454,3455],{},"\u003CAUTOMATION_NAME>"," - This should be replaced with your automation name.",[1724,3458,3459,3462,3463,3465],{},[1731,3460,3461],{},"data"," - The contents inside of the ",[1731,3464,3461],{}," key should be replaced with your own data, if you wish to send data to your automation. This should be an array of arrays, as is in the example.",[1558,3467,3468],{},"When ready, add a \"Run AppleScript\" component to your workflow to add thing script into your workflow and trigger your automation:",[2346,3470,3474],{"className":3471,"code":3472,"language":3473,"meta":1636,"style":1636},"language-sh shiki shiki-themes github-light-default github-dark-default","on run\n    -- The endpoint from above\n    set webhookURL to \"https:\u002F\u002Flar.axiom.ai\u002Fapi\u002Fv3\u002Ftrigger\"\n\n    -- This is the payload that is being sent to the axiom.ai API. All quotation marks inside the curly brackets will need to be escaped.\n    set jsonData to \"{ \\\"key\\\": \\\"\u003CYOUR_KEY>\\\", \\\"name\\\": \\\"\u003CAUTOMATION_NAME>\\\", \\\"data\\\": [[\\\"Item 1\\\", \\\"Item 2\\\"]] }\"\n    \n    try\n        -- Send the POST request using cURL\n        set response to do shell script \"curl -X POST \" & quoted form of webhookURL & \" -H 'Content-Type: application\u002Fjson' -d \" & quoted form of jsonData\n        return \"Webhook successful: \" & response\n    on error errorMsg\n        return \"Webhook failed: \" & errMsg\n    end try\nend run\n","sh",[1731,3475,3476,3484,3501,3516,3521,3593,3671,3677,3683,3706,3759,3773,3785,3797,3806],{"__ignoreMap":1636},[2354,3477,3478,3481],{"class":2356,"line":2357},[2354,3479,3480],{"class":2360},"on",[2354,3482,3483],{"class":2364}," run\n",[2354,3485,3486,3489,3492,3495,3498],{"class":2356,"line":1640},[2354,3487,3488],{"class":2360},"    --",[2354,3490,3491],{"class":2364}," The",[2354,3493,3494],{"class":2364}," endpoint",[2354,3496,3497],{"class":2364}," from",[2354,3499,3500],{"class":2364}," above\n",[2354,3502,3503,3507,3510,3513],{"class":2356,"line":1637},[2354,3504,3506],{"class":3505},"sHrmB","    set",[2354,3508,3509],{"class":2364}," webhookURL",[2354,3511,3512],{"class":2364}," to",[2354,3514,3515],{"class":2364}," \"https:\u002F\u002Flar.axiom.ai\u002Fapi\u002Fv3\u002Ftrigger\"\n",[2354,3517,3518],{"class":2356,"line":1647},[2354,3519,3520],{"emptyLinePlaceholder":1646},"\n",[2354,3522,3524,3526,3529,3532,3535,3538,3541,3543,3546,3549,3551,3553,3556,3559,3562,3565,3568,3571,3573,3576,3579,3582,3585,3587,3590],{"class":2356,"line":3523},5,[2354,3525,3488],{"class":2360},[2354,3527,3528],{"class":2364}," This",[2354,3530,3531],{"class":2364}," is",[2354,3533,3534],{"class":2364}," the",[2354,3536,3537],{"class":2364}," payload",[2354,3539,3540],{"class":2364}," that",[2354,3542,3531],{"class":2364},[2354,3544,3545],{"class":2364}," being",[2354,3547,3548],{"class":2364}," sent",[2354,3550,3512],{"class":2364},[2354,3552,3534],{"class":2364},[2354,3554,3555],{"class":2364}," axiom.ai",[2354,3557,3558],{"class":2364}," API.",[2354,3560,3561],{"class":2364}," All",[2354,3563,3564],{"class":2364}," quotation",[2354,3566,3567],{"class":2364}," marks",[2354,3569,3570],{"class":2364}," inside",[2354,3572,3534],{"class":2364},[2354,3574,3575],{"class":2364}," curly",[2354,3577,3578],{"class":2364}," brackets",[2354,3580,3581],{"class":2364}," will",[2354,3583,3584],{"class":2364}," need",[2354,3586,3512],{"class":2364},[2354,3588,3589],{"class":2364}," be",[2354,3591,3592],{"class":2364}," escaped.\n",[2354,3594,3596,3598,3601,3603,3606,3610,3613,3615,3618,3620,3622,3624,3626,3628,3631,3633,3635,3637,3639,3641,3643,3645,3647,3649,3652,3654,3657,3659,3661,3663,3666,3668],{"class":2356,"line":3595},6,[2354,3597,3506],{"class":3505},[2354,3599,3600],{"class":2364}," jsonData",[2354,3602,3512],{"class":2364},[2354,3604,3605],{"class":2364}," \"{ ",[2354,3607,3609],{"class":3608},"sjeE4","\\\"",[2354,3611,3612],{"class":2364},"key",[2354,3614,3609],{"class":3608},[2354,3616,3617],{"class":2364},": ",[2354,3619,3609],{"class":3608},[2354,3621,3449],{"class":2364},[2354,3623,3609],{"class":3608},[2354,3625,1564],{"class":2364},[2354,3627,3609],{"class":3608},[2354,3629,3630],{"class":2364},"name",[2354,3632,3609],{"class":3608},[2354,3634,3617],{"class":2364},[2354,3636,3609],{"class":3608},[2354,3638,3455],{"class":2364},[2354,3640,3609],{"class":3608},[2354,3642,1564],{"class":2364},[2354,3644,3609],{"class":3608},[2354,3646,3461],{"class":2364},[2354,3648,3609],{"class":3608},[2354,3650,3651],{"class":2364},": [[",[2354,3653,3609],{"class":3608},[2354,3655,3656],{"class":2364},"Item 1",[2354,3658,3609],{"class":3608},[2354,3660,1564],{"class":2364},[2354,3662,3609],{"class":3608},[2354,3664,3665],{"class":2364},"Item 2",[2354,3667,3609],{"class":3608},[2354,3669,3670],{"class":2364},"]] }\"\n",[2354,3672,3674],{"class":2356,"line":3673},7,[2354,3675,3676],{"class":2395},"    \n",[2354,3678,3680],{"class":2356,"line":3679},8,[2354,3681,3682],{"class":2360},"    try\n",[2354,3684,3686,3689,3692,3694,3697,3700,3703],{"class":2356,"line":3685},9,[2354,3687,3688],{"class":2360},"        --",[2354,3690,3691],{"class":2364}," Send",[2354,3693,3534],{"class":2364},[2354,3695,3696],{"class":2364}," POST",[2354,3698,3699],{"class":2364}," request",[2354,3701,3702],{"class":2364}," using",[2354,3704,3705],{"class":2364}," cURL\n",[2354,3707,3709,3712,3715,3717,3720,3723,3726,3729,3732,3735,3738,3741,3743,3745,3748,3750,3752,3754,3756],{"class":2356,"line":3708},10,[2354,3710,3711],{"class":3505},"        set",[2354,3713,3714],{"class":2364}," response",[2354,3716,3512],{"class":2364},[2354,3718,3719],{"class":2364}," do",[2354,3721,3722],{"class":2364}," shell",[2354,3724,3725],{"class":2364}," script",[2354,3727,3728],{"class":2364}," \"curl -X POST \"",[2354,3730,3731],{"class":2395}," & ",[2354,3733,3734],{"class":2360},"quoted",[2354,3736,3737],{"class":2364}," form",[2354,3739,3740],{"class":2364}," of",[2354,3742,3509],{"class":2364},[2354,3744,3731],{"class":2395},[2354,3746,3747],{"class":2360},"\" -H 'Content-Type: application\u002Fjson' -d \"",[2354,3749,3731],{"class":2395},[2354,3751,3734],{"class":2360},[2354,3753,3737],{"class":2364},[2354,3755,3740],{"class":2364},[2354,3757,3758],{"class":2364}," jsonData\n",[2354,3760,3762,3765,3768,3770],{"class":2356,"line":3761},11,[2354,3763,3764],{"class":3608},"        return",[2354,3766,3767],{"class":2364}," \"Webhook successful: \"",[2354,3769,3731],{"class":2395},[2354,3771,3772],{"class":2360},"response\n",[2354,3774,3776,3779,3782],{"class":2356,"line":3775},12,[2354,3777,3778],{"class":2360},"    on",[2354,3780,3781],{"class":2364}," error",[2354,3783,3784],{"class":2364}," errorMsg\n",[2354,3786,3787,3789,3792,3794],{"class":2356,"line":3153},[2354,3788,3764],{"class":3608},[2354,3790,3791],{"class":2364}," \"Webhook failed: \"",[2354,3793,3731],{"class":2395},[2354,3795,3796],{"class":2360},"errMsg\n",[2354,3798,3800,3803],{"class":2356,"line":3799},14,[2354,3801,3802],{"class":3608},"    end",[2354,3804,3805],{"class":2395}," try\n",[2354,3807,3809,3812],{"class":2356,"line":3808},15,[2354,3810,3811],{"class":3608},"end",[2354,3813,3483],{"class":2395},[1612,3815,2403],{"id":2402},[1558,3817,3818],{},"In order to test your workflow, click \"Run\", or run the script on its own. Any errors that are being produced within Automator will appear within the \"Run Applescript\" component of your workflow. Follow the instructions within the component for more information on how to proceed.",[1558,3820,3821,3822,1610],{},"For more information on errors related to the axiom.ai API, see ",[1562,3823,3824],{"href":1409},"Common Errors",[1612,3826,2423],{"id":2422},[1558,3828,3829],{},"Automator provides a great method of being able to run your axiom.ai automations. It offers the ability to access various pieces of information from the system itself, which can be beneficial when it comes to monitoring system configuration, such as memory. Your automations can easily be used as a middle-man to set up notifications for system monitoring, especially if the system is being used in server configuration.",[1558,3831,3832],{},[2434,3833,3834],{},"Information accurate as of January 2025, changes to either platform may render these instructions non-functional.",[2438,3836,3837],{},"html pre.shiki code .sTDnQ, html code.shiki .sTDnQ{--shiki-default:#953800;--shiki-dark:#FFA657}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .sHrmB, html code.shiki .sHrmB{--shiki-default:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .sjeE4, html code.shiki .sjeE4{--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1636,"searchDepth":1637,"depth":1637,"links":3839},[3840,3841,3842,3843],{"id":2172,"depth":1640,"text":2173},{"id":3425,"depth":1640,"text":3426},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"This guide explains how to trigger an axiom.ai automation using Apple Automator. Learn to set up a workflow with AppleScript and send data using the Axiom webhook.",{"type":2143,"format":1718,"intent_type":2145,"intent":2454,"tags":3846,"platfrom":3847},[2456,2457],[2459],"\u002Fguides\u002Fautomator",{"title":3387,"description":3844},"guides\u002Fautomator","K_I1mqpJ2vYezZL06hRST2ypKqjLgTp_XVcwqftlYA0",{"id":3853,"title":3854,"body":3855,"date":1641,"description":4963,"extension":1643,"meta":4964,"navigation":1646,"order":1641,"path":4967,"seo":4968,"stem":4969,"__hash__":4970},"guides\u002Fguides\u002Fbaserow.md","How to post data to Baserow using an axiom.ai automation",{"type":1555,"value":3856,"toc":4952},[3857,3859,3867,3869,3872,3875,3896,3900,3903,3907,3910,3920,3923,3979,3982,4270,4288,4304,4312,4316,4319,4322,4387,4390,4592,4606,4610,4612,4615,4660,4662,4870,4893,4896,4907,4909,4915,4918,4926,4928,4935,4938,4949],[1617,3858],{},[1558,3860,3861,3866],{},[1562,3862,3865],{"href":3863,"rel":3864},"https:\u002F\u002Fbaserow.io",[1633],"Baserow"," offers an alternative to spreadsheets and allows for data management at scale with cloud or self-hosted options. Combined with axiom.ai, there are many opportunities to power up your workflows and store your processed data.",[1612,3868,2173],{"id":2172},[1558,3870,3871],{},"For this guide, we will assume that you have an automation set up within axiom.ai, have a Baserow account and a database already set up.",[1558,3873,3874],{},"To send data to Baserow from your automation, you'll need the following information from your database:",[1718,3876,3877],{},[2182,3878,3879,3890],{},[1724,3880,3881,3884,3885,3889],{},[1593,3882,3883],{},"Table ID"," - You'll find this in the URL - navigate to your table, and grab the second last number. For example, ",[1562,3886,3887],{"href":3887,"rel":3888},"https:\u002F\u002Fbaserow.io\u002Fdatabase\u002Fxxxxxx\u002Ftable\u002F",[1633],"\u003CTABLE_ID>\u002Fxxxxxx.",[1724,3891,3892,3895],{},[1593,3893,3894],{},"Database Token"," - A database token will need to be generated, navigate to My Settings → Database tokens → Create token → give it a name and click \"create token\". Set the permissions depending on what you are looking to do via your automation.",[1612,3897,3899],{"id":3898},"automating-baserow-using-an-axiomai-automation","Automating Baserow using an axiom.ai automation",[1558,3901,3902],{},"There are many functions of Baserow that can be used within your automation to send data to Baserow, or fetch data from Baserow.",[2266,3904,3906],{"id":3905},"sending-data-to-baserow","Sending data to Baserow",[1558,3908,3909],{},"Create your automation as you normally would - when you're ready to send your data onto Baserow, continue this guide.",[1558,3911,3912,3913,3915,3916,3919],{},"If the data that you are looking to send contains multiple rows of data, first add a ",[1562,3914,667],{"href":1075}," step to your automation, setting the data to the data token that contains the data that you wish to send to Baserow. Inside of the \"Loop through data\" step, add a ",[1562,3917,3918],{"href":1226},"Write Javascript"," step. If you only have a single row of data, you can skip adding the \"Loop through data\" step.",[1558,3921,3922],{},"First, we will establish some variables to hold important information that your script will need, replacing the text within the \u003C > with your data:",[2346,3924,3926],{"className":2383,"code":3925,"language":2385,"meta":1636,"style":1636},"const table_id = \"\u003CTABLE_ID>\";\nconst baserow_url = `https:\u002F\u002Fapi.baserow.io\u002Fapi\u002Fdatabase\u002Frows\u002Ftable\u002F${table_id}\u002F?user_field_names=true`;\nconst database_token = \"\u003CDATABASE_TOKEN>\";\n",[1731,3927,3928,3945,3965],{"__ignoreMap":1636},[2354,3929,3930,3933,3936,3939,3942],{"class":2356,"line":2357},[2354,3931,3932],{"class":3608},"const",[2354,3934,3935],{"class":3505}," table_id",[2354,3937,3938],{"class":3608}," =",[2354,3940,3941],{"class":2364}," \"\u003CTABLE_ID>\"",[2354,3943,3944],{"class":2395},";\n",[2354,3946,3947,3949,3952,3954,3957,3960,3963],{"class":2356,"line":1640},[2354,3948,3932],{"class":3608},[2354,3950,3951],{"class":3505}," baserow_url",[2354,3953,3938],{"class":3608},[2354,3955,3956],{"class":2364}," `https:\u002F\u002Fapi.baserow.io\u002Fapi\u002Fdatabase\u002Frows\u002Ftable\u002F${",[2354,3958,3959],{"class":2395},"table_id",[2354,3961,3962],{"class":2364},"}\u002F?user_field_names=true`",[2354,3964,3944],{"class":2395},[2354,3966,3967,3969,3972,3974,3977],{"class":2356,"line":1637},[2354,3968,3932],{"class":3608},[2354,3970,3971],{"class":3505}," database_token",[2354,3973,3938],{"class":3608},[2354,3975,3976],{"class":2364}," \"\u003CDATABASE_TOKEN>\"",[2354,3978,3944],{"class":2395},[1558,3980,3981],{},"Next, we will want to create a function that handles sending the data to Baserow, and then call this function. This should be contained within the same \"Write Javascript\" step as the code above.",[2346,3983,3985],{"className":2383,"code":3984,"language":2385,"meta":1636,"style":1636},"const sendToBaserow = async () => {\n    try {\n        const response = await fetch(baserow_url, {\n            method: 'POST',\n            headers: {\n                \"Authorization\": `Token ${database_token}`,\n                \"Content-Type\": \"application\u002Fx-www-form-urlencoded\"\n            },\n            body: new URLSearchParams({\n                \"Name\": \"[google-sheet-data?*&0]\",\n                \"Homepage\": \"[google-sheet-data?*&1]\"\n            })\n        });\n      \n        if (!response.ok) {\n            console.error(\"Something went wrong with response\", response);\n            return;\n        }\n      \n        const result = await response.json();\n        console.log(result);\n    } catch (error) {\n        console.error(\"Something went wrong\", error);\n    }\n}\n\nsendToBaserow();\n",[1731,3986,3987,4009,4016,4034,4045,4050,4068,4078,4083,4097,4109,4119,4124,4129,4134,4148,4166,4174,4180,4185,4206,4218,4230,4245,4251,4257,4262],{"__ignoreMap":1636},[2354,3988,3989,3991,3995,3997,4000,4003,4006],{"class":2356,"line":2357},[2354,3990,3932],{"class":3608},[2354,3992,3994],{"class":3993},"sbjLL"," sendToBaserow",[2354,3996,3938],{"class":3608},[2354,3998,3999],{"class":3608}," async",[2354,4001,4002],{"class":2395}," () ",[2354,4004,4005],{"class":3608},"=>",[2354,4007,4008],{"class":2395}," {\n",[2354,4010,4011,4014],{"class":2356,"line":1640},[2354,4012,4013],{"class":3608},"    try",[2354,4015,4008],{"class":2395},[2354,4017,4018,4021,4023,4025,4028,4031],{"class":2356,"line":1637},[2354,4019,4020],{"class":3608},"        const",[2354,4022,3714],{"class":3505},[2354,4024,3938],{"class":3608},[2354,4026,4027],{"class":3608}," await",[2354,4029,4030],{"class":3993}," fetch",[2354,4032,4033],{"class":2395},"(baserow_url, {\n",[2354,4035,4036,4039,4042],{"class":2356,"line":1647},[2354,4037,4038],{"class":2395},"            method: ",[2354,4040,4041],{"class":2364},"'POST'",[2354,4043,4044],{"class":2395},",\n",[2354,4046,4047],{"class":2356,"line":3523},[2354,4048,4049],{"class":2395},"            headers: {\n",[2354,4051,4052,4055,4057,4060,4063,4066],{"class":2356,"line":3595},[2354,4053,4054],{"class":2364},"                \"Authorization\"",[2354,4056,3617],{"class":2395},[2354,4058,4059],{"class":2364},"`Token ${",[2354,4061,4062],{"class":2395},"database_token",[2354,4064,4065],{"class":2364},"}`",[2354,4067,4044],{"class":2395},[2354,4069,4070,4073,4075],{"class":2356,"line":3673},[2354,4071,4072],{"class":2364},"                \"Content-Type\"",[2354,4074,3617],{"class":2395},[2354,4076,4077],{"class":2364},"\"application\u002Fx-www-form-urlencoded\"\n",[2354,4079,4080],{"class":2356,"line":3679},[2354,4081,4082],{"class":2395},"            },\n",[2354,4084,4085,4088,4091,4094],{"class":2356,"line":3685},[2354,4086,4087],{"class":2395},"            body: ",[2354,4089,4090],{"class":3608},"new",[2354,4092,4093],{"class":3993}," URLSearchParams",[2354,4095,4096],{"class":2395},"({\n",[2354,4098,4099,4102,4104,4107],{"class":2356,"line":3708},[2354,4100,4101],{"class":2364},"                \"Name\"",[2354,4103,3617],{"class":2395},[2354,4105,4106],{"class":2364},"\"[google-sheet-data?*&0]\"",[2354,4108,4044],{"class":2395},[2354,4110,4111,4114,4116],{"class":2356,"line":3761},[2354,4112,4113],{"class":2364},"                \"Homepage\"",[2354,4115,3617],{"class":2395},[2354,4117,4118],{"class":2364},"\"[google-sheet-data?*&1]\"\n",[2354,4120,4121],{"class":2356,"line":3775},[2354,4122,4123],{"class":2395},"            })\n",[2354,4125,4126],{"class":2356,"line":3153},[2354,4127,4128],{"class":2395},"        });\n",[2354,4130,4131],{"class":2356,"line":3799},[2354,4132,4133],{"class":2395},"      \n",[2354,4135,4136,4139,4142,4145],{"class":2356,"line":3808},[2354,4137,4138],{"class":3608},"        if",[2354,4140,4141],{"class":2395}," (",[2354,4143,4144],{"class":3608},"!",[2354,4146,4147],{"class":2395},"response.ok) {\n",[2354,4149,4151,4154,4157,4160,4163],{"class":2356,"line":4150},16,[2354,4152,4153],{"class":2395},"            console.",[2354,4155,4156],{"class":3993},"error",[2354,4158,4159],{"class":2395},"(",[2354,4161,4162],{"class":2364},"\"Something went wrong with response\"",[2354,4164,4165],{"class":2395},", response);\n",[2354,4167,4169,4172],{"class":2356,"line":4168},17,[2354,4170,4171],{"class":3608},"            return",[2354,4173,3944],{"class":2395},[2354,4175,4177],{"class":2356,"line":4176},18,[2354,4178,4179],{"class":2395},"        }\n",[2354,4181,4183],{"class":2356,"line":4182},19,[2354,4184,4133],{"class":2395},[2354,4186,4188,4190,4193,4195,4197,4200,4203],{"class":2356,"line":4187},20,[2354,4189,4020],{"class":3608},[2354,4191,4192],{"class":3505}," result",[2354,4194,3938],{"class":3608},[2354,4196,4027],{"class":3608},[2354,4198,4199],{"class":2395}," response.",[2354,4201,4202],{"class":3993},"json",[2354,4204,4205],{"class":2395},"();\n",[2354,4207,4209,4212,4215],{"class":2356,"line":4208},21,[2354,4210,4211],{"class":2395},"        console.",[2354,4213,4214],{"class":3993},"log",[2354,4216,4217],{"class":2395},"(result);\n",[2354,4219,4221,4224,4227],{"class":2356,"line":4220},22,[2354,4222,4223],{"class":2395},"    } ",[2354,4225,4226],{"class":3608},"catch",[2354,4228,4229],{"class":2395}," (error) {\n",[2354,4231,4233,4235,4237,4239,4242],{"class":2356,"line":4232},23,[2354,4234,4211],{"class":2395},[2354,4236,4156],{"class":3993},[2354,4238,4159],{"class":2395},[2354,4240,4241],{"class":2364},"\"Something went wrong\"",[2354,4243,4244],{"class":2395},", error);\n",[2354,4246,4248],{"class":2356,"line":4247},24,[2354,4249,4250],{"class":2395},"    }\n",[2354,4252,4254],{"class":2356,"line":4253},25,[2354,4255,4256],{"class":2395},"}\n",[2354,4258,4260],{"class":2356,"line":4259},26,[2354,4261,3520],{"emptyLinePlaceholder":1646},[2354,4263,4265,4268],{"class":2356,"line":4264},27,[2354,4266,4267],{"class":3993},"sendToBaserow",[2354,4269,4205],{"class":2395},[1558,4271,4272,4273,4276,4277,4280,4281,4284,4285,4287],{},"Most of the code above will not need to be modified, however, you will need to update the code inside of the ",[1731,4274,4275],{},"body: new URLSearchParams({})"," code with the fields and data that you wish to send. The first item in the key-value pair, ",[1731,4278,4279],{},"Name",", for example, needs to be the name of a ",[2434,4282,4283],{},"single"," column. The second item will be the data that you are sending to Baserow - remember, you can use the ",[1562,4286,1833],{"href":1373}," option to insert data tokens from throughout your automation.",[1558,4289,4290,4291,4295,4296,4299,4300,4303],{},"By default, when you create a row using this method this will trigger webhooks - if you are following the guide on ",[1562,4292,4294],{"href":4293},"#triggering-an-axiomai-automation-using-baserow","Triggering an axiom.ai automation using Baserow"," you may wish to keep this in mind. This can be disabled by adding ",[1731,4297,4298],{},"&send_webhook_events=false"," to the end of the ",[1731,4301,4302],{},"baserow_url"," variable in the code.",[1558,4305,4306],{},[2434,4307,4308,4309,4311],{},"Please note, Baserow's API has a rate limit of 20 requests per second as of time of writing - to respect this, it's recommended to add additional ",[1562,4310,349],{"href":1210}," steps inside your \"Loop through data\" step.",[2266,4313,4315],{"id":4314},"retrieving-a-single-row-from-baserow","Retrieving a single row from Baserow",[1558,4317,4318],{},"Create your automation as you normally would - when you're ready to retrieve your data from Baserow, continue this guide.",[1558,4320,4321],{},"To get a single row from your Baserow database, you'll need to perform a request to their API. To access a single row, you will need the ID of the row. This can be found in the UI. First, we will establish some variables to hold important information that your script will need, replacing the text within the \u003C > with your data:",[2346,4323,4325],{"className":2383,"code":4324,"language":2385,"meta":1636,"style":1636},"const table_id = \"\u003CTABLE_ID>\";\nconst row_id = \"\u003CTABLE_ROW>\";\nconst database_token = \"\u003CDATABASE_TOKEN>\";\nconst baserow_url = `https:\u002F\u002Fapi.baserow.io\u002Fapi\u002Fdatabase\u002Frows\u002Ftable\u002F${table_id}\u002F${row_id}\u002F?user_field_names=true`;\n",[1731,4326,4327,4339,4353,4365],{"__ignoreMap":1636},[2354,4328,4329,4331,4333,4335,4337],{"class":2356,"line":2357},[2354,4330,3932],{"class":3608},[2354,4332,3935],{"class":3505},[2354,4334,3938],{"class":3608},[2354,4336,3941],{"class":2364},[2354,4338,3944],{"class":2395},[2354,4340,4341,4343,4346,4348,4351],{"class":2356,"line":1640},[2354,4342,3932],{"class":3608},[2354,4344,4345],{"class":3505}," row_id",[2354,4347,3938],{"class":3608},[2354,4349,4350],{"class":2364}," \"\u003CTABLE_ROW>\"",[2354,4352,3944],{"class":2395},[2354,4354,4355,4357,4359,4361,4363],{"class":2356,"line":1637},[2354,4356,3932],{"class":3608},[2354,4358,3971],{"class":3505},[2354,4360,3938],{"class":3608},[2354,4362,3976],{"class":2364},[2354,4364,3944],{"class":2395},[2354,4366,4367,4369,4371,4373,4375,4377,4380,4383,4385],{"class":2356,"line":1647},[2354,4368,3932],{"class":3608},[2354,4370,3951],{"class":3505},[2354,4372,3938],{"class":3608},[2354,4374,3956],{"class":2364},[2354,4376,3959],{"class":2395},[2354,4378,4379],{"class":2364},"}\u002F${",[2354,4381,4382],{"class":2395},"row_id",[2354,4384,3962],{"class":2364},[2354,4386,3944],{"class":2395},[1558,4388,4389],{},"Next, we will want to create a function that handles retrieving the data from Baserow, and then call this function. This should be contained within the same \"Write Javascript\" step as the code above.",[2346,4391,4393],{"className":2383,"code":4392,"language":2385,"meta":1636,"style":1636},"const retrieveRow = async () => {\n    try {\n        const response = await fetch(baserow_url, {\n            method: 'GET',\n            headers: {\n                \"Authorization\": `Token ${database_token}`,\n                \"Content-Type\": \"application\u002Fx-www-form-urlencoded\"\n            }\n        });\n      \n        if (!response.ok) {\n            console.error(\"Something went wrong\", response); \n        }\n      \n        const result = await response.json();\n\n        \u002F\u002F Return the results in a format that your automation is expecting.\n        return [Object.values(result)];\n    } catch (error) {\n        console.error(\"Something went wrong\", error); \n    }\n}\n\nreturn retrieveRow();\n",[1731,4394,4395,4412,4418,4432,4441,4445,4459,4467,4472,4476,4480,4490,4503,4507,4511,4527,4531,4537,4550,4558,4571,4575,4579,4583],{"__ignoreMap":1636},[2354,4396,4397,4399,4402,4404,4406,4408,4410],{"class":2356,"line":2357},[2354,4398,3932],{"class":3608},[2354,4400,4401],{"class":3993}," retrieveRow",[2354,4403,3938],{"class":3608},[2354,4405,3999],{"class":3608},[2354,4407,4002],{"class":2395},[2354,4409,4005],{"class":3608},[2354,4411,4008],{"class":2395},[2354,4413,4414,4416],{"class":2356,"line":1640},[2354,4415,4013],{"class":3608},[2354,4417,4008],{"class":2395},[2354,4419,4420,4422,4424,4426,4428,4430],{"class":2356,"line":1637},[2354,4421,4020],{"class":3608},[2354,4423,3714],{"class":3505},[2354,4425,3938],{"class":3608},[2354,4427,4027],{"class":3608},[2354,4429,4030],{"class":3993},[2354,4431,4033],{"class":2395},[2354,4433,4434,4436,4439],{"class":2356,"line":1647},[2354,4435,4038],{"class":2395},[2354,4437,4438],{"class":2364},"'GET'",[2354,4440,4044],{"class":2395},[2354,4442,4443],{"class":2356,"line":3523},[2354,4444,4049],{"class":2395},[2354,4446,4447,4449,4451,4453,4455,4457],{"class":2356,"line":3595},[2354,4448,4054],{"class":2364},[2354,4450,3617],{"class":2395},[2354,4452,4059],{"class":2364},[2354,4454,4062],{"class":2395},[2354,4456,4065],{"class":2364},[2354,4458,4044],{"class":2395},[2354,4460,4461,4463,4465],{"class":2356,"line":3673},[2354,4462,4072],{"class":2364},[2354,4464,3617],{"class":2395},[2354,4466,4077],{"class":2364},[2354,4468,4469],{"class":2356,"line":3679},[2354,4470,4471],{"class":2395},"            }\n",[2354,4473,4474],{"class":2356,"line":3685},[2354,4475,4128],{"class":2395},[2354,4477,4478],{"class":2356,"line":3708},[2354,4479,4133],{"class":2395},[2354,4481,4482,4484,4486,4488],{"class":2356,"line":3761},[2354,4483,4138],{"class":3608},[2354,4485,4141],{"class":2395},[2354,4487,4144],{"class":3608},[2354,4489,4147],{"class":2395},[2354,4491,4492,4494,4496,4498,4500],{"class":2356,"line":3775},[2354,4493,4153],{"class":2395},[2354,4495,4156],{"class":3993},[2354,4497,4159],{"class":2395},[2354,4499,4241],{"class":2364},[2354,4501,4502],{"class":2395},", response); \n",[2354,4504,4505],{"class":2356,"line":3153},[2354,4506,4179],{"class":2395},[2354,4508,4509],{"class":2356,"line":3799},[2354,4510,4133],{"class":2395},[2354,4512,4513,4515,4517,4519,4521,4523,4525],{"class":2356,"line":3808},[2354,4514,4020],{"class":3608},[2354,4516,4192],{"class":3505},[2354,4518,3938],{"class":3608},[2354,4520,4027],{"class":3608},[2354,4522,4199],{"class":2395},[2354,4524,4202],{"class":3993},[2354,4526,4205],{"class":2395},[2354,4528,4529],{"class":2356,"line":4150},[2354,4530,3520],{"emptyLinePlaceholder":1646},[2354,4532,4533],{"class":2356,"line":4168},[2354,4534,4536],{"class":4535},"sU953","        \u002F\u002F Return the results in a format that your automation is expecting.\n",[2354,4538,4539,4541,4544,4547],{"class":2356,"line":4176},[2354,4540,3764],{"class":3608},[2354,4542,4543],{"class":2395}," [Object.",[2354,4545,4546],{"class":3993},"values",[2354,4548,4549],{"class":2395},"(result)];\n",[2354,4551,4552,4554,4556],{"class":2356,"line":4182},[2354,4553,4223],{"class":2395},[2354,4555,4226],{"class":3608},[2354,4557,4229],{"class":2395},[2354,4559,4560,4562,4564,4566,4568],{"class":2356,"line":4187},[2354,4561,4211],{"class":2395},[2354,4563,4156],{"class":3993},[2354,4565,4159],{"class":2395},[2354,4567,4241],{"class":2364},[2354,4569,4570],{"class":2395},", error); \n",[2354,4572,4573],{"class":2356,"line":4208},[2354,4574,4250],{"class":2395},[2354,4576,4577],{"class":2356,"line":4220},[2354,4578,4256],{"class":2395},[2354,4580,4581],{"class":2356,"line":4232},[2354,4582,3520],{"emptyLinePlaceholder":1646},[2354,4584,4585,4588,4590],{"class":2356,"line":4247},[2354,4586,4587],{"class":3608},"return",[2354,4589,4401],{"class":3993},[2354,4591,4205],{"class":2395},[1558,4593,4594,4595,4598,4599],{},"Your row data will then be contained within the ",[1731,4596,4597],{},"code-data"," data token within your automation. ",[2434,4600,4601,4602,4605],{},"Note: this data will contain additional data such as the Row ID, it's recommended you review the data using a ",[1562,4603,4604],{"href":980},"Display a message"," step before use.",[2266,4607,4609],{"id":4608},"retrieving-multiple-rows-from-baserow","Retrieving multiple rows from Baserow",[1558,4611,4318],{},[1558,4613,4614],{},"In order to retrieve multiple rows, we'll need to add some code to your automation. First, we will establish some variables to hold important information that your script will need, replacing the text within the \u003C > with your data:",[2346,4616,4618],{"className":2383,"code":4617,"language":2385,"meta":1636,"style":1636},"const table_id = \"\u003CTABLE_ID>\";\nconst database_token = \"\u003CDATABASE_TOKEN>\";\nconst baserow_url = `https:\u002F\u002Fapi.baserow.io\u002Fapi\u002Fdatabase\u002Frows\u002Ftable\u002F${table_id}\u002F?user_field_names=true`;\n",[1731,4619,4620,4632,4644],{"__ignoreMap":1636},[2354,4621,4622,4624,4626,4628,4630],{"class":2356,"line":2357},[2354,4623,3932],{"class":3608},[2354,4625,3935],{"class":3505},[2354,4627,3938],{"class":3608},[2354,4629,3941],{"class":2364},[2354,4631,3944],{"class":2395},[2354,4633,4634,4636,4638,4640,4642],{"class":2356,"line":1640},[2354,4635,3932],{"class":3608},[2354,4637,3971],{"class":3505},[2354,4639,3938],{"class":3608},[2354,4641,3976],{"class":2364},[2354,4643,3944],{"class":2395},[2354,4645,4646,4648,4650,4652,4654,4656,4658],{"class":2356,"line":1637},[2354,4647,3932],{"class":3608},[2354,4649,3951],{"class":3505},[2354,4651,3938],{"class":3608},[2354,4653,3956],{"class":2364},[2354,4655,3959],{"class":2395},[2354,4657,3962],{"class":2364},[2354,4659,3944],{"class":2395},[1558,4661,4389],{},[2346,4663,4665],{"className":2383,"code":4664,"language":2385,"meta":1636,"style":1636},"const retrieveRow = async () => {\n    try {\n        const response = await fetch(baserow_url, {\n            method: 'GET',\n            headers: {\n                \"Authorization\": `Token ${database_token}`,\n                \"Content-Type\": \"application\u002Fx-www-form-urlencoded\"\n            }\n        });\n      \n        if (!response.ok) {\n            console.error(\"Something went wrong\", response); \n        }\n      \n        const result = await response.json();\n        \n        \u002F\u002F Return the results in a format that your automation is expecting.\n        return result.results.map(row => Object.values(row));\n    } catch (error) {\n        console.error(\"Something went wrong\", error); \n    }\n}\n\nreturn retrieveRow();\n",[1731,4666,4667,4683,4689,4703,4711,4715,4729,4737,4741,4745,4749,4759,4771,4775,4779,4795,4800,4804,4830,4838,4850,4854,4858,4862],{"__ignoreMap":1636},[2354,4668,4669,4671,4673,4675,4677,4679,4681],{"class":2356,"line":2357},[2354,4670,3932],{"class":3608},[2354,4672,4401],{"class":3993},[2354,4674,3938],{"class":3608},[2354,4676,3999],{"class":3608},[2354,4678,4002],{"class":2395},[2354,4680,4005],{"class":3608},[2354,4682,4008],{"class":2395},[2354,4684,4685,4687],{"class":2356,"line":1640},[2354,4686,4013],{"class":3608},[2354,4688,4008],{"class":2395},[2354,4690,4691,4693,4695,4697,4699,4701],{"class":2356,"line":1637},[2354,4692,4020],{"class":3608},[2354,4694,3714],{"class":3505},[2354,4696,3938],{"class":3608},[2354,4698,4027],{"class":3608},[2354,4700,4030],{"class":3993},[2354,4702,4033],{"class":2395},[2354,4704,4705,4707,4709],{"class":2356,"line":1647},[2354,4706,4038],{"class":2395},[2354,4708,4438],{"class":2364},[2354,4710,4044],{"class":2395},[2354,4712,4713],{"class":2356,"line":3523},[2354,4714,4049],{"class":2395},[2354,4716,4717,4719,4721,4723,4725,4727],{"class":2356,"line":3595},[2354,4718,4054],{"class":2364},[2354,4720,3617],{"class":2395},[2354,4722,4059],{"class":2364},[2354,4724,4062],{"class":2395},[2354,4726,4065],{"class":2364},[2354,4728,4044],{"class":2395},[2354,4730,4731,4733,4735],{"class":2356,"line":3673},[2354,4732,4072],{"class":2364},[2354,4734,3617],{"class":2395},[2354,4736,4077],{"class":2364},[2354,4738,4739],{"class":2356,"line":3679},[2354,4740,4471],{"class":2395},[2354,4742,4743],{"class":2356,"line":3685},[2354,4744,4128],{"class":2395},[2354,4746,4747],{"class":2356,"line":3708},[2354,4748,4133],{"class":2395},[2354,4750,4751,4753,4755,4757],{"class":2356,"line":3761},[2354,4752,4138],{"class":3608},[2354,4754,4141],{"class":2395},[2354,4756,4144],{"class":3608},[2354,4758,4147],{"class":2395},[2354,4760,4761,4763,4765,4767,4769],{"class":2356,"line":3775},[2354,4762,4153],{"class":2395},[2354,4764,4156],{"class":3993},[2354,4766,4159],{"class":2395},[2354,4768,4241],{"class":2364},[2354,4770,4502],{"class":2395},[2354,4772,4773],{"class":2356,"line":3153},[2354,4774,4179],{"class":2395},[2354,4776,4777],{"class":2356,"line":3799},[2354,4778,4133],{"class":2395},[2354,4780,4781,4783,4785,4787,4789,4791,4793],{"class":2356,"line":3808},[2354,4782,4020],{"class":3608},[2354,4784,4192],{"class":3505},[2354,4786,3938],{"class":3608},[2354,4788,4027],{"class":3608},[2354,4790,4199],{"class":2395},[2354,4792,4202],{"class":3993},[2354,4794,4205],{"class":2395},[2354,4796,4797],{"class":2356,"line":4150},[2354,4798,4799],{"class":2395},"        \n",[2354,4801,4802],{"class":2356,"line":4168},[2354,4803,4536],{"class":4535},[2354,4805,4806,4808,4811,4814,4816,4819,4822,4825,4827],{"class":2356,"line":4176},[2354,4807,3764],{"class":3608},[2354,4809,4810],{"class":2395}," result.results.",[2354,4812,4813],{"class":3993},"map",[2354,4815,4159],{"class":2395},[2354,4817,4818],{"class":2360},"row",[2354,4820,4821],{"class":3608}," =>",[2354,4823,4824],{"class":2395}," Object.",[2354,4826,4546],{"class":3993},[2354,4828,4829],{"class":2395},"(row));\n",[2354,4831,4832,4834,4836],{"class":2356,"line":4182},[2354,4833,4223],{"class":2395},[2354,4835,4226],{"class":3608},[2354,4837,4229],{"class":2395},[2354,4839,4840,4842,4844,4846,4848],{"class":2356,"line":4187},[2354,4841,4211],{"class":2395},[2354,4843,4156],{"class":3993},[2354,4845,4159],{"class":2395},[2354,4847,4241],{"class":2364},[2354,4849,4570],{"class":2395},[2354,4851,4852],{"class":2356,"line":4208},[2354,4853,4250],{"class":2395},[2354,4855,4856],{"class":2356,"line":4220},[2354,4857,4256],{"class":2395},[2354,4859,4860],{"class":2356,"line":4232},[2354,4861,3520],{"emptyLinePlaceholder":1646},[2354,4863,4864,4866,4868],{"class":2356,"line":4247},[2354,4865,4587],{"class":3608},[2354,4867,4401],{"class":3993},[2354,4869,4205],{"class":2395},[1558,4871,4872,4873,1564,4876,1564,4879,1575,4882,4885,4886,4889,4890,4892],{},"There are various different parameters that can be provided to Baserow to customise the data that you are retrieving, such as ",[1731,4874,4875],{},"page",[1731,4877,4878],{},"size",[1731,4880,4881],{},"search",[1731,4883,4884],{},"order_by",". We recommend reviewing their API documentation for more details: ",[1731,4887,4888],{},"https:\u002F\u002Fbaserow.io\u002Fapi-docs\u002Fdatabase\u002F\u003CTABLE_ID>",". All rows of data will be contained within the ",[1731,4891,4597],{}," data token within your automation to use in later steps.",[1612,4894,4294],{"id":4895},"triggering-an-axiomai-automation-using-baserow",[1558,4897,4898,4899,4902,4903,4906],{},"Baserow allows for webhooks to be triggered when an event occurs within your database table. This can be useful for notifying third-party applications of changes. Unfortunately, as axiom.ai requires specific details within the payload of a webhook request it is not currently possible to trigger your automations directly, but it may be possible to do so using a third party tool such as ",[1562,4900,783],{"href":4901},".\u002Fzapier"," or ",[1562,4904,763],{"href":4905},".\u002Fpost-data-to-make"," as a service layer between axiom.ai and Baserow.",[1612,4908,2403],{"id":2402},[1558,4910,4911,4912,2855],{},"To test adding data to Baserow, click \"Run\" within the Builder - open up your Baserow dashboard and open the table to view any changes. To test retrieving data from Baserow, add an output for your data, for example, a ",[1562,4913,4914],{"href":1214},"Write data to a Google Sheet",[1558,4916,4917],{},"To test triggering an axiom.ai automation from an event, perform the event that you have set up within your automation - for example, by inserting or updating data within your database.",[1558,4919,4920,4921,1575,4924,1610],{},"For further advice on debugging your automations, see ",[1562,4922,4923],{"href":1487},"How to debug",[1562,4925,1408],{"href":1409},[1612,4927,2423],{"id":2422},[1558,4929,4930,4931],{},"Combining Baserow and axiom.ai automations allows you to have a data store that is scalable to store your data - from scraping data, to keeping track of a list of contacts, the possibilities are only limited by your own imagination. We are excited to see what you build with this guide - let us know over in our ",[1562,4932,4934],{"href":1631,"rel":4933},[1633],"community",[1558,4936,4937],{},"Information correct as of 15th January 2025, changes to either platforms may require updates",[1558,4939,4940],{},[2434,4941,4942,4945,4946,4948],{},[4943,4944,1804],"sup",{}," Triggering your automations via webhook requires a paid subscription, see ",[1562,4947,1535],{"href":1534}," for more details.",[2438,4950,4951],{},"html pre.shiki code .sjeE4, html code.shiki .sjeE4{--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .sHrmB, html code.shiki .sHrmB{--shiki-default:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbjLL, html code.shiki .sbjLL{--shiki-default:#8250DF;--shiki-dark:#D2A8FF}html pre.shiki code .sU953, html code.shiki .sU953{--shiki-default:#6E7781;--shiki-dark:#8B949E}html pre.shiki code .sTDnQ, html code.shiki .sTDnQ{--shiki-default:#953800;--shiki-dark:#FFA657}",{"title":1636,"searchDepth":1637,"depth":1637,"links":4953},[4954,4955,4960,4961,4962],{"id":2172,"depth":1640,"text":2173},{"id":3898,"depth":1640,"text":3899,"children":4956},[4957,4958,4959],{"id":3905,"depth":1637,"text":3906},{"id":4314,"depth":1637,"text":4315},{"id":4608,"depth":1637,"text":4609},{"id":4895,"depth":1640,"text":4294},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"Learn how to automatically post to your Baserow account using an axiom.ai automation",{"type":1731,"format":1718,"intent_type":2145,"intent":2454,"tags":4965,"platfrom":4966},[2456,2457],[3865],"\u002Fguides\u002Fbaserow",{"title":3854,"description":4963},"guides\u002Fbaserow","-Fz_8RMg6DKzQOpXEctBkNifMNzq0v1CSC6yXsY-xR8",{"id":4972,"title":4973,"body":4974,"date":1641,"description":5624,"extension":1643,"meta":5625,"navigation":1646,"order":1641,"path":5004,"seo":5629,"stem":5630,"__hash__":5631},"guides\u002Fguides\u002Fblack-box.md","How to scrape Amazon product data from Black Box into a Google Sheet",{"type":1555,"value":4975,"toc":5616},[4976,4978,4986,4992,4995,5006,5009,5012,5032,5036,5051,5061,5432,5435,5441,5445,5459,5463,5465,5488,5492,5505,5545,5552,5558,5560,5573,5586,5602],[1617,4977],{},[1558,4979,4980,4981,4985],{},"Black Box, a tool from ",[1562,4982,4984],{"href":4983},"\u002Fautomate\u002Fhelium10-login","Helium10",", is a product research tool designed for Amazon sellers. It helps users find profitable products by filtering through millions of listings based on criteria like demand, competition, and sales volume.",[2219,4987],{"src":4988,"className":4989,"alt":4991},"\u002Fdocs\u002Fguides\u002Fblack-box-screen-shot.webp",[4990],"mb-3","Atuomate data entry into the Black box search field.",[1558,4993,4994],{},"In this guide, you'll learn how to use a bot to load the Black Box homepage, automate the input of search criteria, and click \"Search.\" The bot will then scrape the results and extract them into a Google Sheet.",[1558,4996,4997,4998,4902,5002,1610],{},"For this guide, we'll focus on Simple Search Mode, but the same principles apply to automating an Advanced Search. Check out our other Helium 10 guides if you're interested in automating ",[1562,4999,5001],{"href":5000},"\u002Fguides\u002Fcerebro","Cerebro",[1562,5003,5005],{"href":5004},"\u002Fguides\u002Fblack-box","BlackBox",[1612,5007,5008],{"id":2172},"Getting Started",[1558,5010,5011],{},"To begin, create a Google Sheet and add two tabs for search criteria and another to store the extracted data.",[2182,5013,5014,5020,5026],{},[1724,5015,5016,5019],{},[1593,5017,5018],{},"Create a new Google Sheet:"," If you're logged into Google, type sheet.new in your browser to quickly create a new sheet.",[1724,5021,5022,5025],{},[1593,5023,5024],{},"Set up tab one:"," Enter your criteria into the first tab.",[1724,5027,5028,5031],{},[1593,5029,5030],{},"Set up tab two:"," Name the second tab \"Products\" and leave it blank.",[1612,5033,5035],{"id":5034},"how-to-automate-extracting-product-data-from-black-box","How to automate extracting product data from Black Box",[1558,5037,5038,5039,5042,5043,5046,5047,5050],{},"To start building your bot, open ",[1593,5040,5041],{},"axiom.ai"," and click ",[1593,5044,5045],{},"\"New automation\""," to use the no-code bot builder. Then, click ",[1593,5048,5049],{},"\"Add first step\""," and follow the guide.",[1558,5052,5053,5054,5057,5058],{},"Download the ",[1562,5055,2144],{"href":5056,"download":1646},"\u002Fdocs\u002Fguides\u002Ftemplates\u002Faxiom_black_box.json"," we created for this scraper. Click to learn how to ",[1562,5059,5060],{"href":849},"upload it.",[1718,5062,5063],{},[1721,5064,5065,5083,5360,5399],{},[1724,5066,5067,1729,5069,5071],{},[1593,5068,1728],{},[1731,5070,1733],{},[1721,5072,5073,5078],{},[1724,5074,5075,5077],{},[1731,5076,1740],{},": Search for and add the Google Sheet you created.",[1724,5079,5080,5082],{},[1731,5081,1746],{},": Choose the tab containing the search criteria.",[1724,5084,5085,1729,5087,5089,5101],{},[1593,5086,1752],{},[1731,5088,667],{},[1721,5090,5091],{},[1724,5092,5093,1771,5095,5097,5098,5100],{},[1731,5094,667],{},[1731,5096,1774],{}," and select ",[1731,5099,1778],{},". The loop step will now iterate through the search criteria in the Google Sheet.",[1721,5102,5103,5123,5159,5185,5211,5237,5264],{},[1724,5104,5105,1729,5107,5109],{},[1593,5106,1761],{},[1731,5108,1043],{},[1721,5110,5111],{},[1724,5112,5113,5115,5116,1610],{},[1731,5114,1770],{},": The URL will look something like this: ",[1593,5117,5118,5119,5118],{},"\"",[1562,5120,5121],{"href":5121,"rel":5122},"https:\u002F\u002Fmembers.helium10.com\u002Fblack-box\u002Fproducts?accountId=xxxxxxx",[1633],[1724,5124,5125,1729,5127,5129],{},[1593,5126,1784],{},[1731,5128,329],{},[1721,5130,5131,5142],{},[1724,5132,5133,1771,5135,5137,5138,5141],{},[1731,5134,1794],{},[1731,5136,1794],{},", then select the ",[1731,5139,5140],{},"Market place"," dropdown.",[1724,5143,5144,5146,5147,5149,5150,5153,5154,5158],{},[1731,5145,2580],{},": In the text field, click ",[1731,5148,1774],{}," and choose the Google Sheet data. In the data preview, select column ",[1731,5151,5152],{},"A"," with the marketplace value.\n",[2219,5155],{"src":5156,"alt":5157},"\u002Fdocs\u002Fguides\u002Fseelector-tool-black-box.webp","axiom.ai select data to insert into select list in Black Box","  \n",[1724,5160,5161,1729,5163,5165],{},[1593,5162,1809],{},[1731,5164,329],{},[1721,5166,5167,5176],{},[1724,5168,5169,1771,5171,5137,5173,5141],{},[1731,5170,1794],{},[1731,5172,1794],{},[1731,5174,5175],{},"Category",[1724,5177,5178,5146,5180,5149,5182,5184],{},[1731,5179,2580],{},[1731,5181,1774],{},[1731,5183,5152],{}," with the category value.",[1724,5186,5187,1729,5189,5191],{},[1593,5188,1852],{},[1731,5190,329],{},[1721,5192,5193,5202],{},[1724,5194,5195,1771,5197,5137,5199,5141],{},[1731,5196,1794],{},[1731,5198,1794],{},[1731,5200,5201],{},"Improvement range",[1724,5203,5204,5146,5206,5149,5208,5210],{},[1731,5205,2580],{},[1731,5207,1774],{},[1731,5209,5152],{}," with the improvement range value.",[1724,5212,5213,1729,5215,5217],{},[1593,5214,1880],{},[1731,5216,329],{},[1721,5218,5219,5228],{},[1724,5220,5221,1771,5223,5137,5225,5141],{},[1731,5222,1794],{},[1731,5224,1794],{},[1731,5226,5227],{},"Price range",[1724,5229,5230,5146,5232,5149,5234,5236],{},[1731,5231,2580],{},[1731,5233,1774],{},[1731,5235,5152],{}," with the price range value.",[1724,5238,5239,1729,5241,5244],{},[1593,5240,1917],{},[1731,5242,5243],{},"Click element",[1721,5245,5246],{},[1724,5247,5248,1771,5250,5252,5253,5256,5257,5260,5261,1610],{},[1731,5249,1794],{},[1731,5251,1794],{},", then click on ",[1731,5254,5255],{},"Custom"," and tick ",[1731,5258,5259],{},"Use element text",". Finally, click ",[1731,5262,5263],{},"Complete",[1724,5265,5266,1729,5268,5270],{},[1593,5267,2829],{},[1731,5269,1787],{},[1721,5271,5272,5279,5297,5308,5315,5340,5346,5353],{},[1724,5273,5274,1771,5276,5278],{},[1731,5275,1794],{},[1731,5277,1794],{}," to open the multi-selector tool.",[1724,5280,5281,5282,5284,5285,5288,5289,5292,5293,5158],{},"In column ",[1731,5283,5152],{},", click the arrow, then click ",[1731,5286,5287],{},"Select link",". On the Black Box page, click the image in the ",[1731,5290,5291],{},"Product"," column, then repeat in the row below.\n",[2219,5294],{"src":5295,"alt":5296},"\u002Fdocs\u002Fguides\u002Fselect-data-black-box.webp","axiom.ai selecting data to scrape from Black Box",[1724,5298,5299,5300,5303,5304,5307],{},"Press ",[1731,5301,5302],{},"Shift + N"," to add a new column. On the page, select the ",[1731,5305,5306],{},"Product title"," in one row, then repeat in the next.",[1724,5309,5310,5311,5314],{},"Add another column. On the page, select the ",[1731,5312,5313],{},"BSR",", selecting the number in one row, then repeat in the next.",[1724,5316,5317,5318,5321,5322,5324,5325,5328,5329,5332,5333,5335,5336,5158],{},"To extract the ",[1731,5319,5320],{},"Price",", press ",[1731,5323,5302],{}," to add a new column. Then, in the new column, click the arrow and select ",[1731,5326,5327],{},"Custom Selector",", insert ",[1731,5330,5331],{},"[data-testid=\"table-cell-price\"]",", then press ",[1731,5334,5263],{},".\n",[2219,5337],{"src":5338,"alt":5339},"\u002Fdocs\u002Fguides\u002Fcustom-selector-black-box.webp","axiom.ai using a custom selector",[1724,5341,5342,5343,5307],{},"Add one more column. On the page, select the ",[1731,5344,5345],{},"Brand",[1724,5347,5348,5349,5352],{},"Select the ",[1731,5350,5351],{},"Next"," button for pagination using the right arrow key.",[1724,5354,5355,5356,5359],{},"Set a maximum number of results you wish to scrape. I chose ",[1731,5357,5358],{},"100"," when making this bot.",[1724,5361,5362,1729,5365,5367],{},[1593,5363,5364],{},"3.0",[1731,5366,4914],{},[1721,5368,5369,5374,5380,5390],{},[1724,5370,5371,5373],{},[1731,5372,1740],{},": Select your Google Sheet.",[1724,5375,5376,5379],{},[1731,5377,5378],{},"Sheet Name",": Choose the tab where you want to write the Amazon product data.",[1724,5381,5382,1771,5384,5386,5387,1610],{},[1731,5383,2100],{},[1731,5385,1774],{}," and choose ",[1731,5388,5389],{},"scraped-data-",[1724,5391,5392,1900,5395,5398],{},[1731,5393,5394],{},"Write Options",[1731,5396,5397],{},"Add to Existing Data"," to append new data without deleting existing data.",[1724,5400,5401,1729,5404,5406],{},[1593,5402,5403],{},"4.0",[1731,5405,1920],{},[1721,5407,5408,5412,5416,5424],{},[1724,5409,5410,5373],{},[1731,5411,1740],{},[1724,5413,5414,5082],{},[1731,5415,5378],{},[1724,5417,5418,5421,5422,1610],{},[1731,5419,5420],{},"First Row to Delete",": Leave this set to ",[1731,5423,1804],{},[1724,5425,5426,1801,5429,1610],{},[1731,5427,5428],{},"Last Row to Delete",[1731,5430,5431],{},"10",[1558,5433,5434],{},"The Black Box automation, when completed, should resemble the diagram below.",[2219,5436],{"src":5437,"className":5438,"alt":5440},"\u002Fdocs\u002Fguides\u002Fblack-box-axiom-ai-steps.webp",[5439],"mt-4","axiom.ai design pattern for building a bot to automate data extraction from helium10 tool black box",[1612,5442,5444],{"id":5443},"testing-your-black-box-automation","Testing your Black Box automation",[1558,5446,5447,5448,5451,5452,5455,5456,5458],{},"Once you have saved your ",[1593,5449,5450],{},"Helium 10 Black Box"," automation, click ",[1593,5453,5454],{},"\"Run\""," within the ",[1593,5457,5041],{}," extension to start extracting Amazon product data.",[2219,5460],{"src":5461,"alt":5462},"\u002Fdocs\u002Fguides\u002Fdata-google-sheet-black-box.WebP","axiom.ai data scraped into a Google Sheet",[1612,5464,1398],{"id":1967},[1718,5466,5467],{},[1721,5468,5469,5477],{},[1724,5470,5471,5474,5476],{},[1593,5472,5473],{},"Elements not found?",[1981,5475],{},"\nIf elements are not being clicked, try reselecting them. Changing marketplaces can affect selectors.",[1724,5478,5479,5482,1983,5484,5487],{},[1593,5480,5481],{},"Keyword data not loading in time?",[1981,5483],{},[1731,5485,5486],{},"Step 8",", adjust the wait time. The Cerebro tool can sometimes be slow to load data.",[1612,5489,5491],{"id":5490},"try-out-the-template","Try out the template",[1558,5493,5494,5495,5497,5498,5501,5502,5504],{},"While creating this guide and testing ",[1593,5496,5041],{}," on ",[1593,5499,5500],{},"Helium 10",", we also built a ",[1593,5503,2144],{},". If you choose to use the template, you will need to do the following:",[1718,5506,5507],{},[2182,5508,5509,5518,5528,5537],{},[1724,5510,5511,5514,5515,1610],{},[1593,5512,5513],{},"Step 1:"," Add your own ",[1593,5516,5517],{},"Google Sheet",[1724,5519,5520,5523,5524,5527],{},[1593,5521,5522],{},"Step 2.1:"," Add the ",[1593,5525,5526],{},"URL"," to the Black Box page while logged in.",[1724,5529,5530,5533,5534,5536],{},[1593,5531,5532],{},"Step 2.7:"," Select the ",[1593,5535,3461],{}," you wish to scrape.",[1724,5538,5539,5542,5543,1610],{},[1593,5540,5541],{},"Steps 2.8 and 2.9:"," Add your ",[1593,5544,5517],{},[1558,5546,5547,5548,5551],{},"Please note that this template is a ",[1593,5549,5550],{},"starting point",", and you may need to customize it.",[1558,5553,5554,5555,1610],{},"Click to download the ",[1562,5556,5557],{"href":5056,"download":1646},"Black Box template",[1612,5559,2423],{"id":2422},[1558,5561,5562,5563,5566,5567,5569,5570,5572],{},"Extracting product data from ",[1593,5564,5565],{},"Black Box"," is straightforward. You can simply point and select the data you want to extract. Some fields, like ",[1593,5568,5320],{},", may require a ",[1593,5571,2017],{},", but it’s easy to set up.",[1558,5574,5575,5576,5579,5580,5583,5584,5536],{},"You can fully customize this ",[1593,5577,5578],{},"automation"," by adding the ",[1593,5581,5582],{},"search criteria"," you want and selecting the ",[1593,5585,3461],{},[1558,5587,5588,5589,5592,5593,5595,5596,1610],{},"The same methods also apply to ",[1593,5590,5591],{},"Advanced Search Mode",". If you need help automating ",[1593,5594,5500],{},", reach out to ",[1593,5597,5598],{},[1562,5599,5601],{"href":5600},"mailto:support@axiom.ai","support@axiom.ai",[1558,5603,5604],{},[2434,5605,5606,5607,5610,5611,4902,5613,5615],{},"Testing was completed on ",[1593,5608,5609],{},"January 29, 2025",". Features in ",[1593,5612,5500],{},[1593,5614,5041],{}," may change over time, and updates may be needed.",{"title":1636,"searchDepth":1637,"depth":1637,"links":5617},[5618,5619,5620,5621,5622,5623],{"id":2172,"depth":1640,"text":5008},{"id":5034,"depth":1640,"text":5035},{"id":5443,"depth":1640,"text":5444},{"id":1967,"depth":1640,"text":1398},{"id":5490,"depth":1640,"text":5491},{"id":2422,"depth":1640,"text":2423},"Learn how to use axiom.ai to automate the extraction of product listings from Black Box, a Helium 10 tool. You will automate data entry by inputting criteria into the search fields, trigger the search automatically, and write the extracted data into a Google Sheet.",{"pinned":1646,"type":2143,"format":1718,"intent_type":2675,"intent":5626,"tags":5627,"platfrom":5628},"Extract data from websites",[2149,2682],[4984],{"title":4973,"description":5624},"guides\u002Fblack-box","AU_jBQq4FGoewRk0pdEfMaJX5Ns7uG8_lA0nhZAhrjE",{"id":5633,"title":5634,"body":5635,"date":1641,"description":6510,"extension":1643,"meta":6511,"navigation":1646,"order":1641,"path":6515,"seo":6516,"stem":6517,"__hash__":6518},"guides\u002Fguides\u002Fbluesky.md","How to post to Bluesky using an axiom.ai automation",{"type":1555,"value":5636,"toc":6499},[5637,5639,5642,5645,5647,5656,5672,5678,5682,5694,5698,5708,5732,5749,5873,5876,5880,5888,5936,5943,5954,6074,6077,6101,6105,6118,6134,6138,6141,6480,6482,6489,6491,6496],[1617,5638],{},[1558,5640,5641],{},"Automating the creation of new posts to Bluesky can offer your brand an opportunity to get their voice out into a new environment quickly. This allows you to build automations that can use data to create your posts. Combine this with bots that scrape data from websites, or read data from Google Sheets and you have a powerful automation. Even better? Combine it with a schedule.",[1558,5643,5644],{},"We recommend having a bit of experience with JavaScript before attempting this guide - our support team will be unable to assist with issues related to this code, or any modifications of it.",[1612,5646,2173],{"id":2172},[1558,5648,5649,5650,5655],{},"A Bluesky account is required to post on Bluesky, head to ",[1562,5651,5654],{"href":5652,"rel":5653},"https:\u002F\u002Fbsky.app",[1633],"bsky.app"," to get started.",[1718,5657,5658],{},[2182,5659,5660,5666],{},[1724,5661,5662,5665],{},[1593,5663,5664],{},"Username"," - Your username can be found on your Bluesky profile.",[1724,5667,5668,5671],{},[1593,5669,5670],{},"App password"," - To generate an app password head into Bluesky → Settings → Privacy and security → App passwords → \"Add App Password\". Store this for later - you won't be able to access it again.",[1558,5673,5674,5675,1610],{},"To learn more about managing login credentials within your automations, see ",[1562,5676,5677],{"href":638},"Logins",[1612,5679,5681],{"id":5680},"creating-a-new-bluesky-post-using-an-axiomai-automation","Creating a new Bluesky post using an axiom.ai automation",[1558,5683,5684,5685,5688,5689,5693],{},"To get started, create your automation as normal. Once you are ready to create your Bluesky post, continue with this guide. We'll show you how to use your automation data to create dynamic content. All of the code below is part of a single script which has been broken down to make it easier to follow and understand, these parts should all be combined into a single script within a single ",[1562,5686,5687],{"href":1226},"Write JavaScript"," step, see ",[1562,5690,5692],{"href":5691},"#full-script","full script"," for the whole script.",[2266,5695,5697],{"id":5696},"step-1-creating-an-authorisation-session","Step 1: Creating an authorisation session",[1558,5699,5700,5701,1575,5704,5707],{},"Authorising your account is the first step to automating posting on Bluesky. To do this, you will need your ",[1731,5702,5703],{},"username",[1731,5705,5706],{},"app password"," to get started. To begin, create an object containing your credentials:",[2346,5709,5711],{"className":2383,"code":5710,"language":2385,"meta":1636,"style":1636},"const authorisationData = {\n    \"identifier\": \"\u003CUSERNAME>.bsky.social\",\n    \"password\": \"\u003CAPP_PASSWORD>\"\n}\n",[1731,5712,5713,5718,5723,5728],{"__ignoreMap":1636},[2354,5714,5715],{"class":2356,"line":2357},[2354,5716,5717],{},"const authorisationData = {\n",[2354,5719,5720],{"class":2356,"line":1640},[2354,5721,5722],{},"    \"identifier\": \"\u003CUSERNAME>.bsky.social\",\n",[2354,5724,5725],{"class":2356,"line":1637},[2354,5726,5727],{},"    \"password\": \"\u003CAPP_PASSWORD>\"\n",[2354,5729,5730],{"class":2356,"line":1647},[2354,5731,4256],{},[1558,5733,5734,5735,5737,5738,1575,5741,5744,5745,5748],{},"Now that you have this, we can create a method to send a ",[1731,5736,2254],{}," request to Bluesky to authorise your account. We'll also be creating the ",[1731,5739,5740],{},"accessJwt",[1731,5742,5743],{},"did"," variables to hold the two pieces of data we need from the response. We will be sending this request to the ",[1731,5746,5747],{},"https:\u002F\u002Fbsky.social\u002Fxrpc\u002Fcom.atproto.server.createSession"," endpoint.",[2346,5750,5752],{"className":2383,"code":5751,"language":2385,"meta":1636,"style":1636},"var accessJwt;\nvar did;\n\nconst authorise = async () => {\n    try {\n        \u002F\u002F Create a POST request and send along your credentials from the `authorisationData` variable\n        const response = await fetch(\"https:\u002F\u002Fbsky.social\u002Fxrpc\u002Fcom.atproto.server.createSession\", {\n            method: \"POST,\n            headers: { \"Content-Type\": \"application\u002Fjson\" },\n            body: JSON.stringify(authorisationData)\n        })\n\n        \u002F\u002F Something went wrong with the request, double check your credentials and the URL used above\n        if (!response.ok) throw new Error(`Something went wrong: ${response.status}`);\n\n        \u002F\u002F Parse the response\n        const result = await response.json();\n\n        \u002F\u002F Access the information in the `results` variable for later use\n        accessJwt = result.accessJwt;\n        did = result.did;\n    } catch (error) {\n        throw error;\n    }\n}\n",[1731,5753,5754,5759,5764,5768,5773,5778,5783,5788,5793,5798,5803,5808,5812,5817,5822,5826,5831,5836,5840,5845,5850,5855,5860,5865,5869],{"__ignoreMap":1636},[2354,5755,5756],{"class":2356,"line":2357},[2354,5757,5758],{},"var accessJwt;\n",[2354,5760,5761],{"class":2356,"line":1640},[2354,5762,5763],{},"var did;\n",[2354,5765,5766],{"class":2356,"line":1637},[2354,5767,3520],{"emptyLinePlaceholder":1646},[2354,5769,5770],{"class":2356,"line":1647},[2354,5771,5772],{},"const authorise = async () => {\n",[2354,5774,5775],{"class":2356,"line":3523},[2354,5776,5777],{},"    try {\n",[2354,5779,5780],{"class":2356,"line":3595},[2354,5781,5782],{},"        \u002F\u002F Create a POST request and send along your credentials from the `authorisationData` variable\n",[2354,5784,5785],{"class":2356,"line":3673},[2354,5786,5787],{},"        const response = await fetch(\"https:\u002F\u002Fbsky.social\u002Fxrpc\u002Fcom.atproto.server.createSession\", {\n",[2354,5789,5790],{"class":2356,"line":3679},[2354,5791,5792],{},"            method: \"POST,\n",[2354,5794,5795],{"class":2356,"line":3685},[2354,5796,5797],{},"            headers: { \"Content-Type\": \"application\u002Fjson\" },\n",[2354,5799,5800],{"class":2356,"line":3708},[2354,5801,5802],{},"            body: JSON.stringify(authorisationData)\n",[2354,5804,5805],{"class":2356,"line":3761},[2354,5806,5807],{},"        })\n",[2354,5809,5810],{"class":2356,"line":3775},[2354,5811,3520],{"emptyLinePlaceholder":1646},[2354,5813,5814],{"class":2356,"line":3153},[2354,5815,5816],{},"        \u002F\u002F Something went wrong with the request, double check your credentials and the URL used above\n",[2354,5818,5819],{"class":2356,"line":3799},[2354,5820,5821],{},"        if (!response.ok) throw new Error(`Something went wrong: ${response.status}`);\n",[2354,5823,5824],{"class":2356,"line":3808},[2354,5825,3520],{"emptyLinePlaceholder":1646},[2354,5827,5828],{"class":2356,"line":4150},[2354,5829,5830],{},"        \u002F\u002F Parse the response\n",[2354,5832,5833],{"class":2356,"line":4168},[2354,5834,5835],{},"        const result = await response.json();\n",[2354,5837,5838],{"class":2356,"line":4176},[2354,5839,3520],{"emptyLinePlaceholder":1646},[2354,5841,5842],{"class":2356,"line":4182},[2354,5843,5844],{},"        \u002F\u002F Access the information in the `results` variable for later use\n",[2354,5846,5847],{"class":2356,"line":4187},[2354,5848,5849],{},"        accessJwt = result.accessJwt;\n",[2354,5851,5852],{"class":2356,"line":4208},[2354,5853,5854],{},"        did = result.did;\n",[2354,5856,5857],{"class":2356,"line":4220},[2354,5858,5859],{},"    } catch (error) {\n",[2354,5861,5862],{"class":2356,"line":4232},[2354,5863,5864],{},"        throw error;\n",[2354,5866,5867],{"class":2356,"line":4247},[2354,5868,4250],{},[2354,5870,5871],{"class":2356,"line":4253},[2354,5872,4256],{},[1558,5874,5875],{},"If all goes well, you'll now be authorised to continue with your script and create new posts on Bluesky.",[2266,5877,5879],{"id":5878},"step-2-create-a-new-post","Step 2: Create a new post",[1558,5881,5882,5883,1575,5885,5887],{},"To create a new post, ensure that you have completed the step above - without completing this step you will not be authorised to post to your Bluesky account. To create a new post, we first need to construct the body of the request that is to be sent to their API. This will use the data that you stored in the ",[1731,5884,5740],{},[1731,5886,5743],{}," variables previously.",[2346,5889,5891],{"className":2383,"code":5890,"language":2385,"meta":1636,"style":1636},"const data = {\n    \"repo\": did,\n    \"collection\": \"app.bsky.feed.post\",\n    \"record\": {\n        \"$type\": \"app.bsky.feed.post\",\n        \"text\": \"[custom-data]\",\n        \"createdAt\": `${new Date().toISOString()}`\n    }\n}\n",[1731,5892,5893,5898,5903,5908,5913,5918,5923,5928,5932],{"__ignoreMap":1636},[2354,5894,5895],{"class":2356,"line":2357},[2354,5896,5897],{},"const data = {\n",[2354,5899,5900],{"class":2356,"line":1640},[2354,5901,5902],{},"    \"repo\": did,\n",[2354,5904,5905],{"class":2356,"line":1637},[2354,5906,5907],{},"    \"collection\": \"app.bsky.feed.post\",\n",[2354,5909,5910],{"class":2356,"line":1647},[2354,5911,5912],{},"    \"record\": {\n",[2354,5914,5915],{"class":2356,"line":3523},[2354,5916,5917],{},"        \"$type\": \"app.bsky.feed.post\",\n",[2354,5919,5920],{"class":2356,"line":3595},[2354,5921,5922],{},"        \"text\": \"[custom-data]\",\n",[2354,5924,5925],{"class":2356,"line":3673},[2354,5926,5927],{},"        \"createdAt\": `${new Date().toISOString()}`\n",[2354,5929,5930],{"class":2356,"line":3679},[2354,5931,4250],{},[2354,5933,5934],{"class":2356,"line":3685},[2354,5935,4256],{},[1558,5937,5938,5939,5942],{},"You'll notice in the line ",[1731,5940,5941],{},"\"text\": \"[custom-data]\""," we used an axiom.ai data token - use the \"Insert data\" option to insert data from your automation into your \"text\" field to create dynamic posts that make use of your automation data.",[1558,5944,5945,5946,5949,5950,5953],{},"Next, we will want to create the post itself. We will be using the ",[1731,5947,5948],{},"https:\u002F\u002Fbsky.social\u002Fxrpc\u002Fcom.atproto.repo.createRecord"," endpoint. We'll also be creating a variable called ",[1731,5951,5952],{},"status"," to store the status of the response.",[2346,5955,5957],{"className":2383,"code":5956,"language":2385,"meta":1636,"style":1636},"var status;\n\nconst createPost = async () => {\n    \u002F\u002F Throw an error if there is no access token\n    if (!accessJwt) throw new Error(\"Access token missing\");\n\n    try {\n        \u002F\u002F Create a POST request, using the `accessJwt` variable for authorisation, and the `createPostObject()` function to create your data\n        const response = await fetch(\"https:\u002F\u002Fbsky.social\u002Fxrpc\u002Fcom.atproto.repo.createRecord\", {\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application\u002Fjson\",\n                \"Authorization\": `Bearer ${accessJwt}`\n            },\n            body: JSON.stringify(data)\n        })\n\n        \u002F\u002F Parse the response\n        const result = await response.json();\n\n        \u002F\u002F Access the information in the `results` variable for later use\n        status = result.validationStatus;\n    } catch (error) {\n        throw error;\n    }\n}\n",[1731,5958,5959,5964,5968,5973,5978,5983,5987,5991,5996,6001,6006,6010,6015,6020,6024,6029,6033,6037,6041,6045,6049,6053,6058,6062,6066,6070],{"__ignoreMap":1636},[2354,5960,5961],{"class":2356,"line":2357},[2354,5962,5963],{},"var status;\n",[2354,5965,5966],{"class":2356,"line":1640},[2354,5967,3520],{"emptyLinePlaceholder":1646},[2354,5969,5970],{"class":2356,"line":1637},[2354,5971,5972],{},"const createPost = async () => {\n",[2354,5974,5975],{"class":2356,"line":1647},[2354,5976,5977],{},"    \u002F\u002F Throw an error if there is no access token\n",[2354,5979,5980],{"class":2356,"line":3523},[2354,5981,5982],{},"    if (!accessJwt) throw new Error(\"Access token missing\");\n",[2354,5984,5985],{"class":2356,"line":3595},[2354,5986,3520],{"emptyLinePlaceholder":1646},[2354,5988,5989],{"class":2356,"line":3673},[2354,5990,5777],{},[2354,5992,5993],{"class":2356,"line":3679},[2354,5994,5995],{},"        \u002F\u002F Create a POST request, using the `accessJwt` variable for authorisation, and the `createPostObject()` function to create your data\n",[2354,5997,5998],{"class":2356,"line":3685},[2354,5999,6000],{},"        const response = await fetch(\"https:\u002F\u002Fbsky.social\u002Fxrpc\u002Fcom.atproto.repo.createRecord\", {\n",[2354,6002,6003],{"class":2356,"line":3708},[2354,6004,6005],{},"            method: \"POST\",\n",[2354,6007,6008],{"class":2356,"line":3761},[2354,6009,4049],{},[2354,6011,6012],{"class":2356,"line":3775},[2354,6013,6014],{},"                \"Content-Type\": \"application\u002Fjson\",\n",[2354,6016,6017],{"class":2356,"line":3153},[2354,6018,6019],{},"                \"Authorization\": `Bearer ${accessJwt}`\n",[2354,6021,6022],{"class":2356,"line":3799},[2354,6023,4082],{},[2354,6025,6026],{"class":2356,"line":3808},[2354,6027,6028],{},"            body: JSON.stringify(data)\n",[2354,6030,6031],{"class":2356,"line":4150},[2354,6032,5807],{},[2354,6034,6035],{"class":2356,"line":4168},[2354,6036,3520],{"emptyLinePlaceholder":1646},[2354,6038,6039],{"class":2356,"line":4176},[2354,6040,5830],{},[2354,6042,6043],{"class":2356,"line":4182},[2354,6044,5835],{},[2354,6046,6047],{"class":2356,"line":4187},[2354,6048,3520],{"emptyLinePlaceholder":1646},[2354,6050,6051],{"class":2356,"line":4208},[2354,6052,5844],{},[2354,6054,6055],{"class":2356,"line":4220},[2354,6056,6057],{},"        status = result.validationStatus;\n",[2354,6059,6060],{"class":2356,"line":4232},[2354,6061,5859],{},[2354,6063,6064],{"class":2356,"line":4247},[2354,6065,5864],{},[2354,6067,6068],{"class":2356,"line":4253},[2354,6069,4250],{},[2354,6071,6072],{"class":2356,"line":4259},[2354,6073,4256],{},[1558,6075,6076],{},"Finally, we are going to want to call these functions and return a response to be handled in step 3.",[2346,6078,6080],{"className":2383,"code":6079,"language":2385,"meta":1636,"style":1636},"await authorise();\nawait createPost();\n\nreturn status;\n",[1731,6081,6082,6087,6092,6096],{"__ignoreMap":1636},[2354,6083,6084],{"class":2356,"line":2357},[2354,6085,6086],{},"await authorise();\n",[2354,6088,6089],{"class":2356,"line":1640},[2354,6090,6091],{},"await createPost();\n",[2354,6093,6094],{"class":2356,"line":1637},[2354,6095,3520],{"emptyLinePlaceholder":1646},[2354,6097,6098],{"class":2356,"line":1647},[2354,6099,6100],{},"return status;\n",[2266,6102,6104],{"id":6103},"step-3-handling-the-response","Step 3: Handling the response",[1558,6106,6107,6108,6110,6111,6114,6115,6117],{},"Now that your post has been posted, we can make use of your data. If all has gone well, the ",[1731,6109,5952],{}," variable that has been returned will contain a string ",[1731,6112,6113],{},"valid",". This will be stored in the ",[1731,6116,4597],{}," data token that is output from the 'Write Javascript' step. You can use this in various steps to make a dynamic automation, such as:",[1721,6119,6120,6125,6130],{},[1724,6121,6122,2855],{},[1562,6123,6124],{"href":1052},"If\u002Felse",[1724,6126,6127,2855],{},[1562,6128,6129],{"href":944},"Continue only if a condition is met",[1724,6131,6132,2855],{},[1562,6133,939],{"href":940},[2266,6135,6137],{"id":6136},"full-script","Full script",[1558,6139,6140],{},"As previously mentioned, this script should be contained inside a single \"Write Javascript\" step. Find the full script below:",[2346,6142,6144],{"className":2383,"code":6143,"language":2385,"meta":1636,"style":1636},"const authorisationData = {\n    \"identifier\": \"\u003CUSERNAME>\",\n    \"password\": \"\u003CAPP_PASSWORD>\"\n}\n\nvar accessJwt;\nvar did;\n\nconst authorise = async () => {\n    try {\n        \u002F\u002F Create a POST request and send along your credentials from the `authorisationData` variable\n        const response = await fetch(\"https:\u002F\u002Fbsky.social\u002Fxrpc\u002Fcom.atproto.server.createSession\", {\n            method: \"POST,\n            headers: { \"Content-Type\": \"application\u002Fjson\" },\n            body: JSON.stringify(authorisationData)\n        })\n\n        \u002F\u002F Something went wrong with the request, double check your credentials and the URL used above\n        if (!response.ok) throw new Error(`Something went wrong: ${response.status}`);\n\n        \u002F\u002F Parse the response\n        const result = await response.json();\n\n        \u002F\u002F Access the information in the `results` variable for later use\n        accessJwt = result.accessJwt;\n        did = result.did;\n    } catch (error) {\n        throw error;\n    }\n}\n\nconst data = {\n    \"repo\": did,\n    \"collection\": \"app.bsky.feed.post\",\n    \"record\": {\n    \"$type\": \"app.bsky.feed.post\",\n    \"text\": \"[custom-data]\",\n    \"createdAt\": `${new Date().toISOString()}`\n    }\n}\n\nvar status;\n\nconst createPost = async () => {\n    \u002F\u002F Throw an error if there is no access token\n    if (!accessJwt) throw new Error(\"Access token missing\");\n\n    try {\n        \u002F\u002F Create a POST request, using the `accessJwt` variable for authorisation, and the `createPostObject()` function to create your data\n        const response = await fetch(\"https:\u002F\u002Fbsky.social\u002Fxrpc\u002Fcom.atproto.repo.createRecord\", {\n            method: \"POST\",\n            headers: {\n                \"Content-Type\": \"application\u002Fjson\",\n                \"Authorization\": `Bearer ${accessJwt}`\n            },\n            body: JSON.stringify(data)\n        })\n\n        \u002F\u002F Parse the response\n        const result = await response.json();\n\n        \u002F\u002F Access the information in the `results` variable for later use\n        status = result.validationStatus;\n    } catch (error) {\n        throw new Error(`Something wrong wrong: ${error}`)\n    }\n}\n\nawait authorise();\nawait createPost();\n\nreturn status;\n",[1731,6145,6146,6150,6155,6159,6163,6167,6171,6175,6179,6183,6187,6191,6195,6199,6203,6207,6211,6215,6219,6223,6227,6231,6235,6239,6243,6247,6251,6255,6260,6265,6269,6274,6279,6284,6289,6294,6300,6306,6312,6317,6322,6327,6332,6337,6342,6347,6352,6357,6361,6366,6371,6376,6381,6386,6391,6395,6399,6404,6409,6414,6419,6424,6429,6434,6439,6445,6450,6455,6460,6465,6470,6475],{"__ignoreMap":1636},[2354,6147,6148],{"class":2356,"line":2357},[2354,6149,5717],{},[2354,6151,6152],{"class":2356,"line":1640},[2354,6153,6154],{},"    \"identifier\": \"\u003CUSERNAME>\",\n",[2354,6156,6157],{"class":2356,"line":1637},[2354,6158,5727],{},[2354,6160,6161],{"class":2356,"line":1647},[2354,6162,4256],{},[2354,6164,6165],{"class":2356,"line":3523},[2354,6166,3520],{"emptyLinePlaceholder":1646},[2354,6168,6169],{"class":2356,"line":3595},[2354,6170,5758],{},[2354,6172,6173],{"class":2356,"line":3673},[2354,6174,5763],{},[2354,6176,6177],{"class":2356,"line":3679},[2354,6178,3520],{"emptyLinePlaceholder":1646},[2354,6180,6181],{"class":2356,"line":3685},[2354,6182,5772],{},[2354,6184,6185],{"class":2356,"line":3708},[2354,6186,5777],{},[2354,6188,6189],{"class":2356,"line":3761},[2354,6190,5782],{},[2354,6192,6193],{"class":2356,"line":3775},[2354,6194,5787],{},[2354,6196,6197],{"class":2356,"line":3153},[2354,6198,5792],{},[2354,6200,6201],{"class":2356,"line":3799},[2354,6202,5797],{},[2354,6204,6205],{"class":2356,"line":3808},[2354,6206,5802],{},[2354,6208,6209],{"class":2356,"line":4150},[2354,6210,5807],{},[2354,6212,6213],{"class":2356,"line":4168},[2354,6214,3520],{"emptyLinePlaceholder":1646},[2354,6216,6217],{"class":2356,"line":4176},[2354,6218,5816],{},[2354,6220,6221],{"class":2356,"line":4182},[2354,6222,5821],{},[2354,6224,6225],{"class":2356,"line":4187},[2354,6226,3520],{"emptyLinePlaceholder":1646},[2354,6228,6229],{"class":2356,"line":4208},[2354,6230,5830],{},[2354,6232,6233],{"class":2356,"line":4220},[2354,6234,5835],{},[2354,6236,6237],{"class":2356,"line":4232},[2354,6238,3520],{"emptyLinePlaceholder":1646},[2354,6240,6241],{"class":2356,"line":4247},[2354,6242,5844],{},[2354,6244,6245],{"class":2356,"line":4253},[2354,6246,5849],{},[2354,6248,6249],{"class":2356,"line":4259},[2354,6250,5854],{},[2354,6252,6253],{"class":2356,"line":4264},[2354,6254,5859],{},[2354,6256,6258],{"class":2356,"line":6257},28,[2354,6259,5864],{},[2354,6261,6263],{"class":2356,"line":6262},29,[2354,6264,4250],{},[2354,6266,6267],{"class":2356,"line":2940},[2354,6268,4256],{},[2354,6270,6272],{"class":2356,"line":6271},31,[2354,6273,3520],{"emptyLinePlaceholder":1646},[2354,6275,6277],{"class":2356,"line":6276},32,[2354,6278,5897],{},[2354,6280,6282],{"class":2356,"line":6281},33,[2354,6283,5902],{},[2354,6285,6287],{"class":2356,"line":6286},34,[2354,6288,5907],{},[2354,6290,6292],{"class":2356,"line":6291},35,[2354,6293,5912],{},[2354,6295,6297],{"class":2356,"line":6296},36,[2354,6298,6299],{},"    \"$type\": \"app.bsky.feed.post\",\n",[2354,6301,6303],{"class":2356,"line":6302},37,[2354,6304,6305],{},"    \"text\": \"[custom-data]\",\n",[2354,6307,6309],{"class":2356,"line":6308},38,[2354,6310,6311],{},"    \"createdAt\": `${new Date().toISOString()}`\n",[2354,6313,6315],{"class":2356,"line":6314},39,[2354,6316,4250],{},[2354,6318,6320],{"class":2356,"line":6319},40,[2354,6321,4256],{},[2354,6323,6325],{"class":2356,"line":6324},41,[2354,6326,3520],{"emptyLinePlaceholder":1646},[2354,6328,6330],{"class":2356,"line":6329},42,[2354,6331,5963],{},[2354,6333,6335],{"class":2356,"line":6334},43,[2354,6336,3520],{"emptyLinePlaceholder":1646},[2354,6338,6340],{"class":2356,"line":6339},44,[2354,6341,5972],{},[2354,6343,6345],{"class":2356,"line":6344},45,[2354,6346,5977],{},[2354,6348,6350],{"class":2356,"line":6349},46,[2354,6351,5982],{},[2354,6353,6355],{"class":2356,"line":6354},47,[2354,6356,3520],{"emptyLinePlaceholder":1646},[2354,6358,6359],{"class":2356,"line":3376},[2354,6360,5777],{},[2354,6362,6364],{"class":2356,"line":6363},49,[2354,6365,5995],{},[2354,6367,6369],{"class":2356,"line":6368},50,[2354,6370,6000],{},[2354,6372,6374],{"class":2356,"line":6373},51,[2354,6375,6005],{},[2354,6377,6379],{"class":2356,"line":6378},52,[2354,6380,4049],{},[2354,6382,6384],{"class":2356,"line":6383},53,[2354,6385,6014],{},[2354,6387,6389],{"class":2356,"line":6388},54,[2354,6390,6019],{},[2354,6392,6393],{"class":2356,"line":2674},[2354,6394,4082],{},[2354,6396,6397],{"class":2356,"line":2142},[2354,6398,6028],{},[2354,6400,6402],{"class":2356,"line":6401},57,[2354,6403,5807],{},[2354,6405,6407],{"class":2356,"line":6406},58,[2354,6408,3520],{"emptyLinePlaceholder":1646},[2354,6410,6412],{"class":2356,"line":6411},59,[2354,6413,5830],{},[2354,6415,6417],{"class":2356,"line":6416},60,[2354,6418,5835],{},[2354,6420,6422],{"class":2356,"line":6421},61,[2354,6423,3520],{"emptyLinePlaceholder":1646},[2354,6425,6427],{"class":2356,"line":6426},62,[2354,6428,5844],{},[2354,6430,6432],{"class":2356,"line":6431},63,[2354,6433,6057],{},[2354,6435,6437],{"class":2356,"line":6436},64,[2354,6438,5859],{},[2354,6440,6442],{"class":2356,"line":6441},65,[2354,6443,6444],{},"        throw new Error(`Something wrong wrong: ${error}`)\n",[2354,6446,6448],{"class":2356,"line":6447},66,[2354,6449,4250],{},[2354,6451,6453],{"class":2356,"line":6452},67,[2354,6454,4256],{},[2354,6456,6458],{"class":2356,"line":6457},68,[2354,6459,3520],{"emptyLinePlaceholder":1646},[2354,6461,6463],{"class":2356,"line":6462},69,[2354,6464,6086],{},[2354,6466,6468],{"class":2356,"line":6467},70,[2354,6469,6091],{},[2354,6471,6473],{"class":2356,"line":6472},71,[2354,6474,3520],{"emptyLinePlaceholder":1646},[2354,6476,6478],{"class":2356,"line":6477},72,[2354,6479,6100],{},[1612,6481,2403],{"id":2402},[1558,6483,6484,6485,6488],{},"Once you have the script in place, hit \"Run\". If there are any errors, follow the instructions or see ",[1562,6486,6487],{"href":1409},"common errors"," for more details. If successful, you will see your post appear on Bluesky - congrats!",[1612,6490,2423],{"id":2422},[1558,6492,6493,6494,1610],{},"As Bluesky continues to grow in popularity, we are likely to see more and more brands move over to the social network site. Automating posting to this site has been made easy due to the protocols that they offer and when combined with axiom.ai allows you to create an automated posting bot that can do most of the heavy lifting. You can also combine this bot with a bot that posts to Facebook, X and LinkedIn using our ",[1562,6495,1963],{"href":1962},[2438,6497,6498],{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1636,"searchDepth":1637,"depth":1637,"links":6500},[6501,6502,6508,6509],{"id":2172,"depth":1640,"text":2173},{"id":5680,"depth":1640,"text":5681,"children":6503},[6504,6505,6506,6507],{"id":5696,"depth":1637,"text":5697},{"id":5878,"depth":1637,"text":5879},{"id":6103,"depth":1637,"text":6104},{"id":6136,"depth":1637,"text":6137},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"This guide explains how to automate posting to Bluesky using an axiom.ai automation with JavaScript. Learn to authorize, create posts, and handle API responses.",{"type":1731,"format":1718,"intent_type":2675,"intent":2676,"tags":6512,"platfrom":6513},[2678,2942],[6514],"Bluesky","\u002Fguides\u002Fbluesky",{"title":5634,"description":6510},"guides\u002Fbluesky","uSOGo6o9AUiUB0USc9agE-krmAXL848Y7oQsur_UCcI",{"id":6520,"title":6521,"body":6522,"date":1641,"description":6723,"extension":1643,"meta":6724,"navigation":1646,"order":1641,"path":6728,"seo":6729,"stem":6730,"__hash__":6731},"guides\u002Fguides\u002Fcapture-network-requests.md","How to capture network requests from a page",{"type":1555,"value":6523,"toc":6717},[6524,6526,6529,6531,6534,6538,6554,6667,6684,6692,6694,6706,6708,6714],[1617,6525],{},[1558,6527,6528],{},"Capturing network requests from a page can be very helpful in understanding the functionality of a page, and what resources that they are loading. This can be done using your automation and some simple code.",[1612,6530,2173],{"id":2172},[1558,6532,6533],{},"To get started, create a new automation.",[1612,6535,6537],{"id":6536},"capturing-network-requests","Capturing network requests",[1558,6539,6540,6541,6543,6544,6546,6547,6550,6551,6553],{},"As the first step in your automation, add a ",[1562,6542,1043],{"href":1044}," step. Then, add a ",[1562,6545,3918],{"href":1226}," step to your automation. The following will return an array of arrays that contains the ",[1731,6548,6549],{},"entryType"," and the ",[1731,6552,3630],{}," of the entries.",[2346,6555,6557],{"className":2383,"code":6556,"language":2385,"meta":1636,"style":1636},"var resources = [];\n\n\u002F\u002F Grab the resources\nconst entries = window.performance.getEntriesByType(\"resource\");\n\n\u002F\u002F Loop through the PerformanceEntry objects that were returned, add these to the `resources` array.\nentries.forEach((entry) => {\n    resources.push([entry.entryType, entry.name]);\n})\n\n\u002F\u002F Return the data\nreturn resources;\n",[1731,6558,6559,6573,6577,6582,6605,6609,6614,6635,6646,6651,6655,6660],{"__ignoreMap":1636},[2354,6560,6561,6564,6567,6570],{"class":2356,"line":2357},[2354,6562,6563],{"class":3608},"var",[2354,6565,6566],{"class":2395}," resources ",[2354,6568,6569],{"class":3608},"=",[2354,6571,6572],{"class":2395}," [];\n",[2354,6574,6575],{"class":2356,"line":1640},[2354,6576,3520],{"emptyLinePlaceholder":1646},[2354,6578,6579],{"class":2356,"line":1637},[2354,6580,6581],{"class":4535},"\u002F\u002F Grab the resources\n",[2354,6583,6584,6586,6589,6591,6594,6597,6599,6602],{"class":2356,"line":1647},[2354,6585,3932],{"class":3608},[2354,6587,6588],{"class":3505}," entries",[2354,6590,3938],{"class":3608},[2354,6592,6593],{"class":2395}," window.performance.",[2354,6595,6596],{"class":3993},"getEntriesByType",[2354,6598,4159],{"class":2395},[2354,6600,6601],{"class":2364},"\"resource\"",[2354,6603,6604],{"class":2395},");\n",[2354,6606,6607],{"class":2356,"line":3523},[2354,6608,3520],{"emptyLinePlaceholder":1646},[2354,6610,6611],{"class":2356,"line":3595},[2354,6612,6613],{"class":4535},"\u002F\u002F Loop through the PerformanceEntry objects that were returned, add these to the `resources` array.\n",[2354,6615,6616,6619,6622,6625,6628,6631,6633],{"class":2356,"line":3673},[2354,6617,6618],{"class":2395},"entries.",[2354,6620,6621],{"class":3993},"forEach",[2354,6623,6624],{"class":2395},"((",[2354,6626,6627],{"class":2360},"entry",[2354,6629,6630],{"class":2395},") ",[2354,6632,4005],{"class":3608},[2354,6634,4008],{"class":2395},[2354,6636,6637,6640,6643],{"class":2356,"line":3679},[2354,6638,6639],{"class":2395},"    resources.",[2354,6641,6642],{"class":3993},"push",[2354,6644,6645],{"class":2395},"([entry.entryType, entry.name]);\n",[2354,6647,6648],{"class":2356,"line":3685},[2354,6649,6650],{"class":2395},"})\n",[2354,6652,6653],{"class":2356,"line":3708},[2354,6654,3520],{"emptyLinePlaceholder":1646},[2354,6656,6657],{"class":2356,"line":3761},[2354,6658,6659],{"class":4535},"\u002F\u002F Return the data\n",[2354,6661,6662,6664],{"class":2356,"line":3775},[2354,6663,4587],{"class":3608},[2354,6665,6666],{"class":2395}," resources;\n",[1558,6668,6669,6670,6673,6674,6679,6680,1610],{},"The ",[1731,6671,6672],{},"window.performance.getEntriesByType(\"resource\")"," will return an array of ",[1562,6675,6678],{"href":6676,"rel":6677},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FPerformanceEntry",[1633],"PerformanceEntry"," objects that can be used to access the resources. Check out the developer documentation for more information on the information that can be accessed using this function: ",[1562,6681,6683],{"href":6676,"rel":6682},[1633],"developer.mozilla.org",[1558,6685,6686,6687,6689,6690,2855],{},"You'll find the data retrieved in the ",[1731,6688,4597],{}," data token. This can be used in later steps of your automation, for example, written to a Google Sheet using the ",[1562,6691,4914],{"href":1214},[1612,6693,2403],{"id":2402},[1558,6695,6696,6697,6699,6700,6702,6703,6705],{},"To test, ensure that you have a URL set within the \"Go to page\" step. Next, you can use the ",[1562,6698,4604],{"href":980}," step, or the ",[1562,6701,4914],{"href":1214}," step to output the ",[1731,6704,4597],{}," data token that should contain the data regarding the network requests that have been captured.",[1612,6707,2423],{"id":2422},[1558,6709,6710,6711,1610],{},"These are numerous reasons why you may wish to capture network requests on a third-party website, including integration testing, security testing, or even learning and development opportunities. axiom.ai gives you the ability to do this with ease using just two steps. We are excited to see what you do with this - let us know over in our ",[1562,6712,4934],{"href":1631,"rel":6713},[1633],[2438,6715,6716],{},"html pre.shiki code .sjeE4, html code.shiki .sjeE4{--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sU953, html code.shiki .sU953{--shiki-default:#6E7781;--shiki-dark:#8B949E}html pre.shiki code .sHrmB, html code.shiki .sHrmB{--shiki-default:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .sbjLL, html code.shiki .sbjLL{--shiki-default:#8250DF;--shiki-dark:#D2A8FF}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .sTDnQ, html code.shiki .sTDnQ{--shiki-default:#953800;--shiki-dark:#FFA657}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1636,"searchDepth":1637,"depth":1637,"links":6718},[6719,6720,6721,6722],{"id":2172,"depth":1640,"text":2173},{"id":6536,"depth":1640,"text":6537},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"Learn how to capture network requests from a page using an axiom.ai automation",{"type":1731,"format":1718,"intent_type":2145,"intent":5626,"tags":6725,"platfrom":6727},[6726],"network",[3380],"\u002Fguides\u002Fcapture-network-requests",{"title":6521,"description":6723},"guides\u002Fcapture-network-requests","JsO_-iPRJHagJQUyy7vbL4Te9w9V9n4dCxm6lj_4xOY",{"id":6733,"title":6734,"body":6735,"date":1641,"description":7421,"extension":1643,"meta":7422,"navigation":1646,"order":1641,"path":5000,"seo":7425,"stem":7426,"__hash__":7427},"guides\u002Fguides\u002Fcerebro.md","How to download ASIN data from Cerebro into a Google Sheet",{"type":1555,"value":6736,"toc":7412},[6737,6739,6751,6756,6767,6770,6779,6781,6783,6793,6825,6829,6831,6834,6841,7230,7233,7238,7242,7244,7256,7262,7288,7292,7294,7302,7354,7358,7363,7365,7367,7389,7399,7401],[1617,6738],{},[1558,6740,6741,6742,6746,6747,6750],{},"Cerebro is a tool from ",[1593,6743,6744],{},[1562,6745,4984],{"href":4983}," that allows Amazon sellers to conduct ",[1593,6748,6749],{},"reverse ASIN lookups",". It helps identify keywords for which a competitor's product is ranking, providing insights into keyword volume. Extracting keywords is tedious, but a bot can automate it for you, ensuring you get the most out of your Helium10 subscription.",[2219,6752],{"src":6753,"className":6754,"alt":6755},"\u002Fdocs\u002Fguides\u002Fcerebro-search-field.webp",[4990],"Atuomate data entry into the Cerebro search field.",[1558,6757,6758,6759,6762,6763,6766],{},"In this guide, you'll learn how to use a bot to load the ",[1593,6760,6761],{},"Cerebro homepage",", enter 10 ASINs into the search field, and click ",[1593,6764,6765],{},"\"Get Keywords.\""," The bot will then scroll the page, click \"Export,\" and download the CSV file. After that, it will import the CSV and write the data to a Google Sheet. Once the bot completes its first loop, it will delete the processed ASINs and repeat the loop with a new set of ASINs.",[1558,6768,6769],{},"We also chose to export the data rather than scrape it directly from the page because exporting is significantly faster than scraping page by page if we want all the data.",[1558,6771,6772,6773,4902,6775,1610],{},"Check out our other Helium10 guides if you're interested in automating ",[1562,6774,5565],{"href":5004},[1562,6776,6778],{"href":6777},"\u002Fguides\u002FMagnet","Magnet",[1612,6780,2173],{"id":2172},[1617,6782],{},[1558,6784,6785,6786,6788,6789,6792],{},"To begin, create a ",[1593,6787,5517],{}," and add two tabs: one for ",[1593,6790,6791],{},"ASINs"," and another for storing extracted data.",[1718,6794,6795],{},[2182,6796,6797,6806,6816],{},[1724,6798,6799,6801,6802,6805],{},[1593,6800,5018],{}," If you're logged into Google, type ",[1731,6803,6804],{},"sheet.new"," in your browser to quickly create a new sheet.",[1724,6807,6808,5542,6810,6813,6814,1610],{},[1593,6809,5024],{},[1593,6811,6812],{},"ASIN numbers"," into the first tab, column ",[1593,6815,5152],{},[1724,6817,6818,6820,6821,6824],{},[1593,6819,5030],{}," Name the second tab ",[1593,6822,6823],{},"\"ASIN data\""," and leave it blank.",[1612,6826,6828],{"id":6827},"how-to-automate-extracting-the-asin-data","How to automate extracting the ASIN data",[1617,6830],{},[1558,6832,6833],{},"To start building your bot, open axiom.ai and click \"New Automation\" to launch the no-code bot builder. Then, click \"Add First Step\" and follow the guide.",[1558,6835,5053,6836,5057,6839],{},[1562,6837,2144],{"href":6838,"download":1646},"\u002Fdocs\u002Fguides\u002Ftemplates\u002Faxiom_helium10_cerebro.json",[1562,6840,5060],{"href":849},[1718,6842,6843],{},[1721,6844,6845,6871,6890,6907,6937,6960,6993,7027,7045,7065,7103,7120,7146,7180,7210],{},[1724,6846,6847,1729,6849,6851],{},[1593,6848,1728],{},[1731,6850,1733],{},[1721,6852,6853,6857,6862],{},[1724,6854,6855,5077],{},[1731,6856,1740],{},[1724,6858,6859,6861],{},[1731,6860,1746],{},": Choose the tab containing the ASINs.",[1724,6863,6864,6867,6868,6870],{},[1731,6865,6866],{},"Last cell",": Enter ",[1731,6869,5431],{},", the maximum number of ASINs we can search per loop.",[1724,6872,6873,1729,6875,6877],{},[1593,6874,1752],{},[1731,6876,1043],{},[1721,6878,6879],{},[1724,6880,6881,5115,6883,5335,6886,5158],{},[1731,6882,1770],{},[1731,6884,6885],{},"\"members.helium10.com\u002Fcerebro\u002Famazon\u002Fview\u002Fxxxxxxxx?accountId=xxxxxxx\"",[2219,6887],{"src":6888,"alt":6889},"\u002Fdocs\u002Fguides\u002Fgoto-page-cerebro.webp","axiom.ai using the go-to page step to load the Cerebro tool",[1724,6891,6892,1729,6894,6896],{},[1593,6893,5364],{},[1731,6895,667],{},[1721,6897,6898],{},[1724,6899,6900,1771,6902,5097,6904,6906],{},[1731,6901,667],{},[1731,6903,1774],{},[1731,6905,1778],{},". The loop step will now iterate through the ASINs in the Google Sheet.",[1724,6908,6909,1729,6911,6913],{},[1593,6910,5403],{},[1731,6912,293],{},[1721,6914,6915,6924],{},[1724,6916,6917,1771,6919,5097,6921,6923],{},[1731,6918,2580],{},[1731,6920,1774],{},[1731,6922,1778],{}," to pass the ASIN numbers from the sheet.",[1724,6925,6926,6929,6930,6932,6933,5158],{},[1731,6927,6928],{},"Select column",": Choose column ",[1731,6931,5152],{}," in the preview.\n",[2219,6934],{"src":6935,"alt":6936},"\u002Fdocs\u002Fguides\u002Fcerebro-enter-text-axiom-ai.webp","axiom.ai using the enter text step to enter ASINs in the Cerebro search field",[1724,6938,6939,1729,6942,6945],{},[1593,6940,6941],{},"5.0",[1731,6943,6944],{},"Press key(s)",[1721,6946,6947],{},[1724,6948,6949,6952,6953,6956,6957,1610],{},[1731,6950,6951],{},"Key",": Press ",[1731,6954,6955],{},"Record",", then ",[1731,6958,6959],{},"Tab",[1724,6961,6962,1729,6965,6967],{},[1593,6963,6964],{},"6.0",[1731,6966,5243],{},[1721,6968,6969,6980],{},[1724,6970,6971,1771,6973,6975,6976,6979],{},[1731,6972,1794],{},[1731,6974,1794],{},", then click on the ",[1731,6977,6978],{},"Get Keywords"," button.",[1724,6981,6982,6984,6985,6987,6988,5260,6991,1610],{},[1731,6983,5255],{},": In the selector tool, click ",[1731,6986,5255],{},", then tick ",[1731,6989,6990],{},"Use element text instead of HTML",[1731,6992,5263],{},[1724,6994,6995,1729,6998,7000],{},[1593,6996,6997],{},"7.0",[1731,6999,5243],{},[1721,7001,7002,7017],{},[1724,7003,7004,1771,7006,5252,7008,7010,7011,4902,7014,1610],{},[1731,7005,1794],{},[1731,7007,1794],{},[1731,7009,5255],{}," and insert ",[1731,7012,7013],{},"[data-testid=\"runnewsearch\"]",[1731,7015,7016],{},"[data-testid=\"loadfromhistory\"]",[1724,7018,7019,7022,7023,5158],{},[1731,7020,7021],{},"Optional Click",": Tick this option, as the pop-up does not always appear.\n",[2219,7024],{"src":7025,"alt":7026},"\u002Fdocs\u002Fguides\u002Fcerebro-dialog-history.webp","axiom.ai interacting with dialog in Cerebro during bot run",[1724,7028,7029,1729,7032,7034],{},[1593,7030,7031],{},"8.0",[1731,7033,349],{},[1721,7035,7036],{},[1724,7037,7038,1863,7041,7044],{},[1731,7039,7040],{},"Wait time",[1731,7042,7043],{},"7000"," to make the bot wait 7 seconds. You may need to experiment with wait time.",[1724,7046,7047,1729,7050,7052],{},[1593,7048,7049],{},"9.0",[1731,7051,5243],{},[1721,7053,7054],{},[1724,7055,7056,1771,7058,5252,7060,7010,7062,1610],{},[1731,7057,1794],{},[1731,7059,1794],{},[1731,7061,5255],{},[1731,7063,7064],{},"#cerebro-amazon-single-com_wrapper button[data-testid=\"exportdata\"]",[1724,7066,7067,1729,7070,7073],{},[1593,7068,7069],{},"10.0",[1731,7071,7072],{},"Download file",[1721,7074,7075,7093,7098],{},[1724,7076,7077,1771,7079,7081,7082,5256,7084,7086,7087,7090,7091,1610],{},[1731,7078,1794],{},[1731,7080,1794],{},", then click ",[1731,7083,5255],{},[1731,7085,6990],{},". Insert ",[1731,7088,7089],{},"\"...as a CSV file.\""," Then click ",[1731,7092,5263],{},[1724,7094,7095,7097],{},[1731,7096,3261],{},": Set a folder path to download into.",[1724,7099,7100,7102],{},[1731,7101,3267],{},": Enter a name to save the file as.",[1724,7104,7105,1729,7108,7110],{},[1593,7106,7107],{},"11.0",[1731,7109,349],{},[1721,7111,7112],{},[1724,7113,7114,1863,7116,7119],{},[1731,7115,7040],{},[1731,7117,7118],{},"4000"," to make the bot wait 4 seconds. You may need to experiment with wait time.",[1724,7121,7122,1729,7125,7128],{},[1593,7123,7124],{},"12.0",[1731,7126,7127],{},"Import CSV File",[1721,7129,7130],{},[1724,7131,7132,7135,7136,5097,7138,7141,7142,5158],{},[1731,7133,7134],{},"Import CSV",": Insert the folder path, then click ",[1731,7137,1774],{},[1731,7139,7140],{},"File-download-data"," to add the file name to the path.\n",[2219,7143],{"src":7144,"alt":7145},"\u002Fdocs\u002Fguides\u002Faxiom-ai-set-file-path-import-csv.webp","axiom.ai setting file path to import CSV",[1724,7147,7148,1729,7151,7153],{},[1593,7149,7150],{},"13.0",[1731,7152,4914],{},[1721,7154,7155,7159,7164,7173],{},[1724,7156,7157,5373],{},[1731,7158,1740],{},[1724,7160,7161,7163],{},[1731,7162,5378],{},": Choose the tab where you want to write the ASIN data.",[1724,7165,7166,1771,7168,5386,7170,1610],{},[1731,7167,2100],{},[1731,7169,1774],{},[1731,7171,7172],{},"Imported-csv",[1724,7174,7175,1900,7177,7179],{},[1731,7176,5394],{},[1731,7178,5397],{}," to append new data without deleting the existing data.",[1724,7181,7182,1729,7185,7187],{},[1593,7183,7184],{},"14.0",[1731,7186,1920],{},[1721,7188,7189,7193,7198,7204],{},[1724,7190,7191,5373],{},[1731,7192,1740],{},[1724,7194,7195,7197],{},[1731,7196,5378],{},": Choose the tab containing the ASIN numbers.",[1724,7199,7200,5421,7202,1610],{},[1731,7201,5420],{},[1731,7203,1804],{},[1724,7205,7206,1801,7208,1610],{},[1731,7207,5428],{},[1731,7209,5431],{},[1724,7211,7212,1729,7215,7217],{},[1593,7213,7214],{},"15.0",[1731,7216,1070],{},[1721,7218,7219,7224],{},[1724,7220,7221,5373],{},[1731,7222,7223],{},"Jump to step",[1724,7225,7226,7229],{},[1731,7227,7228],{},"Maximum cycles",": Set the maximum number of times the bot should repeat the process.",[1558,7231,7232],{},"The Cerebro automation, when completed, should resemble the diagram below.",[2219,7234],{"src":7235,"className":7236,"alt":7237},"\u002Fdocs\u002Fguides\u002Fhelium10-cerebro-axiom-bot-design-pattern.webp",[5439],"axiom.ai design pattern for building a bot to automate dat extraction from helium10 tool Cerebro",[1612,7239,7241],{"id":7240},"testing-your-cerebro-automation","Testing your Cerebro automation",[1617,7243],{},[1558,7245,5447,7246,5451,7248,5455,7250,7252,7253,1610],{},[1593,7247,4984],{},[1593,7249,5454],{},[1593,7251,5041],{}," extension to start extracting ",[1593,7254,7255],{},"ASIN data",[2266,7257,7259],{"id":7258},"issues-you-may-encounter",[1593,7260,7261],{},"Issues you may encounter:",[2182,7263,7264,7274],{},[1724,7265,7266,7269,7270,7273],{},[1593,7267,7268],{},"Click elements not found:"," If elements are not being clicked, you may need to reselect them. Changing ",[1593,7271,7272],{},"marketplaces"," can sometimes affect selectors.",[1724,7275,7276,1729,7279,7281,7282,7285,7286,1610],{},[1593,7277,7278],{},"Keyword data not loading in time:",[1593,7280,5001],{}," can sometimes be slow to load data. You may need to adjust the ",[1593,7283,7284],{},"wait time"," in ",[1593,7287,5486],{},[1612,7289,7291],{"id":7290},"try-the-cerebro-template","Try the Cerebro template",[1617,7293],{},[1558,7295,5494,7296,5497,7298,5501,7300,5504],{},[1593,7297,5041],{},[1593,7299,4984],{},[1593,7301,2144],{},[2182,7303,7304,7310,7322,7333,7347],{},[1724,7305,7306,5514,7308,1610],{},[1593,7307,5513],{},[1593,7309,5517],{},[1724,7311,7312,7315,7316,7318,7319,1610],{},[1593,7313,7314],{},"Step 2:"," Insert the ",[1593,7317,5526],{}," to the ",[1593,7320,7321],{},"Cerebro landing page",[1724,7323,7324,7315,7327,1575,7330,1610],{},[1593,7325,7326],{},"Step 8:",[1593,7328,7329],{},"download path",[1593,7331,7332],{},"file name",[1724,7334,7335,7338,7339,7342,7343,7346],{},[1593,7336,7337],{},"Step 10:"," Set the ",[1593,7340,7341],{},"import path",", including the ",[1593,7344,7345],{},"download file token"," (contains the file name).",[1724,7348,7349,5514,7352,1610],{},[1593,7350,7351],{},"Steps 11 and 12:",[1593,7353,5517],{},[1558,7355,5547,7356,5551],{},[1593,7357,5550],{},[1558,7359,5554,7360],{},[1562,7361,7362],{"href":6838,"download":1646},"Cerebro template.",[1612,7364,2423],{"id":2422},[1617,7366],{},[1558,7368,7369,7370,7372,7373,7376,7377,7380,7381,7384,7385,7388],{},"Extracting data in ",[1593,7371,5001],{}," isn’t always straightforward, but it's possible with automation. For example, ",[1593,7374,7375],{},"changing marketplaces"," can affect the ",[1593,7378,7379],{},"CSS selectors"," used to click on elements. I also found that, due to the ",[1593,7382,7383],{},"large quantity of data",", it's ",[1593,7386,7387],{},"faster to download the CSV and import it into a Google Sheet"," rather than scrape the data page by page.",[1558,7390,7391,7392,5595,7394,7398],{},"If you need help automating ",[1593,7393,4984],{},[1593,7395,7396],{},[1562,7397,5601],{"href":5600},", and we’ll help you create an automation.",[1617,7400],{},[1558,7402,7403],{},[2434,7404,5606,7405,5610,7408,4902,7410,5615],{},[1593,7406,7407],{},"January 22, 2025",[1593,7409,4984],{},[1593,7411,5041],{},{"title":1636,"searchDepth":1637,"depth":1637,"links":7413},[7414,7415,7416,7419,7420],{"id":2172,"depth":1640,"text":2173},{"id":6827,"depth":1640,"text":6828},{"id":7240,"depth":1640,"text":7241,"children":7417},[7418],{"id":7258,"depth":1637,"text":7261},{"id":7290,"depth":1640,"text":7291},{"id":2422,"depth":1640,"text":2423},"Learn how to use axiom.ai to automate the input of ASINs into Cerebro, a Helium10 tool, then click \"Get Keywords.\" Once the keyword search is complete, axiom.ai will download a CSV of the data, and upload it into a Google Sheet.",{"type":2143,"format":1718,"intent_type":2675,"intent":5626,"tags":7423,"platfrom":7424},[2149,2682],[4984],{"title":6734,"description":7421},"guides\u002Fcerebro","NvIDdezwXPTDtWE5l0WI_FfqwLVMWwvEpV3u3KJbqVg",{"id":7429,"title":7430,"body":7431,"date":2135,"description":7734,"extension":1643,"meta":7735,"navigation":1646,"order":1641,"path":7739,"seo":7740,"stem":7741,"__hash__":7742},"guides\u002Fguides\u002Fchatgpt-web-scraper.md","How to scrape data with ChatGPT from any website",{"type":1555,"value":7432,"toc":7726},[7433,7435,7438,7440,7442,7455,7459,7469,7474,7476,7480,7487,7639,7643,7645,7647,7651,7653,7655],[1617,7434],{},[1558,7436,7437],{},"This template builds a web scraper that loops through links stored in a Google Sheet, opening each page in a browser. It then scrapes the page using code and passes the data to ChatGPT to extract the specific values defined by the user. After each loop, the scraper deletes a row in the Google Sheet, preparing it to process the next. A ChatGPT API key is required.",[1662,7439],{},[1612,7441,1667],{"id":1666},[1558,7443,1670,7444,2711,7446,7449,7450,1682,7453,1610],{},[1593,7445,6804],{},[1593,7447,7448],{},"ChatGPT Scrape","' and set up a tab called ",[1593,7451,7452],{},"Links",[1593,7454,2100],{},[1612,7456,7458],{"id":7457},"install-the-chatgpt-template","Install the ChatGPT template",[1558,7460,7461,7462,7465,7466,1700],{},"To install this ChatGPT template click ",[1593,7463,7464],{},"Install template",". If you're a new user, you'll have to click ",[1593,7467,7468],{},"Install Chrome extension",[1558,7470,1703,7471,1610],{},[1593,7472,7473],{},"start",[1558,7475,1709],{},[1612,7477,7479],{"id":7478},"configure-your-chatgpt-scraper-in-five-easy-steps","Configure your ChatGPT scraper in Five easy steps",[1558,7481,7482,7483,7486],{},"Please note in ",[1731,7484,7485],{},"step 2.2 Get data from bot's current page"," you need to select a single block of content with the selector tool.",[1718,7488,7489],{},[1721,7490,7491,7511],{},[1724,7492,7493,1729,7495,7497],{},[1593,7494,1728],{},[1731,7496,1733],{},[1721,7498,7499,7503],{},[1724,7500,7501,1741],{},[1731,7502,1740],{},[1724,7504,7505,7507,7508,1610],{},[1731,7506,1746],{},": Choose the sheet tab called ",[1731,7509,7510],{},"\"Amazon product links\"",[1724,7512,7513,1729,7515,7517],{},[1593,7514,1752],{},[1731,7516,667],{},[1721,7518,7519,7534,7553,7581,7611],{},[1724,7520,7521,1729,7523,7525],{},[1593,7522,1761],{},[1731,7524,1043],{},[1721,7526,7527],{},[1724,7528,7529,3244,7531,7533],{},[1731,7530,1770],{},[1731,7532,1778],{},", and choose the column with the links.",[1724,7535,7536,1729,7538,7540],{},[1593,7537,1784],{},[1731,7539,1787],{},[1721,7541,7542,7547],{},[1724,7543,7544,7546],{},[1731,7545,1794],{},": Point and click to select the data you wish to scrape using a single selector.",[1724,7548,7549,1801,7551,1610],{},[1731,7550,1800],{},[1731,7552,1804],{},[1724,7554,7555,1729,7557,7560],{},[1593,7556,1809],{},[1731,7558,7559],{},"Extract data with ChatGPT",[1721,7561,7562,7566,7573],{},[1724,7563,7564,1820],{},[1731,7565,1819],{},[1724,7567,7568,1863,7570,1610],{},[1731,7569,2100],{},[1731,7571,7572],{},"scrape-data",[1724,7574,7575,7577,7578,7580],{},[1731,7576,1843],{},": Enter values to extract (e.g. ",[1731,7579,1847],{},").",[1724,7582,7583,1729,7585,7587],{},[1593,7584,1852],{},[1731,7586,4914],{},[1721,7588,7589,7593,7597,7604],{},[1724,7590,7591,1741],{},[1731,7592,1740],{},[1724,7594,7595,1894],{},[1731,7596,1746],{},[1724,7598,7599,1900,7601,1610],{},[1731,7600,1899],{},[1731,7602,7603],{},"chatgpt-data",[1724,7605,7606,1801,7608,1610],{},[1731,7607,1908],{},[1731,7609,7610],{},"\"Add to existing data\"",[1724,7612,7613,1729,7615,7617],{},[1593,7614,1880],{},[1731,7616,1920],{},[1721,7618,7619,7623,7627,7633],{},[1724,7620,7621,2751],{},[1731,7622,1740],{},[1724,7624,7625,1931],{},[1731,7626,1746],{},[1724,7628,7629,1801,7631,1610],{},[1731,7630,1936],{},[1731,7632,1804],{},[1724,7634,7635,1801,7637,1610],{},[1731,7636,1943],{},[1731,7638,1804],{},[1612,7640,7642],{"id":7641},"testing-and-running-your-chatgpt-web-scraper","Testing and running your ChatGPT web scraper",[1558,7644,1952],{},[1612,7646,1956],{"id":1955},[1558,7648,1959,7649,1964],{},[1562,7650,1963],{"href":1962},[1612,7652,1398],{"id":1967},[1558,7654,1970],{},[1718,7656,7657],{},[1721,7658,7659,7675,7685,7700,7715],{},[1724,7660,7661,7664,7666,7667,7669,7670,7672,7673,1995],{},[1593,7662,7663],{},"Want to set a number of loops?",[1981,7665],{},"\nSet a ",[1731,7668,1990],{}," in the ",[1731,7671,1733],{}," step — for example, ",[1731,7674,1994],{},[1724,7676,7677,7680,1983,7682,7684],{},[1593,7678,7679],{},"Not scraping content correctly?",[1981,7681],{},[1731,7683,1787],{},", select a single block of content using the selector tool.",[1724,7686,7687,7690,7692,7693,7695,7696,7669,7698,2855],{},[1593,7688,7689],{},"Want to scrape the whole page?",[1981,7691],{},"\nUse a ",[1562,7694,2017],{"href":1383}," like ",[1731,7697,2021],{},[1731,7699,1787],{},[1724,7701,7702,7705,7707,7708,2033,7710,2037,7712,7714],{},[1593,7703,7704],{},"Scrape running slowly?",[1981,7706],{},"\nToggle ",[1731,7709,2032],{},[1731,7711,2036],{},[1731,7713,1804],{}," in the same step.",[1724,7716,7717,7720,2111,7722,2101,7724],{},[1593,7718,7719],{},"Data not showing up in ChatGPT?",[1981,7721],{},[1731,7723,2100],{},[1731,7725,7572],{},{"title":1636,"searchDepth":1637,"depth":1637,"links":7727},[7728,7729,7730,7731,7732,7733],{"id":1666,"depth":1640,"text":1667},{"id":7457,"depth":1640,"text":7458},{"id":7478,"depth":1640,"text":7479},{"id":7641,"depth":1640,"text":7642},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"This guide shows how to scrape website content and extract data using ChatGPT and axiom.ai. Learn to loop through links, extract values, and write results to a Google Sheet.",{"pinned":1646,"read":2672,"level":2140,"video":7736,"templateId":6378,"type":2143,"format":2144,"intent_type":3377,"intent":2146,"tags":7737,"platfrom":7738},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F8Llq6EYiSuo",[2149,2682],[739],"\u002Fguides\u002Fchatgpt-web-scraper",{"title":7430,"description":7734},"guides\u002Fchatgpt-web-scraper","YpEhc1e5YckB0bBSPLiATp8_oI0B1PtAh1Fb0D6gJn0",{"id":7744,"title":7745,"body":7746,"date":1641,"description":8148,"extension":1643,"meta":8149,"navigation":1646,"order":1641,"path":8154,"seo":8155,"stem":8156,"__hash__":8157},"guides\u002Fguides\u002Fcheck-for-login.md","How to automate checking if a site requires a login",{"type":1555,"value":7747,"toc":8138},[7748,7750,7761,7763,7769,7773,7780,7799,7803,7813,7817,7820,7833,7850,7854,7863,7897,7919,7950,7954,7958,7965,7971,7975,7982,8050,8053,8118,8120,8123,8132],[1617,7749],{},[1558,7751,7752,7753,7756,7757,7760],{},"To automate tasks that depend on the state of a web page, such as whether a user is logged in or logged out, you can implement a simple check for a unique text value like ",[1593,7754,7755],{},"\"Log in.\""," By using an ",[1593,7758,7759],{},"\"If \u002F Else condition\""," step, your automation can dynamically decide the next actions: logging in by entering credentials and clicking the login button if the text is found, or continuing with subsequent steps if it is not. This adaptable approach ensures your automation handles different page states seamlessly, improving reliability and efficiency.",[1662,7762],{},[1558,7764,7765,7766,7768],{},"This guide will teach you the basic steps you need to run your bot on a site that requires you to login. Login methods may vary, and wording may vary on your site. For tips on how to manage logins within your automation, see our ",[1562,7767,5677],{"href":638}," guide. For this example, we are going to store credentials within Google Sheets.",[1612,7770,7772],{"id":7771},"creating-your-automation","Creating your automation",[1558,7774,7775,7776,7779],{},"Create a new automation by clicking \"New automation\", and then use the ",[1562,7777,7778],{"href":1361},"Step Finder"," to add steps. There are various stages to the automation that we are going to review, let's see them in plain English first:",[1718,7781,7782],{},[2182,7783,7784,7787,7790,7793,7796],{},[1724,7785,7786],{},"Navigate to the page.",[1724,7788,7789],{},"Check if the page is a login page.",[1724,7791,7792],{},"Enter your email.",[1724,7794,7795],{},"Enter your password.",[1724,7797,7798],{},"Click \"login\".",[2266,7800,7802],{"id":7801},"navigate-to-the-site","Navigate to the site",[1558,7804,7805,7806,7808,7809,7812],{},"Use the ",[1562,7807,1043],{"href":1044}," step to navigate to the site that you wish to automate - this does not have to be the ",[1593,7810,7811],{},"\"login\""," page as sites will often redirect to it if a login is required.",[2266,7814,7816],{"id":7815},"check-if-the-page-is-a-login-page","Check if the page is a login page",[1558,7818,7819],{},"There are a couple of methods of determining if the page that the bot is currently on is a login page or not. These methods both assume that you have previously encountered the login page for the site that you are automating and that you are familiar with it's structure.",[1558,7821,6669,7822,7825,7826,4902,7829,7832],{},[1562,7823,7824],{"href":956},"Get current bot URL"," step can be used to retrieve the current URL of the bot - this can be helpful in situations where the login page includes words like ",[1593,7827,7828],{},"login\"",[1593,7830,7831],{},"sign-in\"",", for example.",[1558,7834,6669,7835,7837,7838,7841,7842,7845,7846,7849],{},[1562,7836,1787],{"href":1040}," step can be used to scrape the page - this can be used to scrape any elements on the login page, such as a title with ",[1593,7839,7840],{},"\"Login\""," in it's contents. We recommend encapsulating this with a ",[1562,7843,7844],{"href":1198},"Try \u002F Catch"," step as this will produce an error if the bot does not need to log into the site, and the ",[1593,7847,7848],{},"\"Try \u002F Catch\""," step can catch this error.",[2266,7851,7853],{"id":7852},"checking-the-returned-output","Checking the returned output",[1558,7855,6669,7856,7858,7859,7862],{},[1562,7857,7824],{"href":956}," step will return the current URL of the bot, you will need to use an ",[1562,7860,7861],{"href":1048},"If condition is true, run steps"," step to check this value. Add the step and configure as described below:",[1718,7864,7865],{},[1721,7866,7867,7882],{},[1724,7868,7869,1729,7871,7874],{},[1593,7870,1728],{},[1731,7872,7873],{},"Data to check",[1721,7875,7876],{},[1724,7877,7878,7881],{},[1731,7879,7880],{},"[current-url]",": Select this as the value to evaluate.",[1724,7883,7884,1729,7886,7889],{},[1593,7885,1752],{},[1731,7887,7888],{},"Condition to check",[1721,7890,7891],{},[1724,7892,7893,7896],{},[1731,7894,7895],{},"Login",": Enter the text value you want to match.",[1558,7898,7899,7900,7902,7903,7905,7906,7909,7910,7912,7913,7915,7916,7918],{},"If you have set up the ",[1562,7901,1787],{"href":1040}," step inside a ",[1593,7904,7848],{}," step, you will need to insert any further steps related to the login into the ",[1593,7907,7908],{},"\"try\""," portion of this step. You will need to use an ",[1562,7911,7861],{"href":1048}," step to check this the value returned from the step against the value that you are looking for. Add the step inside the ",[1593,7914,7908],{}," portion of the ",[1593,7917,7848],{}," step, under the \"Get data from bot's current page\" step and configure as described below:",[1718,7920,7921],{},[1721,7922,7923,7935],{},[1724,7924,7925,1729,7927,7929],{},[1593,7926,1728],{},[1731,7928,7873],{},[1721,7930,7931],{},[1724,7932,7933,7881],{},[1731,7934,1837],{},[1724,7936,7937,1729,7939,7941],{},[1593,7938,1752],{},[1731,7940,7888],{},[1721,7942,7943],{},[1724,7944,7945,7947,7948,1610],{},[1731,7946,7895],{},": Enter the text value to check for, for example ",[1593,7949,7840],{},[2219,7951],{"src":7952,"alt":7953},"\u002Fdocs\u002Fguides\u002Fif-condition-login.jpg","axiom.ai - if condition check for value",[2266,7955,7957],{"id":7956},"entering-credentials","Entering credentials",[1558,7959,7960,7961,7964],{},"Next, inside of the ",[1593,7962,7963],{},"\"If condition is true, run steps\""," step, add two \"Enter text\" steps. The first should be configured to enter your email\u002Fusername and the second should be configured to enter your password. If you are reading these credentials in from a third-party, such as Google Sheets, use the \"Insert data\" option to input your data tokens containing these credentials.",[1558,7966,7967,7968,7970],{},"Finally, use a ",[1562,7969,5243],{"href":924}," step to click the \"login\" button on the site to complete the login.",[2266,7972,7974],{"id":7973},"final-automation-structure","Final automation structure",[1558,7976,7977,7978,7981],{},"If you used the ",[1593,7979,7980],{},"\"Get bot's current URL\""," step, your automation should look similar to the structure below:",[1718,7983,7984],{},[1721,7985,7986,7993,8001,8042],{},[1724,7987,7988,1729,7990,7992],{},[1593,7989,1728],{},[1731,7991,1043],{},": Navigate to the login page.",[1724,7994,7995,1729,7997,8000],{},[1593,7996,1752],{},[1731,7998,7999],{},"Get bot's current URL",": Store the current page URL.",[1724,8002,8003,1729,8005,8007,8008],{},[1593,8004,5364],{},[1731,8006,7861],{},": Run the following steps only if the condition matches.\n",[1721,8009,8010,8022,8033],{},[1724,8011,8012,1729,8015,3617,8018,8021],{},[1593,8013,8014],{},"3.1",[1731,8016,8017],{},"Enter Text",[1731,8019,8020],{},"Email"," type your email address.",[1724,8023,8024,1729,8027,3617,8029,8032],{},[1593,8025,8026],{},"3.2",[1731,8028,8017],{},[1731,8030,8031],{},"Password"," type your password.",[1724,8034,8035,1729,8038,8041],{},[1593,8036,8037],{},"3.3",[1731,8039,8040],{},"Click Element",": Click the login button.",[1724,8043,8044,1729,8046,8049],{},[1593,8045,5403],{},[1731,8047,8048],{},"Continue flow",": Add any other steps here.",[1558,8051,8052],{},"If you used the \"Get data from bot's current page\" step, your automation should look similar to the structure below:",[1718,8054,8055],{},[1721,8056,8057,8063,8110],{},[1724,8058,8059,1729,8061,7992],{},[1593,8060,1728],{},[1731,8062,1043],{},[1724,8064,8065,1729,8067,8069,8070],{},[1593,8066,1752],{},[1731,8068,7844],{},": Run steps that may fail.\n",[1721,8071,8072,8079],{},[1724,8073,8074,1729,8076,8078],{},[1593,8075,1761],{},[1731,8077,1787],{},": Select login text.",[1724,8080,8081,1729,8083,5335,8086],{},[1593,8082,1784],{},[1731,8084,8085],{},"Catch",[1721,8087,8088,8096,8104],{},[1724,8089,8090,1729,8092,3617,8094,8021],{},[1593,8091,1809],{},[1731,8093,8017],{},[1731,8095,8020],{},[1724,8097,8098,1729,8100,3617,8102,8032],{},[1593,8099,1852],{},[1731,8101,8017],{},[1731,8103,8031],{},[1724,8105,8106,1729,8108,8041],{},[1593,8107,1880],{},[1731,8109,8040],{},[1724,8111,8112,1729,8114,8117],{},[1593,8113,5364],{},[1731,8115,8116],{},"Other steps",": Continue the flow as needed.",[1612,8119,2423],{"id":2422},[1558,8121,8122],{},"The method that you choose to use will depend on how the site that you are looking to automate handles logins - some sites will have a specific subdomain that they use, some will have a simple page, and some may even have a popup that you will need to take into consideration when building your automations.",[1558,8124,8125,8126,8128,8129,4948],{},"We would also recommend reviewing our documentation on managing ",[1562,8127,5677],{"href":638}," for further tips and tricks to use, including using your pre-existing login session in the cloud, see ",[1562,8130,8131],{"href":886},"Learn how to store cookies",[1558,8133,8134,8135,8137],{},"Some login activity may prompt the site to display a CAPTCHA challenge to continue, see our ",[1562,8136,735],{"href":736}," integration for more details on navigating sites with CAPTCHA enabled.",{"title":1636,"searchDepth":1637,"depth":1637,"links":8139},[8140,8147],{"id":7771,"depth":1640,"text":7772,"children":8141},[8142,8143,8144,8145,8146],{"id":7801,"depth":1637,"text":7802},{"id":7815,"depth":1637,"text":7816},{"id":7852,"depth":1637,"text":7853},{"id":7956,"depth":1637,"text":7957},{"id":7973,"depth":1637,"text":7974},{"id":2422,"depth":1640,"text":2423},"This guide shows how to check if a website requires login using axiom.ai. Learn to detect login pages and conditionally enter credentials using no-code steps.",{"pinned":1646,"type":2143,"format":1718,"intent_type":2145,"intent":2676,"tags":8150,"platfrom":8152,"video":8153},[8151],"login",[3380],"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FKZPOE8xisTM?rel=0&amp;","\u002Fguides\u002Fcheck-for-login",{"title":7745,"description":8148},"guides\u002Fcheck-for-login","Gp6bLGA8kKmhLnzh3lnrE73kiWexfahe6cH6I2s-xKQ",{"id":8159,"title":8160,"body":8161,"date":1641,"description":8610,"extension":1643,"meta":8611,"navigation":1646,"order":1641,"path":8616,"seo":8617,"stem":8618,"__hash__":8619},"guides\u002Fguides\u002Fcurl.md","How to use cURL to trigger an axiom.ai automation",{"type":1555,"value":8162,"toc":8601},[8163,8165,8168,8170,8172,8174,8192,8196,8198,8206,8278,8281,8310,8314,8316,8320,8322,8329,8541,8548,8550,8552,8559,8580,8586,8591,8593,8595,8598],[1617,8164],{},[1558,8166,8167],{},"Learn how to get started with cURL to trigger your axiom.ai automations. This can be useful for triggering your automations from the command line on Windows, macOS or Linux.",[1612,8169,2173],{"id":2172},[1617,8171],{},[1558,8173,2178],{},[2182,8175,8176,8182,8186],{},[1724,8177,8178,3408,8180,1610],{},[1593,8179,2188],{},[1562,8181,2193],{"href":2192},[1724,8183,8184,3415],{},[1593,8185,2198],{},[1724,8187,8188,3420,8190,1610],{},[1593,8189,2204],{},[1731,8191,2208],{},[1612,8193,8195],{"id":8194},"trigger-an-axiomai-automation-using-curl","Trigger an axiom.ai automation using cURL",[1617,8197],{},[1558,8199,8200,8201,8205],{},"Open your command line to get started, and use the following command to trigger your automation. You'll need the information from the ",[1562,8202,8204],{"href":8203},"#getting-started","getting started"," section of this guide.",[2346,8207,8209],{"className":3471,"code":8208,"language":3473,"meta":1636,"style":1636},"curl -X POST https:\u002F\u002Flar.axiom.ai\u002Fapi\u002Fv3\u002Ftrigger -H \"Content-Type: application\u002Fjson\" -d \"{\\\"key\\\": \\\"\u003CAPI_KEY>\\\", \\\"name\\\": \\\"\u003CAUTOMATION_NAME>\\\", \\\"data\\\": []\"}\"\n",[1731,8210,8211],{"__ignoreMap":1636},[2354,8212,8213,8216,8219,8221,8224,8227,8230,8233,8236,8238,8240,8242,8244,8246,8249,8251,8253,8255,8257,8259,8261,8263,8265,8267,8269,8271,8273,8275],{"class":2356,"line":2357},[2354,8214,8215],{"class":2360},"curl",[2354,8217,8218],{"class":3505}," -X",[2354,8220,3696],{"class":2364},[2354,8222,8223],{"class":2364}," https:\u002F\u002Flar.axiom.ai\u002Fapi\u002Fv3\u002Ftrigger",[2354,8225,8226],{"class":3505}," -H",[2354,8228,8229],{"class":2364}," \"Content-Type: application\u002Fjson\"",[2354,8231,8232],{"class":3505}," -d",[2354,8234,8235],{"class":2364}," \"{",[2354,8237,3609],{"class":3608},[2354,8239,3612],{"class":2364},[2354,8241,3609],{"class":3608},[2354,8243,3617],{"class":2364},[2354,8245,3609],{"class":3608},[2354,8247,8248],{"class":2364},"\u003CAPI_KEY>",[2354,8250,3609],{"class":3608},[2354,8252,1564],{"class":2364},[2354,8254,3609],{"class":3608},[2354,8256,3630],{"class":2364},[2354,8258,3609],{"class":3608},[2354,8260,3617],{"class":2364},[2354,8262,3609],{"class":3608},[2354,8264,3455],{"class":2364},[2354,8266,3609],{"class":3608},[2354,8268,1564],{"class":2364},[2354,8270,3609],{"class":3608},[2354,8272,3461],{"class":2364},[2354,8274,3609],{"class":3608},[2354,8276,8277],{"class":2364},": []\"}\"\n",[1558,8279,8280],{},"Let's break down this command:",[1721,8282,8283,8288,8294,8300],{},[1724,8284,8285,8287],{},[1731,8286,8215],{}," - the application we are triggering.",[1724,8289,8290,8293],{},[1731,8291,8292],{},"-X POST"," - the HTTP method to use.",[1724,8295,8296,8299],{},[1731,8297,8298],{},"-h \"Content-Type: application\u002Fjson\""," - the headers to pass along with the request.",[1724,8301,8302,8305,8306,1610],{},[1731,8303,8304],{},"-d \"{\\\"key\\\": \\\"\u003CAPI_KEY>\\\", \\\"name\\\": \\\"\u003CAUTOMATION_NAME>\\\", \\\"data\\\": []\"}"," - the data to send in the request, formatted as per our ",[1562,8307,8309],{"href":8308},"\u002Fdocs\u002Fdeveloper-hub\u002Fapi\u002Frequests","trigger guide",[1612,8311,8313],{"id":8312},"examples","Examples",[1617,8315],{},[2266,8317,8319],{"id":8318},"reporting-system-available-memory","Reporting system available memory",[1617,8321],{},[1558,8323,8324,8325,8328],{},"Determining the memory available on the computer your automations are running can be useful to use when running multiple instances of Axiom, here's an example using a ",[1731,8326,8327],{},".bat"," file.",[2346,8330,8334],{"className":8331,"code":8332,"language":8333,"meta":1636,"style":1636},"language-shell shiki shiki-themes github-light-default github-dark-default","@echo off\n\nrem Get the free memory value\nfor \u002Ff \"tokens=2 delims=:\" %%f in ('systeminfo ^| findstr \u002FC:\"Available Physical Memory\"') do set freememory=%%f\n\nrem Remove any commas or extra spaces\nset freememory=%freememory:,=%\nset freememory=%freememory: =%\n\nrem Send free memory to the webhook using curl\ncurl -X POST \"https:\u002F\u002Flar.axiom.ai\u002Fapi\u002Fv3\u002Ftrigger\" -H \"Content-Type: application\u002Fjson\" -d \"{\\\"key\\\": \\\"\u003CAPI_KEY>\\\", \\\"name\\\": \\\"\u003CAUTOMATION_NAME>\\\", \\\"data\\\":  [[\\\"%freememory%\\\"]]}\"\n\npause\n\n","shell",[1731,8335,8336,8344,8348,8367,8392,8396,8418,8426,8436,8440,8462,8532,8536],{"__ignoreMap":1636},[2354,8337,8338,8341],{"class":2356,"line":2357},[2354,8339,8340],{"class":2360},"@echo",[2354,8342,8343],{"class":2364}," off\n",[2354,8345,8346],{"class":2356,"line":1640},[2354,8347,3520],{"emptyLinePlaceholder":1646},[2354,8349,8350,8353,8356,8358,8361,8364],{"class":2356,"line":1637},[2354,8351,8352],{"class":2360},"rem",[2354,8354,8355],{"class":2364}," Get",[2354,8357,3534],{"class":2364},[2354,8359,8360],{"class":2364}," free",[2354,8362,8363],{"class":2364}," memory",[2354,8365,8366],{"class":2364}," value\n",[2354,8368,8369,8372,8375,8378,8381,8384,8386,8389],{"class":2356,"line":1647},[2354,8370,8371],{"class":3608},"for",[2354,8373,8374],{"class":2395}," \u002Ff ",[2354,8376,8377],{"class":2364},"\"tokens=2 delims=:\"",[2354,8379,8380],{"class":2395}," %%f in (",[2354,8382,8383],{"class":2360},"'systeminfo ^| findstr \u002FC:\"Available Physical Memory\"'",[2354,8385,6630],{"class":2395},[2354,8387,8388],{"class":3608},"do",[2354,8390,8391],{"class":2395}," set freememory=%%f\n",[2354,8393,8394],{"class":2356,"line":3523},[2354,8395,3520],{"emptyLinePlaceholder":1646},[2354,8397,8398,8400,8403,8406,8409,8412,8415],{"class":2356,"line":3595},[2354,8399,8352],{"class":2360},[2354,8401,8402],{"class":2364}," Remove",[2354,8404,8405],{"class":2364}," any",[2354,8407,8408],{"class":2364}," commas",[2354,8410,8411],{"class":2364}," or",[2354,8413,8414],{"class":2364}," extra",[2354,8416,8417],{"class":2364}," spaces\n",[2354,8419,8420,8423],{"class":2356,"line":3673},[2354,8421,8422],{"class":3505},"set",[2354,8424,8425],{"class":2364}," freememory=%freememory:,=%\n",[2354,8427,8428,8430,8433],{"class":2356,"line":3679},[2354,8429,8422],{"class":3505},[2354,8431,8432],{"class":2364}," freememory=%freememory:",[2354,8434,8435],{"class":2364}," =%\n",[2354,8437,8438],{"class":2356,"line":3685},[2354,8439,3520],{"emptyLinePlaceholder":1646},[2354,8441,8442,8444,8446,8448,8450,8452,8454,8457,8459],{"class":2356,"line":3708},[2354,8443,8352],{"class":2360},[2354,8445,3691],{"class":2364},[2354,8447,8360],{"class":2364},[2354,8449,8363],{"class":2364},[2354,8451,3512],{"class":2364},[2354,8453,3534],{"class":2364},[2354,8455,8456],{"class":2364}," webhook",[2354,8458,3702],{"class":2364},[2354,8460,8461],{"class":2364}," curl\n",[2354,8463,8464,8466,8468,8470,8473,8475,8477,8479,8481,8483,8485,8487,8489,8491,8493,8495,8497,8499,8501,8503,8505,8507,8509,8511,8513,8515,8517,8519,8522,8524,8527,8529],{"class":2356,"line":3761},[2354,8465,8215],{"class":2360},[2354,8467,8218],{"class":3505},[2354,8469,3696],{"class":2364},[2354,8471,8472],{"class":2364}," \"https:\u002F\u002Flar.axiom.ai\u002Fapi\u002Fv3\u002Ftrigger\"",[2354,8474,8226],{"class":3505},[2354,8476,8229],{"class":2364},[2354,8478,8232],{"class":3505},[2354,8480,8235],{"class":2364},[2354,8482,3609],{"class":3608},[2354,8484,3612],{"class":2364},[2354,8486,3609],{"class":3608},[2354,8488,3617],{"class":2364},[2354,8490,3609],{"class":3608},[2354,8492,8248],{"class":2364},[2354,8494,3609],{"class":3608},[2354,8496,1564],{"class":2364},[2354,8498,3609],{"class":3608},[2354,8500,3630],{"class":2364},[2354,8502,3609],{"class":3608},[2354,8504,3617],{"class":2364},[2354,8506,3609],{"class":3608},[2354,8508,3455],{"class":2364},[2354,8510,3609],{"class":3608},[2354,8512,1564],{"class":2364},[2354,8514,3609],{"class":3608},[2354,8516,3461],{"class":2364},[2354,8518,3609],{"class":3608},[2354,8520,8521],{"class":2364},":  [[",[2354,8523,3609],{"class":3608},[2354,8525,8526],{"class":2364},"%freememory%",[2354,8528,3609],{"class":3608},[2354,8530,8531],{"class":2364},"]]}\"\n",[2354,8533,8534],{"class":2356,"line":3775},[2354,8535,3520],{"emptyLinePlaceholder":1646},[2354,8537,8538],{"class":2356,"line":3153},[2354,8539,8540],{"class":2360},"pause\n",[1558,8542,8543,8544,8547],{},"You'll need to add a ",[1562,8545,8546],{"href":1111},"receive data from another app"," step into your axiom.ai automation to be able to use the data within your automation.",[1612,8549,2403],{"id":2402},[1617,8551],{},[1558,8553,8554,8555,8558],{},"To test your workflow, hit ",[1731,8556,8557],{},"ENTER"," on your command. If successful, you will receive a link to open the automation run in your browser, for example",[2346,8560,8562],{"className":3471,"code":8561,"language":3473,"meta":1636,"style":1636},"{\"OPEN LINK IN BROWSER\":\"https:\\\u002F\\\u002Fvnc.axiom.ai\\\u002Fvnc_lite.html?host=c-0027-v4-proxy.axiom.ai&port=443&autoconnect=true&password=xxxxxxxx&scale=local\"}\n",[1731,8563,8564],{"__ignoreMap":1636},[2354,8565,8566,8569,8572,8575,8578],{"class":2356,"line":2357},[2354,8567,8568],{"class":2395},"{",[2354,8570,8571],{"class":2360},"\"OPEN LINK IN BROWSER\"",[2354,8573,8574],{"class":3505},":",[2354,8576,8577],{"class":2360},"\"https:\\\u002F\\\u002Fvnc.axiom.ai\\\u002Fvnc_lite.html?host=c-0027-v4-proxy.axiom.ai&port=443&autoconnect=true&password=xxxxxxxx&scale=local\"",[2354,8579,4256],{"class":2360},[1558,8581,8582,8583,8585],{},"If there are errors returned, follow the error to determine if there is an issue with the command. If the automation has errors, you can find there in the ",[1562,8584,2419],{"href":2418}," of your account.",[1558,8587,8588],{},[2434,8589,8590],{},"Note: the correct format of the data, and the escaping of the quotation marks in your command are important, you may experience errors if you miss these steps.",[1612,8592,2423],{"id":2422},[1617,8594],{},[1558,8596,8597],{},"cURL commands can be a good way of triggering your automations, they can be included in batch files to include them in a much larger workflow.",[2438,8599,8600],{},"html pre.shiki code .sTDnQ, html code.shiki .sTDnQ{--shiki-default:#953800;--shiki-dark:#FFA657}html pre.shiki code .sHrmB, html code.shiki .sHrmB{--shiki-default:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .sjeE4, html code.shiki .sjeE4{--shiki-default:#CF222E;--shiki-dark:#FF7B72}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}",{"title":1636,"searchDepth":1637,"depth":1637,"links":8602},[8603,8604,8605,8608,8609],{"id":2172,"depth":1640,"text":2173},{"id":8194,"depth":1640,"text":8195},{"id":8312,"depth":1640,"text":8313,"children":8606},[8607],{"id":8318,"depth":1637,"text":8319},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"Learn how to use cURL to trigger your automation. This allows for your automations to be triggered using the command line.",{"type":1731,"format":1718,"intent_type":2145,"intent":2454,"tags":8612,"platfrom":8615},[8215,8613,8614,8333],"endpoint","http",[3380],"\u002Fguides\u002Fcurl",{"title":8160,"description":8610},"guides\u002Fcurl","JUl0WeNAtxxDrIUiK-rsprpK9HT3u3nOOGuvQRJOePQ",{"id":8621,"title":8622,"body":8623,"date":1641,"description":8891,"extension":1643,"meta":8892,"navigation":1646,"order":1641,"path":8897,"seo":8898,"stem":8899,"__hash__":8900},"guides\u002Fguides\u002Fdata-input.md","How to automate data input from a Google sheet into a webform",{"type":1555,"value":8624,"toc":8881},[8625,8627,8634,8641,8669,8673,8675,8678,8717,8721,8723,8738,8742,8744,8747,8782,8785,8789,8792,8802,8806,8808,8811,8824,8828,8830,8833,8846,8850,8852,8858,8860,8862],[1617,8626],{},[1558,8628,8629,8630,8633],{},"This guide shows you how to start creating a simple bot to input data into any web form. It's a great ",[1562,8631,5550],{"href":8632},"\u002Fdocs\u002Ftutorials\u002Fwebforms"," for learning how to automate form filling using bots and a Google Sheet. After adding the initial steps, simply use the [builder](\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fbuilder and customise the bot to your use case.",[1558,8635,8636,8637,8640],{},"We also have a ",[1562,8638,2681],{"href":8639},"\u002Fguides\u002Fdata-input-from-google-sheet"," template to get you started fast.",[2182,8642,8643,8648,8653,8658,8664],{},[1724,8644,8645],{},[1562,8646,1733],{"href":8647},".\u002Fdata-input#add-a-read-data-from-google-sheets-step",[1724,8649,8650],{},[1562,8651,1043],{"href":8652},".\u002Fdata-input#add-a-go-to-page-step-to-load-the-web-form",[1724,8654,8655],{},[1562,8656,293],{"href":8657},".\u002Fdata-input#add-an-enter-text-step-to-input-data",[1724,8659,8660],{},[1562,8661,8663],{"href":8662},".\u002Fdata-input#continue-adding-your-steps-as-needed","Add steps here",[1724,8665,8666],{},[1562,8667,5243],{"href":8668},".data-input#add-a-click-element-to-click-the-submit-button",[1612,8670,8672],{"id":8671},"prepare-your-google-sheet","Prepare your Google Sheet",[1617,8674],{},[1558,8676,8677],{},"Create a Google sheet with some test data to run your automation with.",[8679,8680,8681,8694],"table",{},[8682,8683,8684],"thead",{},[8685,8686,8687,8691],"tr",{},[8688,8689,8690],"th",{},"Col A",[8688,8692,8693],{},"Col B",[8695,8696,8697,8705,8711],"tbody",{},[8685,8698,8699,8702],{},[8700,8701,4279],"td",{},[8700,8703,8704],{},"Surname",[8685,8706,8707,8709],{},[8700,8708,4279],{},[8700,8710,8704],{},[8685,8712,8713,8715],{},[8700,8714,4279],{},[8700,8716,8704],{},[1612,8718,8720],{"id":8719},"start-from-blank-adding-the-following-steps","Start from blank, adding the following steps",[1617,8722],{},[1558,8724,8725,8726,8729,8730,8733,8734,8737],{},"In the axiom.ai Chrome extension dashboard, click ",[1593,8727,8728],{},"\"New Automation\""," and then select \"",[1593,8731,8732],{},"Add first step\"."," Use the ",[1562,8735,8736],{"href":1361},"step finder"," to add the steps outlined below.",[1612,8739,8741],{"id":8740},"add-a-read-data-from-a-google-sheet-step","Add a ‘Read data from a Google Sheet’ step",[1617,8743],{},[1558,8745,8746],{},"First we want to our test data from the Google Sheet.",[1718,8748,8749],{},[2182,8750,8751,8760,8765,8774],{},[1724,8752,8753,8755,8756,8759],{},[1593,8754,1740],{}," - Search for the Google Sheet you created in the ",[1593,8757,8758],{},"\"Spreadsheet","\" field. Once found, click to select.",[1724,8761,8762,8764],{},[1593,8763,1746],{}," - Choose a sheet tab or leave blank to use the first tab.",[1724,8766,8767,8770,8771,1610],{},[1593,8768,8769],{},"First cell"," - Start from a specified column and row, for example, ",[1593,8772,8773],{},"\"A1\"",[1724,8775,8776,8778,8779,1610],{},[1593,8777,6866],{}," - End at a specified column and row, for example, ",[1593,8780,8781],{},"\"AB1\"",[1558,8783,8784],{},"::tip Tip\n💡 To read a single row of data set a First and Last cell. This can be useful when you want to run a quick test run.\n::",[1612,8786,8788],{"id":8787},"add-a-go-to-page-step-to-load-the-web-form","Add a ‘Go to page’ step to load the web form",[1558,8790,8791],{},"Next we instruct the bot to load our webform in Chrome.",[1718,8793,8794],{},[2182,8795,8796],{},[1724,8797,8798,8801],{},[1593,8799,8800],{},"Enter URL -"," Insert the url to your webform.",[1612,8803,8805],{"id":8804},"add-an-enter-text-step-to-input-data","Add an ‘Enter text’ step to input data",[1617,8807],{},[1558,8809,8810],{},"Next, we use an ‘Enter text’ step to input our data into a field.",[1718,8812,8813],{},[2182,8814,8815],{},[1724,8816,8817,2647,8820,8823],{},[1593,8818,8819],{},"Text -",[1593,8821,8822],{},"‘Insert data’"," select ‘google-sheet-data’ to pass the message from the Sheet. Select column ‘A’ in the preview.",[1612,8825,8827],{"id":8826},"add-a-click-element-to-click-the-submit-button","Add a ‘Click element’ to click the submit button",[1617,8829],{},[1558,8831,8832],{},"Our next step is to set up the click action for the form's 'submit' button.",[1718,8834,8835],{},[2182,8836,8837],{},[1724,8838,8839,8841,8842,8845],{},[1593,8840,1794],{}," - Click ",[1593,8843,8844],{},"\"Select\""," highlight the ‘submit’ button click on it and press complete.",[1612,8847,8849],{"id":8848},"continue-adding-your-steps-as-needed","Continue adding your steps as needed",[1617,8851],{},[1558,8853,8854,8855,8857],{},"Now just use the ",[1562,8856,8736],{"href":1361}," to continue adding steps and complete your data entry bot.",[1612,8859,2423],{"id":2422},[1617,8861],{},[1558,8863,8864,8865,8868,8869,8871,8872,8876,8877,8880],{},"Data can be easily ",[1562,8866,8867],{"href":1373},"passed into steps"," and input into form elements by adding the \"Enter text\" step. A \"Click element\" step can be used to submit the form. However, these steps alone will most likely not be enough to complete data entry into most forms. To do so, use the step finder to add additional steps to build out your automation. You will find that axiom.ai comes with ",[1562,8870,1543],{"href":894}," to automate many different ",[1562,8873,8875],{"href":8874},"\u002Fdocs\u002Ftutorials\u002Fbrowser-actions","web actions"," performed when ",[1562,8878,8879],{"href":8632},"filling in forms",", such as selecting lists, date pickers, and key presses.",{"title":1636,"searchDepth":1637,"depth":1637,"links":8882},[8883,8884,8885,8886,8887,8888,8889,8890],{"id":8671,"depth":1640,"text":8672},{"id":8719,"depth":1640,"text":8720},{"id":8740,"depth":1640,"text":8741},{"id":8787,"depth":1640,"text":8788},{"id":8804,"depth":1640,"text":8805},{"id":8826,"depth":1640,"text":8827},{"id":8848,"depth":1640,"text":8849},{"id":2422,"depth":1640,"text":2423},"Learn how to create a simple bot that inputs data into a webform from a Google sheet in the browser.",{"type":2143,"format":2144,"intent_type":3377,"intent":8893,"tags":8894,"platfrom":8895},"Fill forms and input data",[2681,2682],[8896],"Google","\u002Fguides\u002Fdata-input",{"title":8622,"description":8891},"guides\u002Fdata-input","ccJqSmW5pioPvMgEw6MDy-tswupTYzNkIfRhrBoWSfA",{"id":8902,"title":8903,"body":8904,"date":2669,"description":9109,"extension":1643,"meta":9110,"navigation":1646,"order":1641,"path":8639,"seo":9115,"stem":9116,"__hash__":9117},"guides\u002Fguides\u002Fdata-input-from-google-sheet.md","How to automate data entry from a google sheet",{"type":1555,"value":8905,"toc":9101},[8906,8908,8911,8913,8915,8918,8922,8925,8927,8929,8933,8939,9050,9054,9057,9059,9064,9066,9068,9093],[1617,8907],{},[1558,8909,8910],{},"This data entry bot template automates data input through a web browser, bypassing the need for an API. The bot extracts data from a Google Sheet, launches Chrome, and mimics human actions by entering the data into a web form, followed by clicking the submit button. After each iteration, the processed row is removed from the Google Sheet.",[1662,8912],{},[1612,8914,2480],{"id":2479},[1558,8916,8917],{},"Create a new Google Sheet. You can do this in your Chrome browser by entering the shortcut 'sheet.new', assuming you already have an account. Name your sheet something like 'Data entry bot’ and set up a tab called 'Data'.",[1612,8919,8921],{"id":8920},"install-the-data-entry-bot","Install the data entry bot",[1558,8923,8924],{},"To install this data entry bot click 'Install template'. If you’re a new user, you’ll have to click 'Install Chrome extension' and create a free axiom.ai account before you can edit the template.",[1558,8926,2503],{},[1558,8928,1709],{},[1612,8930,8932],{"id":8931},"configure-your-data-entry-bot-in-just-a-few-steps","Configure your data entry bot in just a few steps",[1558,8934,8935,8936,8938],{},"We've provided a set of example steps within Step 2.0 - Loop through data. You can further customize this bot by adding additional ",[1562,8937,1543],{"href":1542}," within this loop to suit your specific needs.",[1718,8940,8941],{},[1721,8942,8943,8960],{},[1724,8944,8945,1729,8947,8949],{},[1593,8946,1728],{},[1731,8948,1733],{},[1721,8950,8951,8955],{},[1724,8952,8953,1741],{},[1731,8954,1740],{},[1724,8956,8957,8959],{},[1731,8958,1746],{},": Choose the sheet tab with the data to be input.",[1724,8961,8962,1729,8964,8966],{},[1593,8963,1752],{},[1731,8965,667],{},[1721,8967,8968,8989,9009,9022],{},[1724,8969,8970,1729,8972,8974],{},[1593,8971,1761],{},[1731,8973,293],{},[1721,8975,8976,8981],{},[1724,8977,8978,8980],{},[1731,8979,1794],{},": An input field to enter data into.",[1724,8982,8983,1771,8985,1775,8987,1610],{},[1731,8984,2580],{},[1731,8986,1774],{},[1731,8988,1866],{},[1724,8990,8991,1729,8993,8995],{},[1593,8992,1784],{},[1731,8994,293],{},[1721,8996,8997,9001],{},[1724,8998,8999,8980],{},[1731,9000,1794],{},[1724,9002,9003,1771,9005,1775,9007,1610],{},[1731,9004,2580],{},[1731,9006,1774],{},[1731,9008,1866],{},[1724,9010,9011,1729,9013,9015],{},[1593,9012,1809],{},[1731,9014,5243],{},[1721,9016,9017],{},[1724,9018,9019,9021],{},[1731,9020,1794],{},": The submit form button.",[1724,9023,9024,1729,9026,9028],{},[1593,9025,1852],{},[1731,9027,1920],{},[1721,9029,9030,9034,9038,9044],{},[1724,9031,9032,1741],{},[1731,9033,1740],{},[1724,9035,9036,1931],{},[1731,9037,1746],{},[1724,9039,9040,1801,9042,1610],{},[1731,9041,1936],{},[1731,9043,1804],{},[1724,9045,9046,1801,9048,1610],{},[1731,9047,1943],{},[1731,9049,1804],{},[1612,9051,9053],{"id":9052},"run-your-data-entry-bot","Run your data entry bot",[1558,9055,9056],{},"We suggest running a test first; watch the bot as it inputs data into the form, then stop the bot after a few loops.",[1612,9058,1956],{"id":1955},[1558,9060,9061,9062,1964],{},"Like all axiom.ai ",[1562,9063,1963],{"href":1962},[1612,9065,1398],{"id":1967},[1558,9067,1970],{},[1718,9069,9070],{},[1721,9071,9072,9083],{},[1724,9073,9074,9077,9079,9080,1610],{},[1593,9075,9076],{},"Element not found?",[1981,9078],{},"\nTry reselecting or using ",[1562,9081,9082],{"href":1383},"custom selectors",[1724,9084,9085,9088,9089,9092],{},[1593,9086,9087],{},"Data entered into the wrong input?","\nAdd ",[1562,9090,9091],{"href":1210},"wait steps"," between inputs.",[1558,9094,2118,9095,2923,9097],{},[1562,9096,2121],{"href":82},[1562,9098,9100],{"href":9099},"\u002Fblog\u002Fhow-to-automate-data-entry","data entry from a google sheet.",{"title":1636,"searchDepth":1637,"depth":1637,"links":9102},[9103,9104,9105,9106,9107,9108],{"id":2479,"depth":1640,"text":2480},{"id":8920,"depth":1640,"text":8921},{"id":8931,"depth":1640,"text":8932},{"id":9052,"depth":1640,"text":9053},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"This guide shows how to automate data entry from a Google Sheet using axiom.ai. Learn to fill web forms, submit data, and remove rows after each run.",{"pinned":1646,"application":3380,"read":9111,"level":2140,"video":9112,"templateId":6334,"type":2143,"format":2144,"intent_type":3377,"intent":8893,"tags":9113,"platfrom":9114},"6 minutes","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fdl1BVUWix1Q",[2681,2682],[8896],{"title":8903,"description":9109},"guides\u002Fdata-input-from-google-sheet","09AgODg7eakLV1yuO5mi9YekCMNHvHwvG-zuiMX2tPU",{"id":9119,"title":9120,"body":9121,"date":1641,"description":9230,"extension":1643,"meta":9231,"navigation":1646,"order":1641,"path":9235,"seo":9236,"stem":9237,"__hash__":9238},"guides\u002Fguides\u002Fdate-input.md","How to automate date inputs with the Date and time step",{"type":1555,"value":9122,"toc":9225},[9123,9125,9128,9132,9134,9140,9161,9164,9168,9170,9177,9201,9206,9210,9212],[1617,9124],{},[1558,9126,9127],{},"Getting a date and using this within your automation can be helpful when form filling, or when keeping track of when your automation has run.",[1612,9129,9131],{"id":9130},"getting-a-date-and-time","Getting a date and time",[1617,9133],{},[1558,9135,6669,9136,9139],{},[1562,9137,9138],{"href":968},"Date and time"," step can be used to get a date. This has various options to get a timestamp, such as:",[1718,9141,9142],{},[1721,9143,9144,9150,9155],{},[1724,9145,9146,9149],{},[1593,9147,9148],{},"Current"," - the current date and time.",[1724,9151,9152,9154],{},[1593,9153,5255],{}," - various options for the date to return a date relative to the current date, such as in the past or future.",[1724,9156,9157,9160],{},[1593,9158,9159],{},"Reformat existing"," - reformat a date and time passed into the step, useful when using a date from a Google Sheet.",[1558,9162,9163],{},"The \"Date and time\" step generates a timestamp for the exact moment the step is executed in the automation. This timestamp reflects when the \"Date and time\" step runs, not when it is referenced elsewhere. Typically, this difference is just a few milliseconds, though it may increase for larger automations. If consistency across steps is crucial, run the \"Date and time\" step immediately before the step using its output.",[1612,9165,9167],{"id":9166},"using-the-timestamp","Using the timestamp",[1617,9169],{},[1558,9171,9172,9173,9176],{},"The \"Date and time\" step will return a ",[1731,9174,9175],{},"date-and-time"," data token. This can be used in other steps using the \"Insert data\" option within steps that have inputs. Some steps that this can be used in:",[1721,9178,9179,9184,9190,9195],{},[1724,9180,9181,9183],{},[1562,9182,293],{"href":1012}," step - to input into forms.",[1724,9185,9186,9189],{},[1562,9187,9188],{"href":1214},"Write to a Google Sheet"," step - to write to your Google Sheet, to keep track of when the data was created, for example.",[1724,9191,9192,9194],{},[1562,9193,7072],{"href":988}," step - to add the date into your file or folder name.",[1724,9196,9197,9200],{},[1562,9198,9199],{"href":1170},"Send an email"," - to add the date into your email body.",[1558,9202,9203,9204,2855],{},"For automating a date picker, see the ",[1562,9205,289],{"href":964},[1612,9207,9209],{"id":9208},"see-also","See also",[1617,9211],{},[1721,9213,9214,9219],{},[1724,9215,9216],{},[1562,9217,9218],{"href":1373},"Passing data between steps",[1724,9220,9221],{},[1562,9222,9224],{"href":9223},"\u002Fdocs\u002Fdeveloper-hub\u002Fsnippets\u002Fjavascript#get-the-date-and-time-with-javascript","Getting the date and time with JavaScript",{"title":1636,"searchDepth":1637,"depth":1637,"links":9226},[9227,9228,9229],{"id":9130,"depth":1640,"text":9131},{"id":9166,"depth":1640,"text":9167},{"id":9208,"depth":1640,"text":9209},"Learn how to automatically retrieve the date and time, and use this within your automations for form filling, and data output.",{"pinned":1646,"type":2143,"format":1718,"intent_type":2145,"intent":8893,"tags":9232,"platfrom":9234},[9233,8875],"date picker",[8896],"\u002Fguides\u002Fdate-input",{"title":9120,"description":9230},"guides\u002Fdate-input","P3CRi-E4MenQh4EM2RhB0DZb9Tthr_VPrkDewC5QsHw",{"id":9240,"title":9241,"body":9242,"date":1641,"description":9448,"extension":1643,"meta":9449,"navigation":1646,"order":1641,"path":9453,"seo":9454,"stem":9455,"__hash__":9456},"guides\u002Fguides\u002Fdiscord.md","How to automate posting to Discord using an axiom.ai automation",{"type":1555,"value":9243,"toc":9442},[9244,9246,9249,9252,9254,9256,9259,9281,9289,9293,9295,9304,9307,9357,9360,9385,9395,9399,9401,9403,9412,9414,9416,9423,9432,9434,9439],[1617,9245],{},[1558,9247,9248],{},"Discord is a popular communication platform that allows for real-time interactions. It's often used amongst friends to join in activities such as gaming, but can also be used as a resource hub to provide updates and customer services to users of a specific service. You can easily use your axiom.ai automations to post new content to your Discord servers.",[1558,9250,9251],{},"Note, webhooks are only available within channels inside of Discord servers.",[1612,9253,2173],{"id":2172},[1617,9255],{},[1558,9257,9258],{},"To send data to Discord, you'll need the following:",[1718,9260,9261],{},[2182,9262,9263,9269,9275],{},[1724,9264,9265,9268],{},[1593,9266,9267],{},"Server"," - You'll need to have a server set up.",[1724,9270,9271,9274],{},[1593,9272,9273],{},"Channel"," - You'll need to have a channel set up.",[1724,9276,9277,9280],{},[1593,9278,9279],{},"A webhook URL"," - In the sidebar, hit the 'cog' beside the channel name, then head into \"Integrations\", then \"Webhooks\", click \"Create Webhook\", open the newly created webhook and click \"Copy Webhook URL\". Save this for later use.",[1558,9282,9283,9284,1610],{},"If you have any issues obtaining the webhook URL from Discord, contact ",[1562,9285,9288],{"href":9286,"rel":9287},"https:\u002F\u002Fsupport.discord.com\u002Fhc\u002Fen-us",[1633],"Discord support",[1612,9290,9292],{"id":9291},"post-a-discord-message-with-an-axiomai-automation","Post a Discord message with an axiom.ai automation",[1617,9294],{},[1558,9296,9297,9298,9300,9301,9303],{},"To send a message to a channel within your Discord server, you'll need to use the ",[1562,9299,1605],{"href":1636}," step. You'll need the webhook URL from Discord detailed in the ",[1562,9302,8204],{"href":8203}," section.",[1558,9305,9306],{},"The payload that Discord is expecting can be found below and can be modified to your requirements:",[2346,9308,9311],{"className":9309,"code":9310,"language":4202,"meta":1636,"style":1636},"language-json shiki shiki-themes github-light-default github-dark-default","{\n    \"content\": \"\u003CYOUR_MESSAGE>\",\n    \"username\": \"Axiom bot\",\n    \"avatar_url\": \"\u003CURL>\"\n}\n",[1731,9312,9313,9318,9331,9343,9353],{"__ignoreMap":1636},[2354,9314,9315],{"class":2356,"line":2357},[2354,9316,9317],{"class":2395},"{\n",[2354,9319,9320,9324,9326,9329],{"class":2356,"line":1640},[2354,9321,9323],{"class":9322},"sjgCt","    \"content\"",[2354,9325,3617],{"class":2395},[2354,9327,9328],{"class":2364},"\"\u003CYOUR_MESSAGE>\"",[2354,9330,4044],{"class":2395},[2354,9332,9333,9336,9338,9341],{"class":2356,"line":1637},[2354,9334,9335],{"class":9322},"    \"username\"",[2354,9337,3617],{"class":2395},[2354,9339,9340],{"class":2364},"\"Axiom bot\"",[2354,9342,4044],{"class":2395},[2354,9344,9345,9348,9350],{"class":2356,"line":1647},[2354,9346,9347],{"class":9322},"    \"avatar_url\"",[2354,9349,3617],{"class":2395},[2354,9351,9352],{"class":2364},"\"\u003CURL>\"\n",[2354,9354,9355],{"class":2356,"line":3523},[2354,9356,4256],{"class":2395},[1558,9358,9359],{},"Let's break down each part of that payload:",[1718,9361,9362],{},[1721,9363,9364,9374,9379],{},[1724,9365,9366,9369,9370,9373],{},[1593,9367,9368],{},"content"," - this is your message contents that will be posted to the channel. You can insert text manually, or use the \"Insert data\" option to insert a data token. Learn more with our ",[1562,9371,9372],{"href":1373},"passing data between steps"," tutorial.",[1724,9375,9376,9378],{},[1593,9377,5703],{}," - this is optional, give a name to the bot posting your message.",[1724,9380,9381,9384],{},[1593,9382,9383],{},"avatar_url"," - this is optional, display an avatar for the bot posting your message.",[1558,9386,9387,9388,9390,9391,9394],{},"Hit \"Save\" once you are happy with your automation. Below you will find an example of this in action, we've omitted the ",[1731,9389,9383],{}," in this instance and used the ",[1731,9392,9393],{},"[custom-data]"," data token to pass a custom message into the webhook.",[2219,9396],{"src":9397,"alt":9398},"\u002Fdocs\u002Fguides\u002Fdiscord-trigger-webhook.png","use the trigger webhook step to trigger a Discord webhook",[1612,9400,2403],{"id":2402},[1617,9402],{},[1558,9404,9405,9406,9408,9409,9411],{},"Once you have your automation saved, click \"Run\" within the axiom.ai extension to get started. If successful, you should see a message appear in your Discord channel within a few seconds. If this is not successful, review any errors that appear in the builder, or within your ",[1562,9407,129],{"href":2418},". See ",[1562,9410,6487],{"href":1409}," for details on common errors and how to resolve them.",[1612,9413,2423],{"id":2422},[1617,9415],{},[1558,9417,9418,9419,9422],{},"Powering up your teams messaging using Discord and axiom.ai can be help to keep your content fresh - from automating posting using content that has been stored in a Google Sheet, to content that was automatically generated using our ",[1562,9420,1812],{"href":9421},"\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fgenerate-text-with-chatgpt"," step, the possibilities are endless.",[1558,9424,9425,9426,9431],{},"As with all API based tools, it's worth noting the ",[1562,9427,9430],{"href":9428,"rel":9429},"https:\u002F\u002Fdiscord.com\u002Fdeveloper-hub\u002Fdocs\u002Ftopics\u002Frate-limits",[1633],"rate limits"," that Discord applies to their webhooks - if you are having issues with messages not posting correctly, this is often the first culprit.",[1617,9433],{},[1558,9435,9436],{},[2434,9437,9438],{},"Testing was completed on 26 Nov 2024, features in Discord or axiom.ai may change from time to time and updates may need to be made.",[2438,9440,9441],{},"html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sjgCt, html code.shiki .sjgCt{--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1636,"searchDepth":1637,"depth":1637,"links":9443},[9444,9445,9446,9447],{"id":2172,"depth":1640,"text":2173},{"id":9291,"depth":1640,"text":9292},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"This guide explains how to post messages to Discord using axiom.ai. Learn to use webhooks, send custom content, and automate updates to your server channels.",{"type":2143,"format":1718,"intent_type":2675,"intent":2676,"tags":9450,"platfrom":9451},[2678,2942],[9452],"Discord","\u002Fguides\u002Fdiscord",{"title":9241,"description":9448},"guides\u002Fdiscord","DtVJ7jyF0A0EMXMCgfnhUTXRejRG8Hijh7IPFbqO9fg",{"id":9458,"title":9459,"body":9460,"date":1641,"description":9683,"extension":1643,"meta":9684,"navigation":1646,"order":1641,"path":9687,"seo":9688,"stem":9689,"__hash__":9690},"guides\u002Fguides\u002Fentering-text-into-search-field.md","How to automate entering text into search and clicking the result",{"type":1555,"value":9461,"toc":9677},[9462,9464,9467,9473,9475,9478,9517,9519,9527,9659,9661,9664,9666],[1617,9463],{},[1558,9465,9466],{},"This guide shows you how to start creating a bot to input text into a search field from a Google Sheet, click return to submit the search then click on the result. After adding the initial steps, simply use the [builder](\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fbuilder to customise the bot to your use case.",[1558,9468,9469,9470,9472],{},"We also have a great ",[1562,9471,2681],{"href":8639}," template to get you started.",[1612,9474,8672],{"id":8671},[1558,9476,9477],{},"Create a Google sheet with some test text to run your automation with.",[8679,9479,9480,9488],{},[8682,9481,9482],{},[8685,9483,9484,9486],{},[8688,9485,8690],{},[8688,9487,8693],{},[8695,9489,9490,9500,9507],{},[8685,9491,9492,9498],{},[8700,9493,9494],{},[1562,9495,9497],{"href":9496},"mailto:alex@testemail.com","alex@testemail.com",[8700,9499,8704],{},[8685,9501,9502,9505],{},[8700,9503,9504],{},"claretestemail.com",[8700,9506,8704],{},[8685,9508,9509,9515],{},[8700,9510,9511],{},[1562,9512,9514],{"href":9513},"mailto:sam@testemail.com","sam@testemail.com",[8700,9516,8704],{},[1612,9518,8720],{"id":8719},[1558,9520,8725,9521,8729,9523,8733,9525,8737],{},[1593,9522,8728],{},[1593,9524,8732],{},[1562,9526,8736],{"href":1361},[1718,9528,9529],{},[1721,9530,9531,9552],{},[1724,9532,9533,1729,9535,9537],{},[1593,9534,1728],{},[1731,9536,1733],{},[1721,9538,9539,9547],{},[1724,9540,9541,9543,9544,9546],{},[1731,9542,1740],{},": Search for the Google Sheet you created in the ",[1731,9545,1740],{}," field. Once found, click to select.",[1724,9548,9549,9551],{},[1731,9550,1746],{},": Choose a sheet tab or leave blank to use the first tab.",[1724,9553,9554,1729,9556,9558,9568],{},[1593,9555,1752],{},[1731,9557,667],{},[1721,9559,9560],{},[1724,9561,9562,1771,9564,1775,9566,1610],{},[1731,9563,667],{},[1731,9565,1833],{},[1731,9567,1778],{},[1721,9569,9570,9583,9612,9630,9647],{},[1724,9571,9572,1729,9574,9576],{},[1593,9573,1761],{},[1731,9575,1043],{},[1721,9577,9578],{},[1724,9579,9580,9582],{},[1731,9581,1770],{},": Insert the URL of the website.",[1724,9584,9585,1729,9587,9589],{},[1593,9586,1784],{},[1731,9588,293],{},[1721,9590,9591,9600],{},[1724,9592,9593,1771,9595,9597,9598,1610],{},[1731,9594,1794],{},[1731,9596,1794],{},", highlight the search field and click to select, finally press ",[1731,9599,5263],{},[1724,9601,9602,1771,9604,1775,9606,9608,9609,9611],{},[1731,9603,2580],{},[1731,9605,1833],{},[1731,9607,1778],{}," to pass the search term from the sheet. Select column ",[1731,9610,5152],{}," in the preview.",[1724,9613,9614,1729,9616,9618],{},[1593,9615,1809],{},[1731,9617,6944],{},[1721,9619,9620],{},[1724,9621,9622,6952,9624,7081,9626,9629],{},[1731,9623,6951],{},[1731,9625,6955],{},[1731,9627,9628],{},"Return",", to submit the search.",[1724,9631,9632,1729,9634,9636],{},[1593,9633,1852],{},[1731,9635,5243],{},[1721,9637,9638],{},[1724,9639,9640,1771,9642,9644,9645,1610],{},[1731,9641,1794],{},[1731,9643,1794],{},", highlight the search result, and press ",[1731,9646,5263],{},[1724,9648,9649,1729,9651,9654],{},[1593,9650,1880],{},[1731,9652,9653],{},"Delete row from Google Sheet",[1721,9655,9656],{},[1724,9657,9658],{},"Automatically removes the processed row to avoid duplicate scrapes in the next loop.",[1612,9660,8849],{"id":8848},[1558,9662,9663],{},"Now just use the step finder to continue adding steps and complete your search bot as required.",[1612,9665,2423],{"id":2422},[1558,9667,9668,9669,9673,9674,9676],{},"You can quickly scaffold a bot to ",[1562,9670,9672],{"href":9671},"\u002Fdocs\u002Ftutorials\u002Fdata","enter data"," into a search field and click the first result. This can be done with just a few steps. It is then possible to add additional ",[1562,9675,1543],{"href":1361}," to fully customize the bot to the use case",{"title":1636,"searchDepth":1637,"depth":1637,"links":9678},[9679,9680,9681,9682],{"id":8671,"depth":1640,"text":8672},{"id":8719,"depth":1640,"text":8720},{"id":8848,"depth":1640,"text":8849},{"id":2422,"depth":1640,"text":2423},"This guide shows how to automate typing search terms from a Google Sheet into a website and clicking the result using axiom.ai’s No-code tool.",{"pinned":1646,"type":2143,"format":2145,"intent_type":2675,"intent":8893,"tags":9685,"platfrom":9686},[2681],[3380],"\u002Fguides\u002Fentering-text-into-search-field",{"title":9459,"description":9683},"guides\u002Fentering-text-into-search-field","Hv9XgIb5ijdiaflcb9rW80QrUg7Dajvk-hculcMuJ6c",{"id":9692,"title":9693,"body":9694,"date":1641,"description":9700,"extension":1643,"meta":9887,"navigation":1646,"order":1641,"path":9893,"seo":9894,"stem":9895,"__hash__":9896},"guides\u002Fguides\u002Ferror-reporting-via-webhook.md","How to set up custom error reporting with webhooks and enriched context",{"type":1555,"value":9695,"toc":9879},[9696,9698,9701,9704,9708,9712,9715,9776,9779,9783,9786,9789,9796,9835,9838,9842,9845,9851,9855,9858,9862,9865,9868,9871,9874,9876],[1617,9697],{},[1558,9699,9700],{},"When running automations in the cloud, it’s important to understand errors clearly so you can fix them quickly. Standard error messages work well for simple failures, but they lack the detail needed when data is transformed, filtered, or combined across multiple steps.",[1558,9702,9703],{},"In these cases, having more context about what happened to the data during a run makes debugging far easier. You can create custom error messages and enrich them with data from your automation using just a few clicks. Let’s dive in.",[1612,9705,9707],{"id":9706},"how-to-set-up-webhook-or-email-notifications","How to set up webhook or email notifications",[2219,9709],{"src":9710,"alt":9711},"\u002Fguides\u002Fnotificaiton-on-error.webp","Axiom.ai configure notifications",[1558,9713,9714],{},"To configure notifications for your automation:",[1718,9716,9717],{},[2182,9718,9719,9725,9735,9752,9766],{},[1724,9720,9721,9722,1610],{},"Inside the automation editor, click ",[1731,9723,9724],{},"**Settings**",[1724,9726,9727,9728,9731,9732,1610],{},"Under ",[1731,9729,9730],{},"**Run options**",", click ",[1731,9733,9734],{},"**Notifications**",[1724,9736,2328,9737,9740,9741],{},[1731,9738,9739],{},"**When to notify**",", for example:\n",[1721,9742,9743,9746,9749],{},[1724,9744,9745],{},"On error",[1724,9747,9748],{},"On success",[1724,9750,9751],{},"On warnings",[1724,9753,9754,9755,9758,9759],{},"Choose ",[1731,9756,9757],{},"**How to notify**",":\n",[1721,9760,9761,9764],{},[1724,9762,9763],{},"Webhook",[1724,9765,8020],{},[1724,9767,9768,9769,9772,9773,1610],{},"Enter the ",[1731,9770,9771],{},"**webhook URL**"," or one or more ",[1731,9774,9775],{},"**email addresses**",[1558,9777,9778],{},"By default, notifications include the run status and basic error logs. While useful, this information is often too limited when debugging more complex automations.",[1612,9780,9782],{"id":9781},"how-to-enrich-your-error-message-with-data","How to enrich your error message with data",[2219,9784],{"src":9785,"alt":9711},"\u002Fguides\u002Fcustom-error-message.webp",[1558,9787,9788],{},"You can enrich error messages by attaching contextual data from your automation.",[1558,9790,9791,9792,9795],{},"Using the step finder, search for and add the ",[1593,9793,9794],{},"Add error metadata"," step. Place this step immediately after the step you want to monitor.",[1718,9797,9798],{},[2182,9799,9800,9807,9817,9832],{},[1724,9801,9802,9803,9806],{},"Insert the ",[1731,9804,9805],{},"**Add error metadata**"," step into your automation.",[1724,9808,9809,9810,9813,9814,1610],{},"In the ",[1731,9811,9812],{},"**Message**"," field, click ",[1731,9815,9816],{},"**Insert data**",[1724,9818,9819,9820,9822,9823],{},"Select tokens from any step that appears before the ",[1731,9821,9805],{}," step.\n",[1721,9824,9825],{},[1724,9826,9827,9828,9831],{},"For example, if you are manipulating scraped data with a ",[1731,9829,9830],{},"**Split**"," step, you can include the output from that step.",[1724,9833,9834],{},"Combine tokens and text to construct a clear, descriptive error message that explains what data was being processed at the time.",[1558,9836,9837],{},"Any error that occurs after this step will automatically include the enriched message, making it much easier to understand what went wrong during the run.",[1612,9839,9841],{"id":9840},"how-to-handle-runtime-errors-with-different-actions","How to handle runtime errors with different actions",[1558,9843,9844],{},"In some cases, you may want your automation to take a different set of actions when an error occurs instead of failing completely.",[1558,9846,9847,9848,9850],{},"This can be done using the ",[1593,9849,1197],{}," step. Any steps placed inside the catch block will only run if the bot fails. This lets you define an alternative sequence of steps that only execute when an error occurs, instead of stopping the automation.",[1612,9852,9854],{"id":9853},"how-to-ignore-errors-completely","How to ignore errors completely",[1558,9856,9857],{},"If you want your automation to continue running even when certain steps fail, you can configure steps to ignore errors. This is useful when errors are expected or non critical and should not stop the entire run.",[1612,9859,9861],{"id":9860},"major-update-session-recording-and-breakpoints","Major update: session recording and breakpoints",[1558,9863,9864],{},"We’re working on a major update to axiom.ai that introduces session recording and breakpoints.",[1558,9866,9867],{},"Run reports will include visual and text based playback of your automation. The text playback will provide a detailed commentary of what is happening in the browser at each stage of the run.",[1558,9869,9870],{},"After testing this feature internally, it’s clear this is a big step forward for debugging and understanding automation behaviour. It will be useful not only for users, but also for customer support when helping diagnose issues.",[1558,9872,9873],{},"Session recording will be available on higher tier plans and will be optional. For privacy, sensitive data will be automatically blurred in recordings.",[1612,9875,2423],{"id":2422},[1558,9877,9878],{},"Custom error reporting gives you far more visibility into what your automation is doing and why it failed. By combining notifications with enriched error metadata, you can diagnose issues faster and build more resilient automations.",{"title":1636,"searchDepth":1637,"depth":1637,"links":9880},[9881,9882,9883,9884,9885,9886],{"id":9706,"depth":1640,"text":9707},{"id":9781,"depth":1640,"text":9782},{"id":9840,"depth":1640,"text":9841},{"id":9853,"depth":1640,"text":9854},{"id":9860,"depth":1640,"text":9861},{"id":2422,"depth":1640,"text":2423},{"metaTitle":9888,"type":2143,"format":1718,"intent_type":2145,"intent":9889,"tags":9890,"platfrom":9892},"Learn how to create custom error notifications in axiom.ai using webhooks or email, and enrich error messages with automation data for faster debugging.","Generate reports and summaries",[9891],"error handling",[3380],"\u002Fguides\u002Ferror-reporting-via-webhook",{"title":9693,"description":9700},"guides\u002Ferror-reporting-via-webhook","JgQEpKk5x1YtfjjHwavxPvo9sQcmgXpwfsShaEIaSTg",{"id":9898,"title":9899,"body":9900,"date":1641,"description":10315,"extension":1643,"meta":10316,"navigation":1646,"order":1641,"path":10319,"seo":10320,"stem":10321,"__hash__":10322},"guides\u002Fguides\u002Fextract-emails.md","How to extract emails from a webpage",{"type":1555,"value":9901,"toc":10307},[9902,9904,9907,9909,9912,9916,9919,9948,9951,9982,9986,9989,10096,10099,10194,10197,10285,10287,10293,10296,10298,10304],[1617,9903],{},[1558,9905,9906],{},"Extracting a list of email addresses can be useful when attempting to retrieve contact details from multiple websites. Not all websites will have email addresses present within the page as the trend to move to contact forms continues to grow, but the details below will help you get started.",[1612,9908,2173],{"id":2172},[1558,9910,9911],{},"To get started, create an a new automation within axiom.ai.",[1612,9913,9915],{"id":9914},"extracting-email-addresses","Extracting email addresses",[1558,9917,9918],{},"In order to extract email addresses from a single page, follow the steps below:",[1718,9920,9921],{},[2182,9922,9923,9931,9938],{},[1724,9924,9925,9926,9930],{},"Add a ",[1562,9927,9928],{"href":1044},[1731,9929,1043],{}," step to your automation, input the website that you would like to extract email addresses from.",[1724,9932,9925,9933,9937],{},[1562,9934,9935],{"href":1226},[1731,9936,3918],{}," step, include the code below to extract the email addresses. Select the variant that works for your needs.",[1724,9939,9925,9940,9944,9945,9947],{},[1562,9941,9942],{"href":1214},[1731,9943,9188],{}," step and write the ",[1731,9946,4597],{}," data token to your Google Sheet.",[1558,9949,9950],{},"To use this method to extract email addresses from multiple pages, follow the steps below:",[1718,9952,9953],{},[2182,9954,9955,9969,9979],{},[1724,9956,9925,9957,9961,9962,9968],{},[1562,9958,9959],{"href":1091},[1731,9960,1733],{}," step, this sheet should contain a list of URLs to visit. See ",[1562,9963,9965],{"href":9964},".\u002Fextract-links-into-google-sheet",[1731,9966,9967],{},"How to extract links and write to a Google Sheet"," for more details on how to do this.",[1724,9970,9925,9971,9975,9976,9978],{},[1562,9972,9973],{"href":1075},[1731,9974,667],{}," step, use the ",[1731,9977,1778],{}," token to loop through the list of URLs.",[1724,9980,9981],{},"Inside the loop, add the steps from the section above.",[2266,9983,9985],{"id":9984},"scripts","Scripts",[1558,9987,9988],{},"Retrieve all email addresses:",[2346,9990,9992],{"className":2383,"code":9991,"language":2385,"meta":1636,"style":1636},"function getEmails() {\n    var pageHTML = document.body.innerHTML;\n    pageHTMLStr = pageHTML.toString();\n\n    emailAddresses = pageHTMLStr.match(\u002F([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9._-]+)\u002Fgi);\n    return [emailAddresses];\n}\n",[1731,9993,9994,10005,10018,10033,10037,10084,10092],{"__ignoreMap":1636},[2354,9995,9996,9999,10002],{"class":2356,"line":2357},[2354,9997,9998],{"class":3608},"function",[2354,10000,10001],{"class":3993}," getEmails",[2354,10003,10004],{"class":2395},"() {\n",[2354,10006,10007,10010,10013,10015],{"class":2356,"line":1640},[2354,10008,10009],{"class":3608},"    var",[2354,10011,10012],{"class":2395}," pageHTML ",[2354,10014,6569],{"class":3608},[2354,10016,10017],{"class":2395}," document.body.innerHTML;\n",[2354,10019,10020,10023,10025,10028,10031],{"class":2356,"line":1637},[2354,10021,10022],{"class":2395},"    pageHTMLStr ",[2354,10024,6569],{"class":3608},[2354,10026,10027],{"class":2395}," pageHTML.",[2354,10029,10030],{"class":3993},"toString",[2354,10032,4205],{"class":2395},[2354,10034,10035],{"class":2356,"line":1647},[2354,10036,3520],{"emptyLinePlaceholder":1646},[2354,10038,10039,10042,10044,10047,10050,10052,10055,10058,10061,10064,10066,10068,10072,10074,10076,10079,10082],{"class":2356,"line":3523},[2354,10040,10041],{"class":2395},"    emailAddresses ",[2354,10043,6569],{"class":3608},[2354,10045,10046],{"class":2395}," pageHTMLStr.",[2354,10048,10049],{"class":3993},"match",[2354,10051,4159],{"class":2395},[2354,10053,10054],{"class":2364},"\u002F(",[2354,10056,10057],{"class":3505},"[a-zA-Z0-9._-]",[2354,10059,10060],{"class":3608},"+",[2354,10062,10063],{"class":2364},"@",[2354,10065,10057],{"class":3505},[2354,10067,10060],{"class":3608},[2354,10069,10071],{"class":10070},"sa8KN","\\.",[2354,10073,10057],{"class":3505},[2354,10075,10060],{"class":3608},[2354,10077,10078],{"class":2364},")\u002F",[2354,10080,10081],{"class":3608},"gi",[2354,10083,6604],{"class":2395},[2354,10085,10086,10089],{"class":2356,"line":3595},[2354,10087,10088],{"class":3608},"    return",[2354,10090,10091],{"class":2395}," [emailAddresses];\n",[2354,10093,10094],{"class":2356,"line":3673},[2354,10095,4256],{"class":2395},[1558,10097,10098],{},"Retrieve all email addresses, remove duplicates:",[2346,10100,10102],{"className":2383,"code":10101,"language":2385,"meta":1636,"style":1636},"function getEmails() {\n    var pageHTML = document.body.innerHTML;\n    pageHTMLStr = pageHTML.toString();\n\n    emailAddresses = pageHTMLStr.match(\u002F([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9._-]+)\u002Fgi);\n    return [[...new Set(emailAddresses)]];\n}\n",[1731,10103,10104,10112,10122,10134,10138,10174,10190],{"__ignoreMap":1636},[2354,10105,10106,10108,10110],{"class":2356,"line":2357},[2354,10107,9998],{"class":3608},[2354,10109,10001],{"class":3993},[2354,10111,10004],{"class":2395},[2354,10113,10114,10116,10118,10120],{"class":2356,"line":1640},[2354,10115,10009],{"class":3608},[2354,10117,10012],{"class":2395},[2354,10119,6569],{"class":3608},[2354,10121,10017],{"class":2395},[2354,10123,10124,10126,10128,10130,10132],{"class":2356,"line":1637},[2354,10125,10022],{"class":2395},[2354,10127,6569],{"class":3608},[2354,10129,10027],{"class":2395},[2354,10131,10030],{"class":3993},[2354,10133,4205],{"class":2395},[2354,10135,10136],{"class":2356,"line":1647},[2354,10137,3520],{"emptyLinePlaceholder":1646},[2354,10139,10140,10142,10144,10146,10148,10150,10152,10154,10156,10158,10160,10162,10164,10166,10168,10170,10172],{"class":2356,"line":3523},[2354,10141,10041],{"class":2395},[2354,10143,6569],{"class":3608},[2354,10145,10046],{"class":2395},[2354,10147,10049],{"class":3993},[2354,10149,4159],{"class":2395},[2354,10151,10054],{"class":2364},[2354,10153,10057],{"class":3505},[2354,10155,10060],{"class":3608},[2354,10157,10063],{"class":2364},[2354,10159,10057],{"class":3505},[2354,10161,10060],{"class":3608},[2354,10163,10071],{"class":10070},[2354,10165,10057],{"class":3505},[2354,10167,10060],{"class":3608},[2354,10169,10078],{"class":2364},[2354,10171,10081],{"class":3608},[2354,10173,6604],{"class":2395},[2354,10175,10176,10178,10181,10184,10187],{"class":2356,"line":3595},[2354,10177,10088],{"class":3608},[2354,10179,10180],{"class":2395}," [[",[2354,10182,10183],{"class":3608},"...new",[2354,10185,10186],{"class":3993}," Set",[2354,10188,10189],{"class":2395},"(emailAddresses)]];\n",[2354,10191,10192],{"class":2356,"line":3673},[2354,10193,4256],{"class":2395},[1558,10195,10196],{},"Retrieve all email addresses that match a domain:",[2346,10198,10200],{"className":2383,"code":10199,"language":2385,"meta":1636,"style":1636},"function getEmails() {\n    var pageHTML = document.body.innerHTML;\n    pageHTMLStr = pageHTML.toString();\n\n    \u002F\u002F Replace \"example.com\" with your domain\n    emailAddresses = pageHTMLStr.match(\u002F([a-zA-Z0-9._-]+@example.com)\u002Fgi);\n    return [emailAddresses]; \u002F\u002F or return [[...new Set(emailAddresses)]];\n}\n",[1731,10201,10202,10210,10220,10232,10236,10241,10271,10281],{"__ignoreMap":1636},[2354,10203,10204,10206,10208],{"class":2356,"line":2357},[2354,10205,9998],{"class":3608},[2354,10207,10001],{"class":3993},[2354,10209,10004],{"class":2395},[2354,10211,10212,10214,10216,10218],{"class":2356,"line":1640},[2354,10213,10009],{"class":3608},[2354,10215,10012],{"class":2395},[2354,10217,6569],{"class":3608},[2354,10219,10017],{"class":2395},[2354,10221,10222,10224,10226,10228,10230],{"class":2356,"line":1637},[2354,10223,10022],{"class":2395},[2354,10225,6569],{"class":3608},[2354,10227,10027],{"class":2395},[2354,10229,10030],{"class":3993},[2354,10231,4205],{"class":2395},[2354,10233,10234],{"class":2356,"line":1647},[2354,10235,3520],{"emptyLinePlaceholder":1646},[2354,10237,10238],{"class":2356,"line":3523},[2354,10239,10240],{"class":4535},"    \u002F\u002F Replace \"example.com\" with your domain\n",[2354,10242,10243,10245,10247,10249,10251,10253,10255,10257,10259,10262,10264,10267,10269],{"class":2356,"line":3595},[2354,10244,10041],{"class":2395},[2354,10246,6569],{"class":3608},[2354,10248,10046],{"class":2395},[2354,10250,10049],{"class":3993},[2354,10252,4159],{"class":2395},[2354,10254,10054],{"class":2364},[2354,10256,10057],{"class":3505},[2354,10258,10060],{"class":3608},[2354,10260,10261],{"class":2364},"@example",[2354,10263,1610],{"class":3505},[2354,10265,10266],{"class":2364},"com)\u002F",[2354,10268,10081],{"class":3608},[2354,10270,6604],{"class":2395},[2354,10272,10273,10275,10278],{"class":2356,"line":3673},[2354,10274,10088],{"class":3608},[2354,10276,10277],{"class":2395}," [emailAddresses]; ",[2354,10279,10280],{"class":4535},"\u002F\u002F or return [[...new Set(emailAddresses)]];\n",[2354,10282,10283],{"class":2356,"line":3679},[2354,10284,4256],{"class":2395},[1612,10286,2403],{"id":2402},[1558,10288,10289,10290,10292],{},"Click \"Run\" on your automation, observe the builder for any errors (see ",[1562,10291,3824],{"href":1409}," for more details) and your Google Sheet for changes.",[1558,10294,10295],{},"Alternatively, if you are a developer, this code can be copied into the Chrome Devtools console for testing outside of your automation.",[1612,10297,2423],{"id":2422},[1558,10299,10300,10301,1610],{},"Extracting email addresses from a page can be helpful from a marketing perspective, but should be used sparingly to avoid spamming potential customers. We are excited to see what you do with this - let us know over in our ",[1562,10302,4934],{"href":1631,"rel":10303},[1633],[2438,10305,10306],{},"html pre.shiki code .sjeE4, html code.shiki .sjeE4{--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .sbjLL, html code.shiki .sbjLL{--shiki-default:#8250DF;--shiki-dark:#D2A8FF}html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .sHrmB, html code.shiki .sHrmB{--shiki-default:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .sa8KN, html code.shiki .sa8KN{--shiki-default:#116329;--shiki-default-font-weight:bold;--shiki-dark:#7EE787;--shiki-dark-font-weight:bold}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sU953, html code.shiki .sU953{--shiki-default:#6E7781;--shiki-dark:#8B949E}",{"title":1636,"searchDepth":1637,"depth":1637,"links":10308},[10309,10310,10313,10314],{"id":2172,"depth":1640,"text":2173},{"id":9914,"depth":1640,"text":9915,"children":10311},[10312],{"id":9984,"depth":1637,"text":9985},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"This guide explains how to extract email addresses from a webpage using axiom.ai and JavaScript. Learn to scrape emails, remove duplicates, and save results to Google Sheets.",{"type":2143,"format":1718,"intent_type":3377,"intent":5626,"tags":10317,"platfrom":10318},[2149,3156],[3380],"\u002Fguides\u002Fextract-emails",{"title":9899,"description":10315},"guides\u002Fextract-emails","CLejNzPKS-oq-H37YFGLBZ31meHspwQYM6zdMsycnq0",{"id":10324,"title":10325,"body":10326,"date":1641,"description":10514,"extension":1643,"meta":10515,"navigation":1646,"order":1641,"path":10518,"seo":10519,"stem":10520,"__hash__":10521},"guides\u002Fguides\u002Fgithub.md","How to automate Github using an axiom.ai automation",{"type":1555,"value":10327,"toc":10507},[10328,10330,10338,10341,10343,10346,10370,10377,10381,10387,10403,10406,10452,10463,10469,10475,10477,10486,10488,10495,10502],[1617,10329],{},[1558,10331,10332,10337],{},[1562,10333,10336],{"href":10334,"rel":10335},"https:\u002F\u002Fgithub.com",[1633],"Github"," is a cloud-based platform for version control and collaboration, built around Git. It allows developers to store, manage, and track changes to their code, collaborate with others, and automate workflows. Key features include repositories, pull requests, issues, actions (CI\u002FCD), and security tools. It’s widely used for open-source and private projects.",[1558,10339,10340],{},"Github offers many features around the use of their API and webhooks, for this guide, we will be concentrating on webhooks.",[1612,10342,2173],{"id":2172},[1558,10344,10345],{},"To get started you will need to have the following prepared:",[1718,10347,10348],{},[1721,10349,10350,10353,10356,10359,10364],{},[1724,10351,10352],{},"A Github account",[1724,10354,10355],{},"A Github repository",[1724,10357,10358],{},"An axiom.ai account",[1724,10360,10361,10362],{},"An axiom.ai subscription",[4943,10363,1804],{},[1724,10365,10366,10367],{},"Your axiom.ai API - ",[1562,10368,10369],{"href":2192},"API Documentation",[1558,10371,10372],{},[2434,10373,10374,10376],{},[4943,10375,1804],{}," Subscription is required to use the \"Receive data from another app\" step",[1612,10378,10380],{"id":10379},"triggering-an-automated-based-on-github-repository-event","Triggering an automated based on Github repository event",[1558,10382,10383,10384,10386],{},"Github offers the ability to send a webhook when an event occurs within a repository. This defaults to ",[1731,10385,6642],{}," events, but you can configure this to notify you of all events, or specific events. To create a new webhook, follow the steps below:",[1718,10388,10389],{},[2182,10390,10391,10394,10397,10400],{},[1724,10392,10393],{},"Open your repository.",[1724,10395,10396],{},"Navigate to \"Settings\".",[1724,10398,10399],{},"Navigate to \"Webhooks\".",[1724,10401,10402],{},"Click \"Add webhook\".",[1558,10404,10405],{},"To configure your new webhook, use the following settings:",[1718,10407,10408],{},[1721,10409,10410,10423,10434,10444],{},[1724,10411,10412,10415,10417,10418,10420],{},[1593,10413,10414],{},"1. Payload URL",[1981,10416],{},"\nSet to the axiom.ai endpoint. This will include your automation name and API key:",[1981,10419],{},[1731,10421,10422],{},"https:\u002F\u002Flar.axiom.ai\u002Fapi\u002Fv3\u002Ftrigger?key=\u003CKEY>&name=\u003CNAME>",[1724,10424,10425,10428,10430,10431,1610],{},[1593,10426,10427],{},"2. Content type",[1981,10429],{},"\nSet to ",[1731,10432,10433],{},"application\u002Fjson",[1724,10435,10436,10439,10441,10442,1610],{},[1593,10437,10438],{},"3. Events",[1981,10440],{},"\nConfigure the webhook events based on your needs. If your repo has high activity, consider axiom.ai's ",[1562,10443,9430],{"href":364},[1724,10445,10446,10449,10451],{},[1593,10447,10448],{},"4. Save your work",[1981,10450],{},"\nMake sure to save the webhook configuration before exiting.",[1558,10453,10454,10457,10458,1610],{},[4943,10455,10456],{},"2"," The automation name should be encoded, for example \"Hello world\" → \"Hello+world\". Learn more at ",[1562,10459,10462],{"href":10460,"rel":10461},"https:\u002F\u002Fwww.w3schools.com\u002Ftags\u002Fref_urlencode.ASP",[1633],"w3schools",[1558,10464,10465,10466,10468],{},"Once the webhook has been set up, you'll need to add a ",[1562,10467,1110],{"href":1111}," step to allow the automation to be triggered by the webhook. The data passed to this step from the webhook will be accessible within your automation.",[10470,10471,10472],"blockquote",{},[1558,10473,10474],{},"💡 Grabbing a sample of the payload would allow you to create 'test data' within this step",[1612,10476,2403],{"id":2402},[1558,10478,10479,10480,10482,10483,10485],{},"To test your workflow, trigger an event on your repository - for example, creating a commit to the repository. Open up your axiom.ai extension and view the ",[1562,10481,129],{"href":2418}," to ensure that the automation has run. Review any errors and make changes as required. If you experience issues, see ",[1562,10484,6487],{"href":1409}," for common resolutions.",[2266,10487,2423],{"id":2422},[1558,10489,10490,10491,10494],{},"Getting notifications of events from your Github repository can be helpful for your team to keep track of changes to the repository. Triggering your automations based on these events can allow you to trigger more complex workflows. See our ",[1562,10492,10493],{"href":1962},"guides"," for more interesting services that you could integrate into your automation, such as using Slack or Discord for notifications, or using Airtable, Supabase, or Tadabase, to create a logging system for your repository events.",[1558,10496,10497,10498],{},"We'd love to hear about what you do with this, let us know over in our ",[1562,10499,4934],{"href":10500,"rel":10501},"https:\u002F\u002Freddit.com\u002Fr\u002Faxiom_ai",[1633],[1558,10503,10504],{},[2434,10505,10506],{},"Testing was completed on 24 February 25, features in Discord or axiom.ai may change from time to time and updates may need to be made.",{"title":1636,"searchDepth":1637,"depth":1637,"links":10508},[10509,10510,10511],{"id":2172,"depth":1640,"text":2173},{"id":10379,"depth":1640,"text":10380},{"id":2402,"depth":1640,"text":2403,"children":10512},[10513],{"id":2422,"depth":1637,"text":2423},"This guide shows how to trigger axiom.ai automations using GitHub webhooks. Learn to connect repository events to workflows with the “Receive data from another app” step.",{"type":2143,"format":1718,"intent_type":2145,"intent":2454,"tags":10516,"platfrom":10517},[2456,2457],[10336],"\u002Fguides\u002Fgithub",{"title":10325,"description":10514},"guides\u002Fgithub","otmZ9YmlUwp_zhRhrrqg7uv_DzZuKSQsbMjST5ePl0k",{"id":10523,"title":10524,"body":10525,"date":2669,"description":10838,"extension":1643,"meta":10839,"navigation":1646,"order":1641,"path":10844,"seo":10845,"stem":10846,"__hash__":10847},"guides\u002Fguides\u002Fgmail-mail-merge.md","How to mail merge with Gmail using google sheets",{"type":1555,"value":10526,"toc":10830},[10527,10529,10536,10538,10540,10547,10551,10558,10562,10564,10568,10700,10704,10709,10711,10716,10718,10723,10822],[1617,10528],{},[1558,10530,10531,10532,10535],{},"This Gmail bulk sender  automation template uses a bot to send emails in bulk from a Google Sheet through Gmail. The bot retrieves data from the Sheet, opens Gmail in Chrome, fills in the ",[1593,10533,10534],{},"\"Compose\""," form with email, subject, and body, and clicks send. After sending, it deletes the processed row and repeats the process with subsequent rows.",[1662,10537],{},[1612,10539,2480],{"id":2479},[1558,10541,10542,10543,10546],{},"Create a new Google Sheet. You can do this in your Chrome browser by entering the shortcut 'sheet.new\"**, assuming you already have an account. Name your sheet something like ",[1593,10544,10545],{},"\"Gmail Mailer\"",". Add some content to test with email addresses, name, subject, body etc",[1612,10548,10550],{"id":10549},"install-the-gmail-bulk-sender-bot","Install the Gmail bulk sender bot",[1558,10552,10553,10554,1696,10556,1700],{},"To install this Gmail bot click ",[1593,10555,1695],{},[1593,10557,1699],{},[1558,10559,1703,10560,1610],{},[1593,10561,1706],{},[1558,10563,1709],{},[1612,10565,10567],{"id":10566},"configure-your-gmail-bulk-sender-bot","Configure your Gmail bulk sender bot",[1718,10569,10570,10698],{},[1721,10571,10572,10589,10597],{},[1724,10573,10574,1729,10576,10578],{},[1593,10575,1986],{},[1731,10577,1733],{},[1721,10579,10580,10584],{},[1724,10581,10582,1741],{},[1731,10583,1740],{},[1724,10585,10586,10588],{},[1731,10587,1746],{},": Choose the tab with the email information in it.",[1724,10590,10591,1729,10593,10596],{},[1593,10592,2535],{},[1731,10594,10595],{},"Go to page: mail.google.com\u002Fmail\u002Fu\u002F0\u002F#inbox","^",[1724,10598,10599,1729,10602,10604],{},[1593,10600,10601],{},"Step 3.0",[1731,10603,667],{},[1721,10605,10606,10614,10630,10638,10654,10659,10675,10680],{},[1724,10607,10608,1729,10611,10596],{},[1593,10609,10610],{},"Step 3.1",[1731,10612,10613],{},"Wait: For compose to open",[1724,10615,10616,1729,10619,10622],{},[1593,10617,10618],{},"Step 3.2",[1731,10620,10621],{},"Enter text: Email",[1721,10623,10624],{},[1724,10625,10626,2792,10628,1610],{},[1731,10627,2580],{},[1731,10629,1866],{},[1724,10631,10632,1729,10635,10596],{},[1593,10633,10634],{},"Step 3.3",[1731,10636,10637],{},"Press key(s): Tab to Subject",[1724,10639,10640,1729,10643,10646],{},[1593,10641,10642],{},"Step 3.4",[1731,10644,10645],{},"Enter text: Subject",[1721,10647,10648],{},[1724,10649,10650,2792,10652,1610],{},[1731,10651,2580],{},[1731,10653,1866],{},[1724,10655,10656,10596],{},[1593,10657,10658],{},"Step 3.5 – 3.6",[1724,10660,10661,1729,10664,10667],{},[1593,10662,10663],{},"Step 3.7",[1731,10665,10666],{},"Enter text: Body",[1721,10668,10669],{},[1724,10670,10671,2792,10673,1610],{},[1731,10672,2580],{},[1731,10674,1866],{},[1724,10676,10677,10596],{},[1593,10678,10679],{},"Step 3.8 – 3.11",[1724,10681,10682,1729,10685,10687],{},[1593,10683,10684],{},"Step 3.12",[1731,10686,1920],{},[1721,10688,10689,10693],{},[1724,10690,10691,1741],{},[1731,10692,1740],{},[1724,10694,10695,10697],{},[1731,10696,1746],{},": Choose the tab with the emails in it.",[1558,10699,2610],{},[1612,10701,10703],{"id":10702},"run-your-gmail-bulk-sender-bot","Run your Gmail bulk sender bot",[1558,10705,10706,10707,1610],{},"To test the Gmail bot, open Gmail and run the bot using the Desktop app. Monitor its operation to ensure it is configured and functioning correctly. If you wish to schedule the bot ",[1562,10708,2620],{"href":638},[1612,10710,1956],{"id":1955},[1558,10712,1959,10713,10715],{},[1562,10714,1963],{"href":1962},", you can use our no-code bot builder to customize any bot according to your requirements",[1612,10717,1398],{"id":1967},[1558,10719,10720,10721,1610],{},"We recommend you watch the video to troubleshoot. If you wish to schedule, the bot you will need to share the Cookie in settings or ",[1562,10722,2620],{"href":638},[1718,10724,10725],{},[1721,10726,10727,10738,10755,10771,10786,10797,10808],{},[1724,10728,10729,10732,1983,10734,10737],{},[1593,10730,10731],{},"Email not added?",[1981,10733],{},[1731,10735,10736],{},"Step 3.2 – Enter text: Email",", check the cursor location. By default, it should be in the Email input field.",[1724,10739,10740,10743,1983,10745,10748,10749,10751,10752,10754],{},[1593,10741,10742],{},"Tab not working?",[1981,10744],{},[1731,10746,10747],{},"Step 3.3 – Press Key(s): Tab to Subject",", make sure the step includes pressing ",[1731,10750,9628],{}," to submit the email address, followed by ",[1731,10753,6959],{}," to move to the Subject field.",[1724,10756,10757,10760,1983,10762,10765,10766,10768,10769,1610],{},[1593,10758,10759],{},"Subject text not added?",[1981,10761],{},[1731,10763,10764],{},"Step 3.4 – Enter text: Subject",", confirm that you clicked ",[1731,10767,1833],{}," and selected ",[1731,10770,1866],{},[1724,10772,10773,10776,1983,10778,10781,10782,10785],{},[1593,10774,10775],{},"Body entered into subject?",[1981,10777],{},[1731,10779,10780],{},"Step 3.7 – Enter text: Body",", check ",[1731,10783,10784],{},"Step 3.6"," to ensure the cursor is correctly placed before the body text is entered.",[1724,10787,10788,10791,1983,10793,10796],{},[1593,10789,10790],{},"Send key not clicked?",[1981,10792],{},[1731,10794,10795],{},"Step 3.9 – Press Key(s): Click send",", re-record the keystroke sequence and test again.",[1724,10798,10799,10802,1983,10804,10807],{},[1593,10800,10801],{},"Bot out of sync?",[1981,10803],{},[1731,10805,10806],{},"Step 3.10 – Wait: For email to send",", try extending the wait time to give Gmail more time to process.",[1724,10809,10810,10813,1983,10815,10818,10819,10821],{},[1593,10811,10812],{},"Compose button not found or visible?",[1981,10814],{},[1731,10816,10817],{},"Step 3.11 – Click element: Open new Compose window",", reselect the compose button.",[1981,10820],{},"\nIf it's not visible, check that the Gmail sidebar is toggled open.",[1558,10823,2118,10824,10826,10827],{},[1562,10825,2121],{"href":82},"\nTo learn more read this full in-depth guide on how to send an ",[1562,10828,10829],{"href":3139},"email blast using  Gmail.",{"title":1636,"searchDepth":1637,"depth":1637,"links":10831},[10832,10833,10834,10835,10836,10837],{"id":2479,"depth":1640,"text":2480},{"id":10549,"depth":1640,"text":10550},{"id":10566,"depth":1640,"text":10567},{"id":10702,"depth":1640,"text":10703},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"This guide shows how to mail merge with Gmail using Google Sheets and axiom.ai. Automate sending bulk emails by filling out the compose form and submitting each message.",{"pinned":1646,"read":3151,"level":2140,"video":10840,"templateId":3808,"type":2143,"format":2144,"intent_type":2675,"intent":3154,"tags":10841,"platfrom":10843},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fr8W-S0Oc6QI",[3156,10842],"mail merge",[3158],"\u002Fguides\u002Fgmail-mail-merge",{"title":10524,"description":10838},"guides\u002Fgmail-mail-merge","LwpEB2Du4j0QYMkZbvIGJahErvkOgW3zPs0JMQZM9RQ",{"id":10849,"title":10850,"body":10851,"date":1641,"description":11372,"extension":1643,"meta":11373,"navigation":1646,"order":1641,"path":11377,"seo":11378,"stem":11379,"__hash__":11380},"guides\u002Fguides\u002Fgoogle-apps-script.md","How to use Google Apps Script to trigger an automation",{"type":1555,"value":10852,"toc":11362},[10853,10855,10864,10866,10868,10870,10890,10892,10896,10898,10901,10905,10907,10910,10941,10944,10948,10950,10953,10985,11287,11291,11295,11297,11300,11320,11323,11325,11327,11330,11348,11352,11354,11356,11359],[1617,10854],{},[1558,10856,10857,10858,10860,10861,10863],{},"To send a POST request to your automation using Google Apps Script, follow the steps below. First, ensure that you have the API endpoint and the necessary ",[1562,10859,2188],{"href":2192},". This guide walks you through a basic example of how you can structure your Google Apps Script to send a POST request, fetching all the data from an active Google Sheet. We also have a no-code integration with ",[1562,10862,759],{"href":760}," that can be used to fetch, write, and edit Google Sheets data.",[1612,10865,2173],{"id":2172},[1617,10867],{},[1558,10869,2178],{},[1718,10871,10872],{},[2182,10873,10874,10880,10884],{},[1724,10875,10876,2189,10878,1610],{},[1593,10877,2188],{},[1562,10879,2193],{"href":2192},[1724,10881,10882,2199],{},[1593,10883,2198],{},[1724,10885,10886,2205,10888,1610],{},[1593,10887,2204],{},[1731,10889,2208],{},[1662,10891],{},[1612,10893,10895],{"id":10894},"trigger-an-axiomai-automation-using-google-app-scripts","Trigger an axiom.ai automation using Google App Scripts",[1617,10897],{},[1558,10899,10900],{},"Learn how to get started with triggering your axiom.ai automation with a Google App Script.",[2266,10902,10904],{"id":10903},"set-your-axiomai-automation","Set your axiom.ai automation",[1617,10906],{},[1558,10908,10909],{},"In this basic example, we will trigger the automation from a Google Apps Script, passing the data into our automation from the active Google Sheet. The automation will then open up Google Search and pass the data into the search field. Replicate the design pattern below in the [builder](\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fbuilder.",[1718,10911,10912],{},[2182,10913,10914,10920,10927],{},[1724,10915,10916],{},[1593,10917,10918],{},[1731,10919,1110],{},[1724,10921,10922,10926],{},[1593,10923,10924],{},[1731,10925,1043],{},": Insert the Google search URL",[1724,10928,10929,10933,10934,5097,10937,10940],{},[1593,10930,10931],{},[1731,10932,293],{},": Select the search field, then click ",[1593,10935,10936],{},"insert data",[1593,10938,10939],{},"webhook-data"," to pass data from the sheet, select column 'A' in the data preview.",[2219,10942],{"src":10943,"alt":2264},"\u002Fdocs\u002Fguides\u002Ftrigger-axiom-from-app-script.jpg",[2266,10945,10947],{"id":10946},"create-an-api-call-using-google-apps-script","Create an API call using Google Apps Script",[1617,10949],{},[1558,10951,10952],{},"First, create a new Google Sheet by entering 'Sheet.new' into a blank browser tab.",[1718,10954,10955],{},[2182,10956,10957,10963,10970,10973,10979],{},[1724,10958,10959,10962],{},[1593,10960,10961],{},"Create a new Google Sheet",", add some text into column A.",[1724,10964,10965,10966,10969],{},"Click on ",[1593,10967,10968],{},"Extensions > Apps Script"," to open the Apps Script window.",[1724,10971,10972],{},"Copy the code example from this page into the Apps Script window.",[1724,10974,10975,10976,1610],{},"Insert your API key in the input noted with ",[1593,10977,10978],{},"\"insert key here\"",[1724,10980,10981,10982,1610],{},"Insert the name of the automation you wish to trigger where the text says ",[1593,10983,10984],{},"\"insert automation name here\"",[2346,10986,10988],{"className":2383,"code":10987,"language":2385,"meta":1636,"style":1636},"function sendDataToAxiomAi() {\n  var url = 'https:\u002F\u002Flar.axiom.ai\u002Fapi\u002Fv3\u002Ftrigger'; \u002F\u002F Replace with your axiom.ai endpoint\n  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();\n  var dataRange = sheet.getDataRange(); \u002F\u002F Get all the data in the sheet\n  var dataValues = dataRange.getValues(); \u002F\u002F Get the values as a 2D array\n\n  \u002F\u002F Create the payload, passing the 2D array directly\n  var payload = {\n    \"key\": \"Insert key here\",\n    \"name\": \"Insert automation name here\",\n    \"data\": dataValues \u002F\u002F Sending the entire sheet data as an array of arrays\n  };\n  \n  var options = {\n    'method': 'post',\n    'contentType': 'application\u002Fjson',\n    'payload': JSON.stringify(payload)\n  };\n  \n  try {\n    var response = UrlFetchApp.fetch(url, options);\n    Logger.log(response.getContentText());\n  } catch (error) {\n    Logger.log('Error: ' + error.toString());\n  }\n}\n",[1731,10989,10990,10999,11018,11041,11062,11082,11086,11091,11102,11114,11126,11137,11142,11146,11157,11169,11181,11199,11203,11207,11214,11232,11248,11257,11278,11283],{"__ignoreMap":1636},[2354,10991,10992,10994,10997],{"class":2356,"line":2357},[2354,10993,9998],{"class":3608},[2354,10995,10996],{"class":3993}," sendDataToAxiomAi",[2354,10998,10004],{"class":2395},[2354,11000,11001,11004,11007,11009,11012,11015],{"class":2356,"line":1640},[2354,11002,11003],{"class":3608},"  var",[2354,11005,11006],{"class":2395}," url ",[2354,11008,6569],{"class":3608},[2354,11010,11011],{"class":2364}," 'https:\u002F\u002Flar.axiom.ai\u002Fapi\u002Fv3\u002Ftrigger'",[2354,11013,11014],{"class":2395},"; ",[2354,11016,11017],{"class":4535},"\u002F\u002F Replace with your axiom.ai endpoint\n",[2354,11019,11020,11022,11025,11027,11030,11033,11036,11039],{"class":2356,"line":1637},[2354,11021,11003],{"class":3608},[2354,11023,11024],{"class":2395}," sheet ",[2354,11026,6569],{"class":3608},[2354,11028,11029],{"class":2395}," SpreadsheetApp.",[2354,11031,11032],{"class":3993},"getActiveSpreadsheet",[2354,11034,11035],{"class":2395},"().",[2354,11037,11038],{"class":3993},"getActiveSheet",[2354,11040,4205],{"class":2395},[2354,11042,11043,11045,11048,11050,11053,11056,11059],{"class":2356,"line":1647},[2354,11044,11003],{"class":3608},[2354,11046,11047],{"class":2395}," dataRange ",[2354,11049,6569],{"class":3608},[2354,11051,11052],{"class":2395}," sheet.",[2354,11054,11055],{"class":3993},"getDataRange",[2354,11057,11058],{"class":2395},"(); ",[2354,11060,11061],{"class":4535},"\u002F\u002F Get all the data in the sheet\n",[2354,11063,11064,11066,11069,11071,11074,11077,11079],{"class":2356,"line":3523},[2354,11065,11003],{"class":3608},[2354,11067,11068],{"class":2395}," dataValues ",[2354,11070,6569],{"class":3608},[2354,11072,11073],{"class":2395}," dataRange.",[2354,11075,11076],{"class":3993},"getValues",[2354,11078,11058],{"class":2395},[2354,11080,11081],{"class":4535},"\u002F\u002F Get the values as a 2D array\n",[2354,11083,11084],{"class":2356,"line":3595},[2354,11085,3520],{"emptyLinePlaceholder":1646},[2354,11087,11088],{"class":2356,"line":3673},[2354,11089,11090],{"class":4535},"  \u002F\u002F Create the payload, passing the 2D array directly\n",[2354,11092,11093,11095,11098,11100],{"class":2356,"line":3679},[2354,11094,11003],{"class":3608},[2354,11096,11097],{"class":2395}," payload ",[2354,11099,6569],{"class":3608},[2354,11101,4008],{"class":2395},[2354,11103,11104,11107,11109,11112],{"class":2356,"line":3685},[2354,11105,11106],{"class":2364},"    \"key\"",[2354,11108,3617],{"class":2395},[2354,11110,11111],{"class":2364},"\"Insert key here\"",[2354,11113,4044],{"class":2395},[2354,11115,11116,11119,11121,11124],{"class":2356,"line":3708},[2354,11117,11118],{"class":2364},"    \"name\"",[2354,11120,3617],{"class":2395},[2354,11122,11123],{"class":2364},"\"Insert automation name here\"",[2354,11125,4044],{"class":2395},[2354,11127,11128,11131,11134],{"class":2356,"line":3761},[2354,11129,11130],{"class":2364},"    \"data\"",[2354,11132,11133],{"class":2395},": dataValues ",[2354,11135,11136],{"class":4535},"\u002F\u002F Sending the entire sheet data as an array of arrays\n",[2354,11138,11139],{"class":2356,"line":3775},[2354,11140,11141],{"class":2395},"  };\n",[2354,11143,11144],{"class":2356,"line":3153},[2354,11145,5158],{"class":2395},[2354,11147,11148,11150,11153,11155],{"class":2356,"line":3799},[2354,11149,11003],{"class":3608},[2354,11151,11152],{"class":2395}," options ",[2354,11154,6569],{"class":3608},[2354,11156,4008],{"class":2395},[2354,11158,11159,11162,11164,11167],{"class":2356,"line":3808},[2354,11160,11161],{"class":2364},"    'method'",[2354,11163,3617],{"class":2395},[2354,11165,11166],{"class":2364},"'post'",[2354,11168,4044],{"class":2395},[2354,11170,11171,11174,11176,11179],{"class":2356,"line":4150},[2354,11172,11173],{"class":2364},"    'contentType'",[2354,11175,3617],{"class":2395},[2354,11177,11178],{"class":2364},"'application\u002Fjson'",[2354,11180,4044],{"class":2395},[2354,11182,11183,11186,11188,11191,11193,11196],{"class":2356,"line":4168},[2354,11184,11185],{"class":2364},"    'payload'",[2354,11187,3617],{"class":2395},[2354,11189,11190],{"class":3505},"JSON",[2354,11192,1610],{"class":2395},[2354,11194,11195],{"class":3993},"stringify",[2354,11197,11198],{"class":2395},"(payload)\n",[2354,11200,11201],{"class":2356,"line":4176},[2354,11202,11141],{"class":2395},[2354,11204,11205],{"class":2356,"line":4182},[2354,11206,5158],{"class":2395},[2354,11208,11209,11212],{"class":2356,"line":4187},[2354,11210,11211],{"class":3608},"  try",[2354,11213,4008],{"class":2395},[2354,11215,11216,11218,11221,11223,11226,11229],{"class":2356,"line":4208},[2354,11217,10009],{"class":3608},[2354,11219,11220],{"class":2395}," response ",[2354,11222,6569],{"class":3608},[2354,11224,11225],{"class":2395}," UrlFetchApp.",[2354,11227,11228],{"class":3993},"fetch",[2354,11230,11231],{"class":2395},"(url, options);\n",[2354,11233,11234,11237,11239,11242,11245],{"class":2356,"line":4220},[2354,11235,11236],{"class":2395},"    Logger.",[2354,11238,4214],{"class":3993},[2354,11240,11241],{"class":2395},"(response.",[2354,11243,11244],{"class":3993},"getContentText",[2354,11246,11247],{"class":2395},"());\n",[2354,11249,11250,11253,11255],{"class":2356,"line":4232},[2354,11251,11252],{"class":2395},"  } ",[2354,11254,4226],{"class":3608},[2354,11256,4229],{"class":2395},[2354,11258,11259,11261,11263,11265,11268,11271,11274,11276],{"class":2356,"line":4247},[2354,11260,11236],{"class":2395},[2354,11262,4214],{"class":3993},[2354,11264,4159],{"class":2395},[2354,11266,11267],{"class":2364},"'Error: '",[2354,11269,11270],{"class":3608}," +",[2354,11272,11273],{"class":2395}," error.",[2354,11275,10030],{"class":3993},[2354,11277,11247],{"class":2395},[2354,11279,11280],{"class":2356,"line":4253},[2354,11281,11282],{"class":2395},"  }\n",[2354,11284,11285],{"class":2356,"line":4259},[2354,11286,4256],{"class":2395},[2219,11288],{"src":11289,"alt":11290},"\u002Fdocs\u002Fguides\u002Fgoogle-app-script-trigger-bot.jpg","Google App Script trigger axiom.ai bot run with API call",[2266,11292,11294],{"id":11293},"trigger-based-on-edits-to-your-sheet","Trigger based on edits to your sheet",[1617,11296],{},[1558,11298,11299],{},"Google Apps Script offers event-driven triggers that can be set up to end data to your axiom.ai automation.",[1718,11301,11302],{},[2182,11303,11304,11307,11310,11317],{},[1724,11305,11306],{},"Click \"Triggers\" in the Google Apps Script sidebar.",[1724,11308,11309],{},"Click \"Add Trigger\" to create a new trigger.",[1724,11311,11312,11313,11316],{},"Set the function to run to ",[1731,11314,11315],{},"sendDataToAxiomAi"," and the event type to \"On edit\".",[1724,11318,11319],{},"Click \"Save\".",[1558,11321,11322],{},"This will send all the sheet data when a cell is changed - you may wish to add additional filters to your code to filter based on specific criteria.",[1612,11324,2403],{"id":2402},[1617,11326],{},[1558,11328,11329],{},"In Google Apps Script, click save and run your automation. If the API POST call works, axiom.ai will return a link you can access to view the run. If not, follow the error messages and fix any issues.",[1718,11331,11332],{},[2182,11333,11334,11341],{},[1724,11335,11336,11337,11340],{},"Click the ",[1593,11338,11339],{},"'disc'"," icon to save your API call script.",[1724,11342,11343,11344,11347],{},"Click on the ",[1593,11345,11346],{},"'play'"," icon to start your script.",[2219,11349],{"src":11350,"alt":11351},"\u002Fdocs\u002Fguides\u002Fapi-call-returns-link.jpg","axiom.ai returns run status to Google Apps Script API call",[1612,11353,2423],{"id":2422},[1617,11355],{},[1558,11357,11358],{},"Using axiom.ai, it's simple to trigger automations and pass data into your bots. In this example, we learned how to use Google Apps Script, but the same principles can be applied to using any webhook or web API to start your bot runs.",[2438,11360,11361],{},"html pre.shiki code .sjeE4, html code.shiki .sjeE4{--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .sbjLL, html code.shiki .sbjLL{--shiki-default:#8250DF;--shiki-dark:#D2A8FF}html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .sU953, html code.shiki .sU953{--shiki-default:#6E7781;--shiki-dark:#8B949E}html pre.shiki code .sHrmB, html code.shiki .sHrmB{--shiki-default:#0550AE;--shiki-dark:#79C0FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1636,"searchDepth":1637,"depth":1637,"links":11363},[11364,11365,11370,11371],{"id":2172,"depth":1640,"text":2173},{"id":10894,"depth":1640,"text":10895,"children":11366},[11367,11368,11369],{"id":10903,"depth":1637,"text":10904},{"id":10946,"depth":1637,"text":10947},{"id":11293,"depth":1637,"text":11294},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"This guide shows how to trigger axiom.ai automations using Google Apps Script. Learn to send POST requests from Google Sheets and pass data into your bot.",{"pinned":1646,"type":2143,"format":1718,"intent_type":2145,"intent":2454,"tags":11374,"platfrom":11375,"video":11376},[2456,2457],[8896],"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FvTvXYe4niJE?rel=0&amp;","\u002Fguides\u002Fgoogle-apps-script",{"title":10850,"description":11372},"guides\u002Fgoogle-apps-script","uzxKnbORaXPdj7RKK875IB59u4f7EeRQoOP6FEzyRaE",{"id":11382,"title":11383,"body":11384,"date":2669,"description":11666,"extension":1643,"meta":11667,"navigation":1646,"order":1641,"path":11673,"seo":11674,"stem":11675,"__hash__":11676},"guides\u002Fguides\u002Fgoogle-sheets-tweeter.md","How to automate posting on X (formerly twitter) using Google Sheets",{"type":1555,"value":11385,"toc":11658},[11386,11388,11395,11397,11399,11410,11414,11427,11432,11434,11438,11568,11572,11575,11577,11581,11583,11585,11647,11651],[1617,11387],{},[1558,11389,11390,11391,11394],{},"This Twitter(x) posting template automates posts on the platform by emulating human interaction, entering your posts directly into the website on the compose page. The bot reads post details from a Google Sheet, opens Twitter (X) on the compose page for each row, and simulates typing the tweet, uploading an image, and clicking ",[1593,11392,11393],{},"\"post\"",". It then deletes the processed post from the sheet, preparing for the next entry.",[1662,11396],{},[1612,11398,1667],{"id":1666},[1558,11400,1670,11401,2711,11403,1678,11406,11409],{},[1593,11402,1673],{},[1593,11404,11405],{},"\"X post\"",[1593,11407,11408],{},"\"Post\"",". Add some post data.",[1612,11411,11413],{"id":11412},"install-the-twitterx-posting-bot","Install the Twitter(x) posting bot",[1558,11415,11416,11417,11420,11421,1696,11424,1700],{},"To install this ",[1593,11418,11419],{},"\"Twitter(x)\""," posting bot click ",[1593,11422,11423],{},"\"Install template'\"",[1593,11425,11426],{},"\"Install Chrome extension'\"",[1558,11428,1703,11429,1610],{},[1593,11430,11431],{},"\"Start'\"",[1558,11433,1709],{},[1612,11435,11437],{"id":11436},"configure-your-twitterx-posting-bot-in-minutes","Configure your Twitter(x) posting bot in minutes",[1718,11439,11440],{},[1721,11441,11442,11461],{},[1724,11443,11444,1729,11446,11448],{},[1593,11445,1986],{},[1731,11447,1733],{},[1721,11449,11450,11454],{},[1724,11451,11452,1741],{},[1731,11453,1740],{},[1724,11455,11456,7507,11458,1610],{},[1731,11457,1746],{},[1731,11459,11460],{},"'Post'",[1724,11462,11463,1729,11465,11467],{},[1593,11464,2535],{},[1731,11466,667],{},[1721,11468,11469,11480,11503,11526,11539],{},[1724,11470,11471,1729,11473,11476],{},[1593,11472,2544],{},[1731,11474,11475],{},"Go to page: Twitter (X) Compose URL",[1721,11477,11478],{},[1724,11479,2610],{},[1724,11481,11482,1729,11484,11487],{},[1593,11483,2562],{},[1731,11485,11486],{},"Enter text: Tweet",[1721,11488,11489,11494],{},[1724,11490,11491,11493],{},[1731,11492,1794],{},": ^ Preconfigured",[1724,11495,11496,1771,11498,1775,11500,11502],{},[1731,11497,2580],{},[1731,11499,1774],{},[1731,11501,1866],{},", and choose the column with the post content.",[1724,11504,11505,1729,11507,11510],{},[1593,11506,2570],{},[1731,11508,11509],{},"Upload a file: Image",[1721,11511,11512,11517],{},[1724,11513,11514,11493],{},[1731,11515,11516],{},"File Input Field",[1724,11518,11519,1771,11521,1775,11523,11525],{},[1731,11520,2815],{},[1731,11522,1774],{},[1731,11524,1866],{},", and choose the column with the image path.",[1724,11527,11528,1729,11530,11533],{},[1593,11529,2586],{},[1731,11531,11532],{},"Click element: Post",[1721,11534,11535],{},[1724,11536,11537,11493],{},[1731,11538,1794],{},[1724,11540,11541,1729,11543,11545],{},[1593,11542,2594],{},[1731,11544,1920],{},[1721,11546,11547,11551,11556,11562],{},[1724,11548,11549,1741],{},[1731,11550,1740],{},[1724,11552,11553,11555],{},[1731,11554,1746],{},": Choose the tab you created for posts.",[1724,11557,11558,1801,11560,1610],{},[1731,11559,1936],{},[1731,11561,1804],{},[1724,11563,11564,1801,11566,1610],{},[1731,11565,1943],{},[1731,11567,1804],{},[1612,11569,11571],{"id":11570},"run-your-twitterx-posting-automation","Run your Twitter(x) posting automation",[1558,11573,11574],{},"We suggest running a test first, disable Step 2.4 to prevent the bot sending a post.",[1612,11576,1956],{"id":1955},[1558,11578,1959,11579,1964],{},[1562,11580,1963],{"href":1962},[1612,11582,1398],{"id":1967},[1558,11584,1970],{},[1718,11586,11587],{},[1721,11588,11589,11603,11614,11625,11636],{},[1724,11590,11591,11594,1983,11596,11599,11600,1610],{},[1593,11592,11593],{},"Loads incorrect page?",[1981,11595],{},[1731,11597,11598],{},"Step 2.1 – Go to page: Twitter (X) Compose URL",", check the URL is set to ",[1731,11601,11602],{},"https:\u002F\u002Ftwitter.com\u002Fcompose\u002Ftweet",[1724,11604,11605,11608,1983,11610,11613],{},[1593,11606,11607],{},"No message input?",[1981,11609],{},[1731,11611,11612],{},"Step 2.2 – Enter text: Tweet",", reselect the input field in the post form.",[1724,11615,11616,11619,1983,11621,11624],{},[1593,11617,11618],{},"File does not upload?",[1981,11620],{},[1731,11622,11623],{},"Step 2.3 – Upload a file: Image",", check your computer folder permissions.",[1724,11626,11627,11630,1983,11632,11635],{},[1593,11628,11629],{},"Post button not clicked?",[1981,11631],{},[1731,11633,11634],{},"Step 2.4 – Click element: Post",", reselect the post button.",[1724,11637,11638,11641,1983,11643,11646],{},[1593,11639,11640],{},"Row not removed?",[1981,11642],{},[1731,11644,11645],{},"Step 2.5 – Delete rows from a Google Sheet",", make sure the correct sheet and row range are selected.",[1558,11648,2118,11649],{},[1562,11650,2121],{"href":82},[1558,11652,11653,11654],{},"Read this if you would like to learn more about ",[1562,11655,11657],{"href":11656},"\u002Fblog\u002Fhow-to-automate-social-media-posts","posting to Social media with a bot.",{"title":1636,"searchDepth":1637,"depth":1637,"links":11659},[11660,11661,11662,11663,11664,11665],{"id":1666,"depth":1640,"text":1667},{"id":11412,"depth":1640,"text":11413},{"id":11436,"depth":1640,"text":11437},{"id":11570,"depth":1640,"text":11571},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"This guide shows how to automate posting on X (Twitter) using Google Sheets and axiom.ai. Learn to schedule tweets, upload images, and remove sent posts from your sheet.",{"read":2938,"level":2140,"video":11668,"templateId":4168,"type":2143,"format":2144,"intent_type":2675,"intent":2676,"tags":11669,"platfrom":11670},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FY_378SXta-c",[2678,2942,2682],[11671,11672],"X","Twitter","\u002Fguides\u002Fgoogle-sheets-tweeter",{"title":11383,"description":11666},"guides\u002Fgoogle-sheets-tweeter","WT7t7Xxt9SeiAFLHV1Km31x4PsGfGZ_Lw1hPXp-t4SY",{"id":11678,"title":11679,"body":11680,"date":1641,"description":11784,"extension":1643,"meta":11785,"navigation":1646,"order":1641,"path":11789,"seo":11790,"stem":11791,"__hash__":11792},"guides\u002Fguides\u002Fhandling-dialogs.md","How to automate dialogs",{"type":1555,"value":11681,"toc":11780},[11682,11684,11687,11691,11693,11700,11746,11750,11752,11755,11762,11767,11777],[1617,11683],{},[1558,11685,11686],{},"Dialogs tend to appear on websites when they wish to grab your attention, these often appear randomly or based on criteria that has been set by the page for marketing reasons.",[1612,11688,11690],{"id":11689},"standard-alerts","Standard alerts",[1617,11692],{},[1558,11694,11695,11696,11699],{},"By default, axiom.ai will automatically dismiss most dialogs that are created using the standard ",[1731,11697,11698],{},"alert()"," method. This was designed to prevent your automation from getting unexpectedly stuck when a dialog appears. This feature makes use of the following puppeteer script:",[2346,11701,11703],{"className":2383,"code":11702,"language":2385,"meta":1636,"style":1636},"page.on('dialog', async dialog => {\n    await dialog.dismiss();\n})\n",[1731,11704,11705,11729,11742],{"__ignoreMap":1636},[2354,11706,11707,11710,11712,11714,11717,11719,11722,11725,11727],{"class":2356,"line":2357},[2354,11708,11709],{"class":2395},"page.",[2354,11711,3480],{"class":3993},[2354,11713,4159],{"class":2395},[2354,11715,11716],{"class":2364},"'dialog'",[2354,11718,1564],{"class":2395},[2354,11720,11721],{"class":3608},"async",[2354,11723,11724],{"class":2360}," dialog",[2354,11726,4821],{"class":3608},[2354,11728,4008],{"class":2395},[2354,11730,11731,11734,11737,11740],{"class":2356,"line":1640},[2354,11732,11733],{"class":3608},"    await",[2354,11735,11736],{"class":2395}," dialog.",[2354,11738,11739],{"class":3993},"dismiss",[2354,11741,4205],{"class":2395},[2354,11743,11744],{"class":2356,"line":1637},[2354,11745,6650],{"class":2395},[1612,11747,11749],{"id":11748},"non-standard-dialogs","Non-standard dialogs",[1617,11751],{},[1558,11753,11754],{},"Non-standard dialogs are not handled automatically - as the code that is used to build and manage these dialogs depends on the developers of the website, this means that the method of dismissing these can be a bit more involved.",[1558,11756,11757,11758,1610],{},"To get started, you'll first need to identify the CSS selector of the 'accept' or 'dismiss' button on the dialog. This can be tricky as you'll need to ensure that you can get the dialog to appear. To learn more about finding the best selector, see our blog on the ",[1562,11759,11761],{"href":11760},"\u002Fblog\u002Fbest-custom-css-selectors-for-web-scraping","Best Custom CSS Selectors for Web Scraping",[10470,11763,11764],{},[1558,11765,11766],{},"💡 If you're struggling to get the dialog to appear, try opening the page in incognito mode. This ensures that any dialogs that may have it's 'dismiss' state stored in memory.",[1558,11768,11769,11770,11772,11773,11776],{},"Once you have this selector, this can be added into a ",[1562,11771,5243],{"href":924}," step. This should be configured with the 'Optional click' option enabled, and the selector used within the step. You can learn more about using custom selectors in steps in the ",[1562,11774,11775],{"href":1383},"Custom CSS selectors"," documentation. This step should be added in the location where you most likely expect the dialog to display.",[2438,11778,11779],{},"html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sbjLL, html code.shiki .sbjLL{--shiki-default:#8250DF;--shiki-dark:#D2A8FF}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .sjeE4, html code.shiki .sjeE4{--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .sTDnQ, html code.shiki .sTDnQ{--shiki-default:#953800;--shiki-dark:#FFA657}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1636,"searchDepth":1637,"depth":1637,"links":11781},[11782,11783],{"id":11689,"depth":1640,"text":11690},{"id":11748,"depth":1640,"text":11749},"This guide explains how to handle standard and custom dialogs in axiom.ai automations. Learn to dismiss alerts and use optional click steps with custom CSS selectors.",{"pinned":1646,"type":2143,"format":1718,"intent_type":2145,"intent":2676,"tags":11786,"platfrom":11788},[8875,11787],"dialog",[3380],"\u002Fguides\u002Fhandling-dialogs",{"title":11679,"description":11784},"guides\u002Fhandling-dialogs","EVyhLP8WY1ToJsS23dKu8ILnzLlNcLVZnsCdqsSLuio",{"id":11794,"title":11795,"body":11796,"date":12063,"description":12064,"extension":1643,"meta":12065,"navigation":1646,"order":1641,"path":12070,"seo":12071,"stem":12072,"__hash__":12073},"guides\u002Fguides\u002Fhow-to-automate-apollo-crm.md","How to automate Apollo.io CRM",{"type":1555,"value":11797,"toc":12055},[11798,11800,11814,11816,11820,11823,11827,11834,11838,11840,11844,11902,11906,11913,11917,11921,11923,11927,12051],[1617,11799],{},[1558,11801,11802,11803,11806,11807,11810,11811,11813],{},"This Apollo.io bot automates the process of adding prospects from a search to your saved lists. The bot works by opening Apollo.io on the search page. It then selects all the people on the page (25), clicks ",[1593,11804,11805],{},"\"Save\"",", and then clicks ",[1593,11808,11809],{},"\"Add to Lists.\""," Finally, the bot enters the name of the list and clicks  ",[1593,11812,11805],{}," again. You can configure the bot to loop through as many pages as you want, adding more and more prospects to your lists.",[1662,11815],{},[1612,11817,11819],{"id":11818},"get-started-set-up-you-apolloio-search-page","Get started: Set up you Apollo.io search page",[1558,11821,11822],{},"Before you run your bot, log into Apollo.io and set up the search from which you wish to add contacts. Once you have added your search filters, copy the page URL. This URL stores the search filters, making them ready to use in your Axiom.",[1612,11824,11826],{"id":11825},"install-the-apolloio-bot","Install the Apollo.io bot",[1558,11828,11829,11830,1696,11832,1700],{},"To install this Apollo.io bot click ",[1593,11831,1695],{},[1593,11833,1699],{},[1558,11835,1703,11836,1610],{},[1593,11837,1706],{},[1558,11839,1709],{},[1612,11841,11843],{"id":11842},"configure-your-apolloio-bot-in-three-easy-steps","Configure your Apollo.io bot in three easy steps",[1718,11845,11846,11900],{},[1721,11847,11848,11862,11868,11881,11886],{},[1724,11849,11850,1729,11852,11855],{},[1593,11851,1986],{},[1731,11853,11854],{},"Go to page: Search",[1721,11856,11857],{},[1724,11858,11859,11861],{},[1731,11860,1770],{},": Insert Apollo.io search URL.",[1724,11863,11864,11867],{},[1593,11865,11866],{},"2.0 – 4.0"," ^",[1724,11869,11870,1729,11872,11874],{},[1593,11871,6941],{},[1731,11873,329],{},[1721,11875,11876],{},[1724,11877,11878,11880],{},[1731,11879,2580],{},": Add the list name.",[1724,11882,11883,11867],{},[1593,11884,11885],{},"6.0 – 7.0",[1724,11887,11888,1729,11890,11893],{},[1593,11889,7049],{},[1731,11891,11892],{},"Jump to another step: Repeat",[1721,11894,11895],{},[1724,11896,11897,11899],{},[1731,11898,7228],{},": Set the number of loops you wish to make.",[1558,11901,2610],{},[1612,11903,11905],{"id":11904},"run-your-apolloio-bot","Run your Apollo.io bot",[1558,11907,11908,11909,11912],{},"To test this bot, we recommend limiting the loops to a maximum of 3. This can be done in Step 9.0, ",[1593,11910,11911],{},"\"Maximum Cycles.\""," Please note that Apollo.io does throttle the number of prospects you can add in one session. We recommend shorter runs spread out over time, then gradually increase until the threshold is reached.",[1612,11914,11916],{"id":11915},"customize-your-apolloio-template","Customize your Apollo.io template",[1558,11918,1959,11919,1964],{},[1562,11920,1963],{"href":1962},[1612,11922,1398],{"id":1967},[1558,11924,2635,11925,1610],{},[1562,11926,2620],{"href":638},[1718,11928,11929],{},[1721,11930,11931,11941,11959,11974,11987,12001,12016,12027,12038],{},[1724,11932,11933,11936,11938,11939,2855],{},[1593,11934,11935],{},"Not loading a filtered search?",[1981,11937],{},"\nMake sure filters are set in Apollo, then copy the full search URL into the ",[1731,11940,1043],{},[1724,11942,11943,11946,1983,11948,11951,11952,11955,11956],{},[1593,11944,11945],{},"Not selecting people?",[1981,11947],{},[1731,11949,11950],{},"Step 2.0 – Click element",", try reselecting the button using the custom selector ",[1731,11953,11954],{},".finder-select-multiple-entities-button",". ",[1562,11957,11958],{"href":1383},"See how",[1724,11960,11961,11964,1983,11966,11969,11970,11973],{},[1593,11962,11963],{},"Not clicking \"Select this page\"?",[1981,11965],{},[1731,11967,11968],{},"Step 3.0 – Click element",", use the ",[1562,11971,11972],{"href":1391},"'Element text'"," option to target the exact \"Select this page\" button.",[1724,11975,11976,11979,1983,11981,11984,11985,1610],{},[1593,11977,11978],{},"Save button not working?",[1981,11980],{},[1731,11982,11983],{},"Step 4.0 – Click element",", reselect the \"Save\" button when people are selected, or try using ",[1562,11986,11972],{"href":1391},[1724,11988,11989,11992,1983,11994,11997,11998,1610],{},[1593,11990,11991],{},"Select list not opening?",[1981,11993],{},[1731,11995,11996],{},"Step 5.0 – Select list",", try reselecting the dropdown using this custom selector: ",[1731,11999,12000],{},"div[role=\"dialog\"] .zp-select-indicators",[1724,12002,12003,12006,1983,12008,12011,12012,12015],{},[1593,12004,12005],{},"Not saving to list?",[1981,12007],{},[1731,12009,12010],{},"Step 6.0 – Press key(s)",", re-record the ",[1731,12013,12014],{},"Enter"," keystroke.",[1724,12017,12018,12021,1983,12023,12026],{},[1593,12019,12020],{},"Bot skips before saving is complete?",[1981,12022],{},[1731,12024,12025],{},"Step 7.0 – Wait",", increase the wait time to allow saving to finish.",[1724,12028,12029,12032,1983,12034,12037],{},[1593,12030,12031],{},"Next button not working?",[1981,12033],{},[1731,12035,12036],{},"Step 8.0 – Click element",", reselect the \"Next\" button at the bottom of the table.",[1724,12039,12040,12043,1983,12045,12048,12049,1610],{},[1593,12041,12042],{},"Jumping to wrong step?",[1981,12044],{},[1731,12046,12047],{},"Step 9.0 – Jump to another step",", check that it jumps to ",[1731,12050,2535],{},[1558,12052,2118,12053],{},[1562,12054,2121],{"href":82},{"title":1636,"searchDepth":1637,"depth":1637,"links":12056},[12057,12058,12059,12060,12061,12062],{"id":11818,"depth":1640,"text":11819},{"id":11825,"depth":1640,"text":11826},{"id":11842,"depth":1640,"text":11843},{"id":11904,"depth":1640,"text":11905},{"id":11915,"depth":1640,"text":11916},{"id":1967,"depth":1640,"text":1398},"2023-01-19","This guide explains how to automate adding prospects to Apollo.io lists using axiom.ai. Learn to configure search filters, loop through pages, and save contacts to a list.",{"read":3151,"level":2140,"video":12066,"templateId":6344,"type":2143,"format":2144,"intent_type":2675,"intent":2454,"tags":12067,"platfrom":12068},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fu5t_Eq9IKBI",[2681],[12069],"Apollo","\u002Fguides\u002Fhow-to-automate-apollo-crm",{"title":11795,"description":12064},"guides\u002Fhow-to-automate-apollo-crm","rJD2Z0amhNdWU17YHKZjG_tbbJTX5a5GerytGQkYH08",{"id":12075,"title":12076,"body":12077,"date":12229,"description":12230,"extension":1643,"meta":12231,"navigation":1646,"order":1641,"path":12238,"seo":12239,"stem":12240,"__hash__":12241},"guides\u002Fguides\u002Fhow-to-automate-file-downloads.md","How to automate file downloads",{"type":1555,"value":12078,"toc":12222},[12079,12081,12084,12086,12090,12093,12095,12097,12101,12149,12153,12156,12158,12170,12172,12174,12213],[1617,12080],{},[1558,12082,12083],{},"This bot template automates file downloads from different types of webpages such as listings, paginated, scrolling, and feed pages. It mimics human clicking in Chrome to save files to a local drive.",[1662,12085],{},[1612,12087,12089],{"id":12088},"install-the-file-download-bot","Install the File download bot",[1558,12091,12092],{},"To install this File download bot click 'Install template'.  If you’re a new user, you’ll have to click 'Install Chrome extension' and create a free axiom.ai account before you can edit the template.",[1558,12094,2503],{},[1558,12096,1709],{},[1612,12098,12100],{"id":12099},"configure-your-file-download-bot-in-a-minute","Configure your File download bot in a minute",[1718,12102,12103],{},[1721,12104,12105,12122],{},[1724,12106,12107,1729,12109,12111],{},[1593,12108,1986],{},[1731,12110,1043],{},[1721,12112,12113],{},[1724,12114,12115,1771,12117,1775,12119,12121],{},[1731,12116,1770],{},[1731,12118,1774],{},[1731,12120,1778],{},", and choose the column containing the links.",[1724,12123,12124,1729,12126,12129],{},[1593,12125,2535],{},[1731,12127,12128],{},"Download files",[1721,12130,12131,12136,12140,12144],{},[1724,12132,12133,12135],{},[1731,12134,1794],{},": Point and click to select the files you wish to download.",[1724,12137,12138,3262],{},[1731,12139,3261],{},[1724,12141,12142,3268],{},[1731,12143,3267],{},[1724,12145,12146,3268],{},[1731,12147,12148],{},"Force download",[1612,12150,12152],{"id":12151},"run-your-file-download-bot","Run your File download bot",[1558,12154,12155],{},"We suggest running a test first, stopping the bot after a few downloads and checking the files.",[1612,12157,1956],{"id":1955},[1558,12159,1959,12160,12162,12163,12166,12167,1610],{},[1562,12161,1963],{"href":1962},", you can use our no-code bot builder to customize any bot according to your requirements. We have other download file steps you can use that work in the cloud and on desktop. Take a look at the ",[1562,12164,12165],{"href":996},"download to Google Drive"," step. We also have steps to ",[1562,12168,12169],{"href":1154},"automate screenshots",[1612,12171,1398],{"id":1967},[1558,12173,1970],{},[1718,12175,12176],{},[1721,12177,12178,12187,12195],{},[1724,12179,12180,12182,12184,12185,1610],{},[1593,12181,2000],{},[1981,12183],{},"\nTry re-selecting or using ",[1562,12186,9082],{"href":1383},[1724,12188,12189,12192,12194],{},[1593,12190,12191],{},"Files do not download?",[1981,12193],{},"\nCheck the folder permission on your computer.",[1724,12196,12197,12200,12202,12203,12207,12208,1610],{},[1593,12198,12199],{},"Does the file open in a window?",[1981,12201],{},"\nThis is default browser behavior. You can’t override it, but there is a workaround — ",[1562,12204,12206],{"href":12205},"\u002Fdocs\u002Fadjusting-how-axiom-runs#using-a-custom-chromium-profile","create a Chrome Profile"," and change the default download setting for the ",[1562,12209,12212],{"href":12210,"rel":12211},"https:\u002F\u002Fsupport.google.com\u002Fchrome\u002Fanswer\u002F95759?hl=en-GB&co=GENIE.Platform%3DDesktop",[1633],"profile",[1558,12214,2118,12215,12217,12218],{},[1562,12216,2121],{"href":82},"\nLearn how to create a bot from scratch to download files from a website by ",[1562,12219,12221],{"href":12220},"\u002Fblog\u002Fhow-to-automate-downloadin-a-file-from-a-website","clicking here.",{"title":1636,"searchDepth":1637,"depth":1637,"links":12223},[12224,12225,12226,12227,12228],{"id":12088,"depth":1640,"text":12089},{"id":12099,"depth":1640,"text":12100},{"id":12151,"depth":1640,"text":12152},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"2023-01-29","This guide explains how to automate file downloads from websites using axiom.ai. Learn to select files, save them locally, and customize the bot for different page types.",{"pinned":1646,"read":2938,"level":2140,"video":12232,"templateId":6354,"type":2143,"format":2144,"intent_type":3377,"intent":12233,"tags":12234,"platfrom":12237},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FkuMuOQzietM","Upload and download files",[12235,12236],"files","download",[3380],"\u002Fguides\u002Fhow-to-automate-file-downloads",{"title":12076,"description":12230},"guides\u002Fhow-to-automate-file-downloads","vGM8xcIDtAReyTNraHgFD9L4B_nR-LkcUk5QWKKpJQ0",{"id":12243,"title":12244,"body":12245,"date":1641,"description":12368,"extension":1643,"meta":12369,"navigation":1646,"order":1641,"path":12372,"seo":12373,"stem":12374,"__hash__":12375},"guides\u002Fguides\u002Fhow-to-clear-text-from-a-field.md","How to clear text from an Input Field",{"type":1555,"value":12246,"toc":12363},[12247,12249,12256,12266,12270,12276,12280,12286,12334,12342,12349,12351],[1617,12248],{},[1558,12250,12251,12252,12255],{},"When automating form filling, you may encounter input fields that are already populated with default values. The ",[1562,12253,12254],{"href":1012},"\"Enter text\""," step should clear those values automatically. However, if it does not, it can lead to messy results when the bot runs, especially if the existing value isn't cleared using the \"Enter text\" step.",[1558,12257,12258,12259,1575,12262,12265],{},"But don't worry—this guide will show you a simple and effective way to clear those default values. All you need to do is use a combination of the ",[1593,12260,12261],{},"\"Click element\"",[1593,12263,12264],{},"\"Press key(s)\""," steps.",[1612,12267,12269],{"id":12268},"insert-the-following-steps-into-your-automation","Insert the following steps into your automation",[1558,12271,12272,12273,12275],{},"Assuming you have a bot set up in axiom.ai. insert the following steps before the ",[1593,12274,12254],{}," step you wish to enter a value with. Using the step finder add the following steps.",[1612,12277,12279],{"id":12278},"clear-an-input-before-entering-new-text","Clear an input before entering new text",[1558,12281,12282,12283,12285],{},"To clear an input field before using an ",[1593,12284,12254],{}," step, insert the following two steps directly beforehand:",[1718,12287,12288],{},[1721,12289,12290,12307],{},[1724,12291,12292,12295],{},[1593,12293,12294],{},"Step 1.0 - Click element: Focus input",[1721,12296,12297],{},[1724,12298,12299,1771,12301,12303,12304,1610],{},[1731,12300,1794],{},[1593,12302,8844],{},", highlight the input field you wish to clear, then press ",[1593,12305,12306],{},"\"Complete\"",[1724,12308,12309,12312],{},[1593,12310,12311],{},"Step 2.0 - Press key(s): Clear value",[1721,12313,12314],{},[1724,12315,12316,6952,12318,12321,12322,12325,12326,12329,12330,12333],{},[1731,12317,6951],{},[1593,12319,12320],{},"\"Record\"",", tap the right arrow key repeatedly (",[1731,12323,12324],{},"→→→→→→→→→→",") to move the cursor to the end, then press delete (",[1731,12327,12328],{},"⌦⌦⌦⌦⌦⌦⌦⌦⌦","). Click ",[1593,12331,12332],{},"\"Stop recording\""," when done.",[1558,12335,12336,12337,12341],{},"💡 When you run the bot, you will see the cursor move to the right past the value and then back, deleting it. There are other ",[1562,12338,12340],{"href":12339},"\u002Fguides\u002Fkeyboard-short-cuts","useful shortcuts"," to discover.",[1558,12343,12344,12345,12348],{},"That's it! Assuming your ",[1593,12346,12347],{},"\"Enter Text\""," step is next, the input field will now be cleared, and the new data will be entered without any issues.",[1612,12350,2423],{"id":2422},[1558,12352,12353,12354,12356,12357,12362],{},"This is a simple way to clear prepopulated text in form automation. You can empty an input field by employing the \"",[1593,12355,5243],{},"\" and \"",[1593,12358,12359],{},[1562,12360,12361],{"href":1087},"Press keys(s)","\" steps. This method enhances the reliability of your form automation tasks, helping you achieve accurate results with minimal effort.",{"title":1636,"searchDepth":1637,"depth":1637,"links":12364},[12365,12366,12367],{"id":12268,"depth":1640,"text":12269},{"id":12278,"depth":1640,"text":12279},{"id":2422,"depth":1640,"text":2423},"Learn how to clear text from an Input Field using the Press key(s) step.",{"pinned":1646,"type":2143,"format":1718,"intent_type":2145,"intent":8893,"tags":12370,"platfrom":12371},[2681],[3380],"\u002Fguides\u002Fhow-to-clear-text-from-a-field",{"title":12244,"description":12368},"guides\u002Fhow-to-clear-text-from-a-field","pUAqiXl4H3c1QPPm4otHZrEhDcNhP8CIUtNW8Rj0lNQ",{"id":12377,"title":12378,"body":12379,"date":1641,"description":12740,"extension":1643,"meta":12741,"navigation":1646,"order":1641,"path":12744,"seo":12745,"stem":12746,"__hash__":12747},"guides\u002Fguides\u002Fhow-to-combine-variables.md","How to combine Tokens (variables) into one",{"type":1555,"value":12380,"toc":12722},[12381,12383,12386,12389,12393,12396,12400,12406,12410,12414,12456,12460,12466,12470,12474,12486,12492,12496,12568,12572,12575,12578,12585,12589,12593,12600,12603,12607,12650,12654,12678,12681,12692,12696,12699,12717,12720],[1617,12382],{},[1558,12384,12385],{},"When creating bots in axiom.ai, you will often pass data between steps, perhaps to filter it or enter it into an input field. You may wish to combine variables (tokens) from different steps (data sources) into a single variable.",[1558,12387,12388],{},"As ever, there is more than one way! That's why axiom.ai is so powerful.",[1612,12390,12392],{"id":12391},"what-are-tokens-in-axiomai","What are tokens in axiom.ai?",[1558,12394,12395],{},"Tokens (variables) are pieces of data created at each step as your automation runs. Certain steps can output values such as text, numbers, or lists, which you can reuse in later steps. Tokens let you pass data between steps to output, manipulate, or transform.",[1612,12397,12399],{"id":12398},"method-one-the-append-or-merge-data-step","Method one: the Append or merge data step",[1558,12401,6669,12402,12405],{},[1731,12403,12404],{},"Append or merge data"," step allows you to select two data sources and combine them into a single output. This is by far the simplest, no-brainer method for joining data in Axiom.",[2219,12407],{"src":12408,"alt":12409},"\u002Fguides\u002Fcombine-vars-append-data.webp","Axiom.ai Append or merge data step axiom.ai",[2266,12411,12413],{"id":12412},"how-to-use-the-append-or-merge-data-step","How to use the Append or merge data step",[1718,12415,12416],{},[1721,12417,12418],{},[1724,12419,12420,1729,12422,12424],{},[1593,12421,1986],{},[1731,12423,12404],{},[1721,12425,12426,12431,12436],{},[1724,12427,12428,12430],{},[1593,12429,1862],{}," — Select the first data set (e.g., a scraped ticket URL).",[1724,12432,12433,12435],{},[1593,12434,1872],{}," — Select the second data set to combine (e.g., ChatGPT output or a timestamp).",[1724,12437,12438,12441,12442],{},[1593,12439,12440],{},"Append mode"," — Choose how to combine the data:\n",[1721,12443,12444,12450],{},[1724,12445,12446,12449],{},[1731,12447,12448],{},"\"Horizontally\""," joins values side-by-side",[1724,12451,12452,12455],{},[1731,12453,12454],{},"\"Vertically\""," stacks values top-to-bottom",[2266,12457,12459],{"id":12458},"tip","Tip",[1558,12461,12462,12463,12465],{},"💡 You can chain multiple ",[1731,12464,12404],{}," steps if you need to combine more than two values.",[1612,12467,12469],{"id":12468},"method-two-the-loop-step","Method two: The loop step",[2219,12471],{"src":12472,"alt":12473},"\u002Fguides\u002Fjoin-vars-with-loop-step.webp","Join data variables using loop step axiom.ai",[1558,12475,6669,12476,12478,12479,12481,12482,12485],{},[1731,12477,667],{}," step is most commonly used to repeat actions—like scraping a list of URLs.",[1981,12480],{},"\nBut it has a powerful hidden feature: ",[1593,12483,12484],{},"it can be used to combine data from multiple steps"," even when you’re not looping.",[1558,12487,12488,12489,12491],{},"Any steps that output data, when placed inside a ",[1731,12490,667],{}," block, will have their data combined into a single output token.",[2266,12493,12495],{"id":12494},"how-to-use-this-trick","How to use this trick",[1718,12497,12498],{},[1721,12499,12500,12519,12535,12550],{},[1724,12501,12502,1729,12504,12506],{},[1593,12503,1986],{},[1731,12505,667],{},[1721,12507,12508,12513],{},[1724,12509,12510,12512],{},[1593,12511,667],{}," — Leave this empty or toggle it off.",[1724,12514,12515,12518],{},[1593,12516,12517],{},"Purpose"," — You are not looping; you're using the loop as a container to combine outputs.",[1724,12520,12521,1729,12524,12527],{},[1593,12522,12523],{},"Step 1.1",[1731,12525,12526],{},"Step that outputs data",[1721,12528,12529],{},[1724,12530,12531,12532,7580],{},"Add any step that returns data (e.g. ",[1731,12533,12534],{},"Get data from current page",[1724,12536,12537,1729,12540,12543],{},[1593,12538,12539],{},"Step 1.2",[1731,12541,12542],{},"Another step that outputs data",[1721,12544,12545],{},[1724,12546,12547,12548,7580],{},"Add another step that returns data (e.g. ",[1731,12549,9138],{},[1724,12551,12552,12555],{},[1593,12553,12554],{},"Outside the loop",[1721,12556,12557,12562],{},[1724,12558,12559,12560,2855],{},"Use the token from the ",[1731,12561,667],{},[1724,12563,12564,12565,1610],{},"This token contains combined data from all steps inside the loop, appended ",[1593,12566,12567],{},"horizontally",[2266,12569,12571],{"id":12570},"when-to-use-this","When to use this",[1558,12573,12574],{},"This trick is useful when merging data from multiple steps to write into a Google Sheet.",[2266,12576,12459],{"id":12577},"tip-1",[1558,12579,12580,12581,12584],{},"⚠️ The combined data is only available ",[1593,12582,12583],{},"outside"," the loop.",[1612,12586,12588],{"id":12587},"method-three-the-javascript-step","Method three: The JavaScript step",[2219,12590],{"src":12591,"alt":12592},"\u002Fguides\u002Fjoin-vars-javascript.webp","Join data variables using a JavaScript step",[1558,12594,12595,12596,12599],{},"If you're comfortable with code, the ",[1731,12597,12598],{},"JavaScript"," step is a powerful way to manipulate and combine data however you like.",[1558,12601,12602],{},"You can use it to join variables, restructure arrays, clean data, or return a custom output—all inside one step.",[2266,12604,12606],{"id":12605},"how-to-use-it","How to use it",[1718,12608,12609],{},[1721,12610,12611],{},[1724,12612,12613,1729,12615,12617],{},[1593,12614,1986],{},[1731,12616,12598],{},[1721,12618,12619,12626,12635,12641],{},[1724,12620,12621,12623,12624,2855],{},[1593,12622,2237],{}," — Open the step finder and insert the ",[1731,12625,12598],{},[1724,12627,12628,12631,12632,12634],{},[1593,12629,12630],{},"Declare tokens"," — Use the ",[1731,12633,1774],{}," menu to select tokens and assign them to variables.",[1724,12636,12637,12640],{},[1593,12638,12639],{},"Write your logic"," — Combine, transform, or filter the data however you like.",[1724,12642,12643,12646,12647,12649],{},[1593,12644,12645],{},"Return output"," — Use ",[1731,12648,4587],{}," to output a single value or an array of values.",[2266,12651,12653],{"id":12652},"example","Example",[2346,12655,12657],{"className":2383,"code":12656,"language":2385,"meta":1636,"style":1636},"var links = [custom-data].flat();\nvar dates = [custom-data_1].flat();\n\nreturn [[...links, ...dates]];\n",[1731,12658,12659,12664,12669,12673],{"__ignoreMap":1636},[2354,12660,12661],{"class":2356,"line":2357},[2354,12662,12663],{},"var links = [custom-data].flat();\n",[2354,12665,12666],{"class":2356,"line":1640},[2354,12667,12668],{},"var dates = [custom-data_1].flat();\n",[2354,12670,12671],{"class":2356,"line":1637},[2354,12672,3520],{"emptyLinePlaceholder":1646},[2354,12674,12675],{"class":2356,"line":1647},[2354,12676,12677],{},"return [[...links, ...dates]];\n",[2266,12679,12459],{"id":12680},"tip-2",[1721,12682,12683,12686,12689],{},[1724,12684,12685],{},"You can return a single value or an array.",[1724,12687,12688],{},"The result can be used as input for steps like \"Write to a Google Sheet\".",[1724,12690,12691],{},"You don’t need to be an expert—no-coders can still use this step with a bit of help from an LLM like ChatGPT.",[1612,12693,12695],{"id":12694},"wrapping-up-axiomai-is-a-flexible-tool","Wrapping up: axiom.ai is a flexible tool",[1558,12697,12698],{},"We designed axiom.ai to be flexible, which means there is often more than one way to solve a problem.",[1721,12700,12701,12707,12712],{},[1724,12702,12703,12704,12706],{},"If you only need to combine two tokens, use the ",[1731,12705,12404],{}," step",[1724,12708,12709,12710,12706],{},"If you want to output multiple values into a single row, use the ",[1731,12711,667],{},[1724,12713,12714,12715,12706],{},"If you need full control over how data is combined or transformed, use the ",[1731,12716,12598],{},[1558,12718,12719],{},"We have also received feedback from users about creating a dedicated step for handling multiple variables. This is something we are actively exploring for a future release.",[2438,12721,6498],{},{"title":1636,"searchDepth":1637,"depth":1637,"links":12723},[12724,12725,12729,12734,12739],{"id":12391,"depth":1640,"text":12392},{"id":12398,"depth":1640,"text":12399,"children":12726},[12727,12728],{"id":12412,"depth":1637,"text":12413},{"id":12458,"depth":1637,"text":12459},{"id":12468,"depth":1640,"text":12469,"children":12730},[12731,12732,12733],{"id":12494,"depth":1637,"text":12495},{"id":12570,"depth":1637,"text":12571},{"id":12577,"depth":1637,"text":12459},{"id":12587,"depth":1640,"text":12588,"children":12735},[12736,12737,12738],{"id":12605,"depth":1637,"text":12606},{"id":12652,"depth":1637,"text":12653},{"id":12680,"depth":1637,"text":12459},{"id":12694,"depth":1640,"text":12695},"Learn how to combine tokens variables from multiple steps into a single output in axiom.ai using append, loop, or JavaScript steps.",{"pinned":1646,"type":2143,"format":1718,"intent_type":2145,"intent":2454,"tags":12742,"platfrom":12743},[3461],[3380],"\u002Fguides\u002Fhow-to-combine-variables",{"title":12378,"description":12740},"guides\u002Fhow-to-combine-variables","rdYvcaI2u72hIerXMiaSCTu-MC9AbT3jD8h4WecCUn0",{"id":12749,"title":12750,"body":12751,"date":1641,"description":13093,"extension":1643,"meta":13094,"navigation":1646,"order":1641,"path":13100,"seo":13101,"stem":13102,"__hash__":13103},"guides\u002Fguides\u002Fhow-to-dm-on-instagram.md","How to automate Instagram DM's",{"type":1555,"value":12752,"toc":13088},[12753,12755,12763],[1617,12754],{},[1558,12756,12757,12758,12762],{},"This guide takes you through the step-by-step process of setting up a bot to send Instagram DMs. However, if you are keen to get started quickly, we have a ",[1562,12759,12761],{"href":12760},"\u002Fguides\u002Finstagram-dm-like","one-click setup"," template you can use instead of this guide.",[12764,12765,12766,12770,12773,12808,12810,12824,13066,13079,13081],"zero-set-up",{},[1612,12767,12769],{"id":12768},"create-a-blank-google-sheet","Create a blank Google Sheet",[1558,12771,12772],{},"Create a Google Sheet, in Col A add links to profiles and in Col B insert your DM.",[8679,12774,12775,12784],{},[8682,12776,12777],{},[8685,12778,12779,12781],{},[8688,12780,5152],{},[8688,12782,12783],{},"B",[8695,12785,12786,12797],{},[8685,12787,12788,12794],{},[8700,12789,12790],{},[1562,12791,12792],{"href":12792,"rel":12793},"https:\u002F\u002Fwww.instagram.com\u002Falfiesmith81\u002F",[1633],[8700,12795,12796],{},"My custom message 1",[8685,12798,12799,12805],{},[8700,12800,12801],{},[1562,12802,12803],{"href":12803,"rel":12804},"https:\u002F\u002Fwww.instagram.com\u002Faxiom.ai\u002F",[1633],[8700,12806,12807],{},"My custom message 2",[1612,12809,8720],{"id":8719},[1558,12811,12812,12813,12817,12818,8729,12820,12823],{},"In the ",[1562,12814,5041],{"href":12815,"rel":12816},"http:\u002F\u002Faxiom.ai",[1633]," Chrome extension, click ",[1593,12819,8728],{},[1593,12821,12822],{},"Start from Blank\"."," Use the step finder to add the steps outlined below.",[1718,12825,12826],{},[1721,12827,12828,12858],{},[1724,12829,12830,1729,12832,12834],{},[1593,12831,1986],{},[1731,12833,1733],{},[1721,12835,12836,12840,12844,12851],{},[1724,12837,12838,1741],{},[1731,12839,1740],{},[1724,12841,12842,9551],{},[1731,12843,1746],{},[1724,12845,12846,12848,12849,1610],{},[1731,12847,8769],{},": Start from a specified column and row, e.g., ",[1731,12850,8773],{},[1724,12852,12853,12855,12856,1610],{},[1731,12854,6866],{},": End at a specified column and row, e.g., ",[1731,12857,8781],{},[1724,12859,12860,1729,12862,12864,12874],{},[1593,12861,2535],{},[1731,12863,667],{},[1721,12865,12866],{},[1724,12867,12868,1771,12870,1775,12872,1610],{},[1731,12869,667],{},[1731,12871,1833],{},[1731,12873,1778],{},[1721,12875,12876,12892,12909,13035],{},[1724,12877,12878,1729,12880,12883],{},[1593,12879,2544],{},[1731,12881,12882],{},"Go to page: Instagram profile",[1721,12884,12885],{},[1724,12886,12887,1771,12889,12891],{},[1731,12888,1770],{},[1731,12890,1833],{},", select the column with Instagram profile links.",[1724,12893,12894,1729,12896,12898],{},[1593,12895,2562],{},[1731,12897,1787],{},[1721,12899,12900],{},[1724,12901,12902,12904,12905,12908],{},[1731,12903,1794],{},": Use the ",[1562,12906,12907],{"href":1377},"Selector Tool"," to select the header containing the Message button.",[1724,12910,12911,1729,12913,12916,12939],{},[1593,12912,2570],{},[1731,12914,12915],{},"If condition: Check for Message button",[1721,12917,12918,12924,12933],{},[1724,12919,12920,1900,12922,1610],{},[1731,12921,7873],{},[1731,12923,1837],{},[1724,12925,12926,12928,12929,12932],{},[1731,12927,7888],{},": Insert text ",[1731,12930,12931],{},"\"Message\""," (localise if needed).",[1724,12934,12935,12938],{},[1731,12936,12937],{},"Reverse condition",": Set to \"Run steps if condition is true\".",[1721,12940,12941,12963,12971,12992,13000,13020],{},[1724,12942,12943,1729,12946,12949],{},[1593,12944,12945],{},"Step 2.3.1",[1731,12947,12948],{},"Click element: Message",[1721,12950,12951,12956],{},[1724,12952,12953,12955],{},[1731,12954,1794],{},": Highlight the Message button.",[1724,12957,12958,1801,12960,12962],{},[1731,12959,269],{},[1731,12961,5255],{},", enable \"Use element text instead of HTML\", click \"Complete\".",[1724,12964,12965,1729,12968,11867],{},[1593,12966,12967],{},"Step 2.3.2",[1731,12969,12970],{},"Wait: For DM dialog to appear",[1724,12972,12973,1729,12976,12979],{},[1593,12974,12975],{},"Step 2.3.3",[1731,12977,12978],{},"Click element: Dismiss dialog",[1721,12980,12981,12986],{},[1724,12982,12983,12985],{},[1731,12984,1794],{},": Highlight the ‘Not now’ button.",[1724,12987,12988,1801,12990,12962],{},[1731,12989,269],{},[1731,12991,5255],{},[1724,12993,12994,1729,12997,11867],{},[1593,12995,12996],{},"Step 2.3.4",[1731,12998,12999],{},"Wait: For dialog to close",[1724,13001,13002,1729,13005,13008],{},[1593,13003,13004],{},"Step 2.3.5",[1731,13006,13007],{},"Enter text: DM message",[1721,13009,13010],{},[1724,13011,13012,1771,13014,13016,13017,13019],{},[1731,13013,2580],{},[1731,13015,1833],{},", select the message column from ",[1731,13018,1778],{}," (usually column B).",[1724,13021,13022,1729,13025,13028],{},[1593,13023,13024],{},"Step 2.3.6",[1731,13026,13027],{},"Press key(s): Send DM",[1721,13029,13030],{},[1724,13031,13032,13034],{},[1731,13033,6955],{},": Press \"Return\", then click \"Stop recording\".",[1724,13036,13037,1729,13039,13041],{},[1593,13038,2586],{},[1731,13040,1920],{},[1721,13042,13043,13047,13051,13059],{},[1724,13044,13045,1741],{},[1731,13046,1740],{},[1724,13048,13049,9551],{},[1731,13050,1746],{},[1724,13052,13053,13056,13057,1610],{},[1731,13054,13055],{},"First row to delete",": Leave set to ",[1731,13058,1804],{},[1724,13060,13061,13056,13064,1610],{},[1731,13062,13063],{},"Last row to delete",[1731,13065,1804],{},[1558,13067,13068,13069,2037,13072,13074,13075,13078],{},"💡 For testing, set ",[1731,13070,13071],{},"\"Last cell\"",[1731,13073,8781],{}," to send a single DM. To send more, increase to ",[1731,13076,13077],{},"\"AB10\""," etc. Instagram has limits — avoid getting blocked.",[1612,13080,2423],{"id":2422},[1558,13082,13083,13084,13087],{},"By following these steps, it's possible to automate sending direct messages on Instagram. Sending too many messages can get your account blocked, but it works well if you stick within Instagram's DM limits. Better still, there is an ",[1562,13085,13086],{"href":12760},"Instagram template"," that can be set up with a single click.",{"title":1636,"searchDepth":1637,"depth":1637,"links":13089},[13090,13091,13092],{"id":12768,"depth":1640,"text":12769},{"id":8719,"depth":1640,"text":8720},{"id":2422,"depth":1640,"text":2423},"A Step by step guide how to contruct a bot to autoamte sending direct messages on Instagram.",{"pinned":1646,"type":2143,"format":1718,"intent_type":13095,"intent":2676,"tags":13096,"platfrom":13098},"usacase",[13097,2679],"social media",[13099],"Instagram","\u002Fguides\u002Fhow-to-dm-on-instagram",{"title":12750,"description":13093},"guides\u002Fhow-to-dm-on-instagram","S7erdMR8rGd28tmr3LFTugvRH_qqYzR7IQLmPCMj0Mw",{"id":13105,"title":13106,"body":13107,"date":1641,"description":13113,"extension":1643,"meta":13384,"navigation":1646,"order":1641,"path":13388,"seo":13389,"stem":13390,"__hash__":13391},"guides\u002Fguides\u002Fhow-to-loop-through-data-in-cells.md","How to loop through data in cells",{"type":1555,"value":13108,"toc":13377},[13109,13111,13114,13117,13120,13124,13127,13130,13134,13138,13141,13152,13156,13163,13172,13180,13188,13195,13199,13203,13206,13340,13343,13345,13348,13351,13371,13374],[1617,13110],{},[1558,13112,13113],{},"When automating web apps, you often need to select more than one option within a dropdown or checkbox group. This is common when entering product data into ecommerce backends, such as assigning colours, size ranges, or other product variants. I recently used this approach while automating workflows for Printful and WooCommerce, where multiple selections are required to correctly configure products.",[1558,13115,13116],{},"In the example below, we will open a dropdown and select multiple checkbox entries. The same approach can be adapted to many other use cases.",[1558,13118,13119],{},"Let’s dive in.",[1612,13121,13123],{"id":13122},"how-to-set-up-your-data","How to set up your data",[1558,13125,13126],{},"In this example, I am using a Google Sheet. To loop through multiple values stored inside a single cell, you must separate them using a delimiter. I typically use a comma, but any consistent delimiter will work as long as it is used consistently across the sheet.",[1558,13128,13129],{},"For example, in column C you might store sizes like this:",[2219,13131],{"src":13132,"alt":13133},"\u002Fguides\u002Fgoogle-cell-data.webp","How to set up you data separated by a delimiter.",[1612,13135,13137],{"id":13136},"when-to-use-this-method","When to use this method",[1558,13139,13140],{},"Use this approach when:",[1721,13142,13143,13146,13149],{},[1724,13144,13145],{},"You need to tick multiple checkboxes.",[1724,13147,13148],{},"You need to select multiple dropdown options.",[1724,13150,13151],{},"You are automating product variants, tags, permissions, or categories.",[1612,13153,13155],{"id":13154},"what-steps-we-will-use","What steps we will use",[1558,13157,13158,13159,13162],{},"First, we import the source data using the ",[1562,13160,13161],{"href":1636},"Read data from Google Sheet"," step. This gives us access to all product values stored in the sheet.",[1558,13164,13165,13166,13171],{},"Next, we use the ",[1562,13167,13170],{"href":13168,"rel":13169},"https:\u002F\u002Faxiom.ai\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Floop",[1633],"Loop through data step"," to process each row individually.",[1558,13173,13174,13175,13179],{},"Within that loop, we add a ",[1562,13176,1181],{"href":13177,"rel":13178},"https:\u002F\u002Faxiom.ai\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fsplit-by-character",[1633],". This takes a single cell containing multiple values and splits it using a delimiter, turning the values into an array.",[1558,13181,13182,13183,13187],{},"Because the split data is returned horizontally, we then use the ",[1562,13184,1185],{"href":13185,"rel":13186},"https:\u002F\u002Faxiom.ai\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fswap-rows-and-columns",[1633]," to convert it into a vertical list.",[1558,13189,13190,13191,13194],{},"Finally, we use another ",[1562,13192,1074],{"href":13168,"rel":13193},[1633]," to iterate through the transposed values one by one. This allows each option to be selected individually in the target dropdown or checkbox group.",[2219,13196],{"src":13197,"alt":13198},"\u002Fguides\u002Fnested-cell-loop.webp","steps for nested loop through cell data",[1612,13200,13202],{"id":13201},"how-to-structure-the-steps","How to structure the steps",[1558,13204,13205],{},"Below is a simplified outline of the structure:",[1718,13207,13208],{},[1721,13209,13210,13237],{},[1724,13211,13212,1729,13214,13216],{},[1593,13213,1986],{},[1731,13215,1733],{},[1721,13217,13218,13222,13226,13232],{},[1724,13219,13220,1741],{},[1731,13221,1740],{},[1724,13223,13224,9551],{},[1731,13225,1746],{},[1724,13227,13228,12848,13230,1610],{},[1731,13229,8769],{},[1731,13231,8773],{},[1724,13233,13234,13236],{},[1731,13235,6866],{},": End at a specified column and row, depending on how many rows you want to process.",[1724,13238,13239,1729,13241,13243,13253],{},[1593,13240,2535],{},[1731,13242,667],{},[1721,13244,13245],{},[1724,13246,13247,1771,13249,1775,13251,1610],{},[1731,13248,667],{},[1731,13250,1833],{},[1731,13252,1778],{},[1721,13254,13255,13280,13298],{},[1724,13256,13257,1729,13259,13262],{},[1593,13258,2544],{},[1731,13260,13261],{},"Split by character",[1721,13263,13264,13273],{},[1724,13265,13266,13269,13270,1610],{},[1731,13267,13268],{},"Character",": Enter your chosen delimiter, for example ",[1731,13271,13272],{},",",[1724,13274,13275,1771,13277,13279],{},[1731,13276,2100],{},[1731,13278,1833],{},", select the column that contains your delimited cell values (e.g., sizes column).",[1724,13281,13282,1729,13284,13287],{},[1593,13283,2562],{},[1731,13285,13286],{},"Swap rows and columns",[1721,13288,13289],{},[1724,13290,13291,1771,13293,13295,13296,2855],{},[1731,13292,2100],{},[1731,13294,1833],{},", select the output from the ",[1731,13297,13261],{},[1724,13299,13300,1729,13302,13305,13315],{},[1593,13301,2570],{},[1731,13303,13304],{},"Loop through data (nested loop)",[1721,13306,13307],{},[1724,13308,13309,1771,13311,13295,13313,2855],{},[1731,13310,667],{},[1731,13312,1833],{},[1731,13314,13286],{},[1721,13316,13317],{},[1724,13318,13319,1729,13321,13323],{},[1593,13320,12945],{},[1731,13322,5243],{},[1721,13324,13325,13330],{},[1724,13326,13327,13329],{},[1731,13328,1794],{},": Highlight the size dropdown.",[1724,13331,13332,1801,13334,13336,13337,13339],{},[1731,13333,269],{},[1731,13335,5255],{},", enable \"Use element text instead of HTML\", click \"insert data\" and select the output from the ",[1731,13338,13286],{}," step. Finally click \"Complete\".",[1558,13341,13342],{},"This allows each value in the cell (for example, each size) to be selected individually.",[1612,13344,2423],{"id":2422},[1558,13346,13347],{},"Looping through data inside loops can feel complex at first. The key is setting up your data correctly using a delimiter.",[1558,13349,13350],{},"Once your data is structured properly, you only need a few steps:",[1721,13352,13353,13359,13365],{},[1724,13354,13355],{},[1562,13356,13358],{"href":13177,"rel":13357},[1633],"Split",[1724,13360,13361],{},[1562,13362,13364],{"href":13185,"rel":13363},[1633],"Transpose",[1724,13366,13367],{},[1562,13368,13370],{"href":13168,"rel":13369},[1633],"loop",[1558,13372,13373],{},"From there, you can automate selecting multiple dropdown items, ticking multiple checkboxes, or interacting with repeated UI elements.",[1558,13375,13376],{},"Master nested loops, and you unlock the ability to automate highly dynamic interfaces.",{"title":1636,"searchDepth":1637,"depth":1637,"links":13378},[13379,13380,13381,13382,13383],{"id":13122,"depth":1640,"text":13123},{"id":13136,"depth":1640,"text":13137},{"id":13154,"depth":1640,"text":13155},{"id":13201,"depth":1640,"text":13202},{"id":2422,"depth":1640,"text":2423},{"pinned":1646,"metaTitle":13385,"type":2143,"format":1718,"intent_type":3377,"intent":2454,"tags":13386,"platfrom":13387},"How to loop through data in cells using nested loops and a data source like Google Sheets",[2681],[3380],"\u002Fguides\u002Fhow-to-loop-through-data-in-cells",{"title":13106,"description":13113},"guides\u002Fhow-to-loop-through-data-in-cells","phx8XCoib2bbjF7pVdlaqhsm61REmcK3HabzAgfUBaU",{"id":13393,"title":13394,"body":13395,"date":1641,"description":13677,"extension":1643,"meta":13678,"navigation":1646,"order":1641,"path":13682,"seo":13683,"stem":13684,"__hash__":13685},"guides\u002Fguides\u002Fhubspot-sequence-add-contacts.md","How to automate adding contacts to your Hubspot sequences",{"type":1555,"value":13396,"toc":13672},[13397,13399,13403,13427,13429,13431,13434,13467,13469,13471,13481,13656,13662,13664,13666],[1617,13398],{},[2219,13400],{"src":13401,"alt":13402},"\u002Fdocs\u002Fguides\u002Fhubspot-sequences.jpg","Automate hubspot sequences in the browser with axiom.ai",[1558,13404,13405,13406,5497,13409,1834,13412,13415,13416,13419,13420,13423,13424,13426],{},"This guide shows you how to make a bot that reads contact information from a Google Sheet, opens a HubSpot email sequence, and then ",[1562,13407,13408],{"href":525},"clicks",[1593,13410,13411],{},"\"Email Contacts\"",[1593,13413,13414],{},"\"Enroll Contacts.\""," It then enters the email into the ",[1593,13417,13418],{},"\"Search for Contacts\""," input. The bot then selects \"Next\" and finally ",[1593,13421,13422],{},"\"Start Sequence\""," before repeating the process in a ",[1562,13425,13370],{"href":668}," for the next contact. Better still, the bot can be easily adapted to your use case by adding and removing steps.",[1612,13428,12769],{"id":12768},[1617,13430],{},[1558,13432,13433],{},"Create a Google Sheet add some contact emails to the sheet. See example below.",[8679,13435,13436,13444],{},[8682,13437,13438],{},[8685,13439,13440,13442],{},[8688,13441,5152],{},[8688,13443,12783],{},[8695,13445,13446,13457],{},[8685,13447,13448,13454],{},[8700,13449,13450],{},[1562,13451,13453],{"href":13452},"mailto:dummycontact@mywork.com","dummycontact@mywork.com",[8700,13455,13456],{},"---",[8685,13458,13459,13465],{},[8700,13460,13461],{},[1562,13462,13464],{"href":13463},"mailto:dummycontact1@mywork.com","dummycontact1@mywork.com",[8700,13466,13456],{},[1612,13468,8720],{"id":8719},[1617,13470],{},[1558,13472,12812,13473,12817,13477,8729,13479,12823],{},[1562,13474,5041],{"href":13475,"rel":13476},"http:\u002F\u002Faxiom.ai\u002F",[1633],[1593,13478,8728],{},[1593,13480,12822],{},[1718,13482,13483],{},[1721,13484,13485,13515,13529],{},[1724,13486,13487,1729,13489,13491],{},[1593,13488,1986],{},[1731,13490,1733],{},[1721,13492,13493,13497,13501,13508],{},[1724,13494,13495,1741],{},[1731,13496,1740],{},[1724,13498,13499,9551],{},[1731,13500,1746],{},[1724,13502,13503,13505,13506,1610],{},[1731,13504,8769],{},": Start from ",[1731,13507,8773],{},[1724,13509,13510,13512,13513,1610],{},[1731,13511,6866],{},": End at ",[1731,13514,8781],{},[1724,13516,13517,1729,13519,13522],{},[1593,13518,2535],{},[1731,13520,13521],{},"Go to page: Hubspot Sequence",[1721,13523,13524],{},[1724,13525,13526,13528],{},[1731,13527,1770],{},": Insert the sequence URL you wish to add contacts into.",[1724,13530,13531,1729,13533,13535,13545],{},[1593,13532,10601],{},[1731,13534,667],{},[1721,13536,13537],{},[1724,13538,13539,1771,13541,1775,13543,1610],{},[1731,13540,667],{},[1731,13542,1833],{},[1731,13544,1778],{},[1721,13546,13547,13569,13585,13599,13613,13628],{},[1724,13548,13549,1729,13551,13554],{},[1593,13550,10610],{},[1731,13552,13553],{},"Select list: Enroll contacts",[1721,13555,13556,13561],{},[1724,13557,13558,13560],{},[1731,13559,1794],{},": Highlight the “Enroll contacts” dropdown.",[1724,13562,13563,13565,13566,1610],{},[1731,13564,2580],{},": Add the text ",[1731,13567,13568],{},"\"Email contacts\"",[1724,13570,13571,1729,13573,13576],{},[1593,13572,10618],{},[1731,13574,13575],{},"Enter text: Search for contact",[1721,13577,13578],{},[1724,13579,13580,1771,13582,13584],{},[1731,13581,2580],{},[1731,13583,1833],{},", select the email column from the Google Sheet (column A).",[1724,13586,13587,1729,13589,13592],{},[1593,13588,10634],{},[1731,13590,13591],{},"Click element: Tick contact",[1721,13593,13594],{},[1724,13595,13596,13598],{},[1731,13597,1794],{},": Highlight and select the checkbox for the top result.",[1724,13600,13601,1729,13603,13606],{},[1593,13602,10642],{},[1731,13604,13605],{},"Click element: Next",[1721,13607,13608],{},[1724,13609,13610,13612],{},[1731,13611,1794],{},": Highlight the “Next” button and click Complete.",[1724,13614,13615,1729,13618,13621],{},[1593,13616,13617],{},"Step 3.5",[1731,13619,13620],{},"Click element: Start sequence",[1721,13622,13623],{},[1724,13624,13625,13627],{},[1731,13626,1794],{},": Highlight the “Start sequence” button and click Complete.",[1724,13629,13630,1729,13632,13634],{},[1593,13631,10784],{},[1731,13633,1920],{},[1721,13635,13636,13640,13644,13650],{},[1724,13637,13638,1741],{},[1731,13639,1740],{},[1724,13641,13642,9551],{},[1731,13643,1746],{},[1724,13645,13646,1801,13648,1610],{},[1731,13647,13055],{},[1731,13649,1804],{},[1724,13651,13652,1801,13654,1610],{},[1731,13653,13063],{},[1731,13655,1804],{},[1558,13657,13658,13659,13661],{},"💡 Adjust the ",[1731,13660,6866],{}," value in Step 1.0 (e.g. \"AB50\") to loop through multiple contacts.",[1612,13663,2423],{"id":2422},[1617,13665],{},[1558,13667,13668,13669,1610],{},"In just a few steps, anyone can create automation that reads contacts from a Google Sheet, opens a HubSpot sequence, and adds a contact. In fact, what you have learned is how to automate virtually any action in HubSpot. Take what you have learned and apply it to marketing, commerce, CRM, content, and even reporting to fully automate HubSpot in the ",[1562,13670,13671],{"href":8874},"browser",{"title":1636,"searchDepth":1637,"depth":1637,"links":13673},[13674,13675,13676],{"id":12768,"depth":1640,"text":12769},{"id":8719,"depth":1640,"text":8720},{"id":2422,"depth":1640,"text":2423},"Learn how to automate adding contacts to your HubSpot sequences using data from Google Sheets. This step-by-step guide walks you through building a browser bot with axiom.ai.",{"type":2143,"format":1718,"intent_type":2675,"intent":2454,"tags":13679,"platfrom":13680},[2681],[13681],"Hubspot","\u002Fguides\u002Fhubspot-sequence-add-contacts",{"title":13394,"description":13677},"guides\u002Fhubspot-sequence-add-contacts","7fkmEqDGbiJAtWBKfOvxQ_u6hVopVfLhafbwt9GON9Y",{"id":13687,"title":13688,"body":13689,"date":1641,"description":14247,"extension":1643,"meta":14248,"navigation":1646,"order":1641,"path":14251,"seo":14252,"stem":14253,"__hash__":14254},"guides\u002Fguides\u002Fifttt.md","How to trigger axiom.ai automations using IFTTT",{"type":1555,"value":13690,"toc":14236},[13691,13693,13701,13711,13713,13715,13738,13742,13745,13777,13780,13813,13817,13821,13824,13851,13854,13876,13879,13926,13928,13936,13942,13944,13947,13951,13960,13990,13993,14000,14004,14007,14053,14056,14172,14183,14223,14225,14228,14233],[1617,13692],{},[1558,13694,13695,13700],{},[1562,13696,13699],{"href":13697,"rel":13698},"https:\u002F\u002Fifttt.com",[1633],"IFTTT"," offers a wide range of connections to various services, learn how to start using IFTTT automations to trigger your axiom.ai automations and power-up your workflow with access to new services.",[1558,13702,13703,13704,13706,13707,13710],{},"This guide assumes that you already have an automation set up, want to create a trigger using IFTTT, and have an axiom.ai plan that supports webhooks (see ",[1562,13705,1535],{"href":1534},"). Some features of ",[1562,13708,13699],{"href":13697,"rel":13709},[1633]," may require a subscription.",[1612,13712,2173],{"id":2172},[1558,13714,2178],{},[1718,13716,13717],{},[2182,13718,13719,13726,13731],{},[1724,13720,13721,13723,13724,1610],{},[1593,13722,2188],{},": Your personal API key can be found in the extension ",[1562,13725,2193],{"href":2192},[1724,13727,13728,13730],{},[1593,13729,2198],{},": The name of the automation you wish to trigger.",[1724,13732,13733,13735,13736,1610],{},[1593,13734,2204],{},": The current axiom.ai endpoint is ",[1731,13737,2208],{},[1612,13739,13741],{"id":13740},"trigger-an-axiomai-automation-with-ifttt","Trigger an axiom.ai automation with IFTTT",[1558,13743,13744],{},"Learn how to trigger an axiom.ai automation from IFTTT by making use of webhooks.",[1718,13746,13747],{},[2182,13748,13749,13760,13766,13772],{},[1724,13750,13751,13754,13755,13759],{},[1593,13752,13753],{},"Create IFTTT applet",": Head to ",[1562,13756,13758],{"href":13697,"rel":13757},[1633],"ifttt.com"," and click \"create\".",[1724,13761,13762,13765],{},[1593,13763,13764],{},"Trigger",": IFTTT offer a wide range of triggers for your automations. For this guide we will use \"Date & Time\" for simplicity.",[1724,13767,13768,13771],{},[1593,13769,13770],{},"Action(s)",": To trigger your axiom.ai automation, select \"Webhooks\" as an action.",[1724,13773,13774,13776],{},[1593,13775,2247],{},": Configure the \"webhooks\" action.",[1558,13778,13779],{},"Configure the \"webhooks\" action:",[1718,13781,13782],{},[1721,13783,13784,13790,13797,13804],{},[1724,13785,13786,2205,13788,1610],{},[1593,13787,5526],{},[1731,13789,2208],{},[1724,13791,13792,1801,13795,1610],{},[1593,13793,13794],{},"Method",[1731,13796,2254],{},[1724,13798,13799,1801,13802,1610],{},[1593,13800,13801],{},"Content Type",[1731,13803,10433],{},[1724,13805,13806,13808,13809,13812],{},[1593,13807,2259],{},": This should be set per our ",[1562,13810,13811],{"href":8308},"API | Triggering an automation"," documentation.",[2219,13814],{"src":13815,"alt":13816},"\u002Fdocs\u002Fguides\u002Fifttt-create-datetime-trigger.jpg","create ifttt with date time trigger to trigger axiom.ai automation",[1612,13818,13820],{"id":13819},"trigger-an-ifttt-applet-with-an-axiomai-automation","Trigger an IFTTT applet with an axiom.ai automation",[1558,13822,13823],{},"Learn how to trigger an IFTTT applet from an axiom.ai automation.",[1718,13825,13826],{},[2182,13827,13828,13835,13840,13845],{},[1724,13829,13830,13754,13832,13759],{},[1593,13831,13753],{},[1562,13833,13758],{"href":13697,"rel":13834},[1633],[1724,13836,13837,13839],{},[1593,13838,13764],{},": Select the \"receive a web request with a JSON payload\" trigger, and set an event name.",[1724,13841,13842,13844],{},[1593,13843,13770],{},": Select the action(s) that you would like your IFTTT flow to take.",[1724,13846,13847,13850],{},[1593,13848,13849],{},"Save",": Once saved, you will then be given a webhook URL, save this for later.",[1558,13852,13853],{},"Now head over to your axiom.ai automation:",[1718,13855,13856],{},[2182,13857,13858,13864,13870],{"start":3523},[1724,13859,13860,13863],{},[1593,13861,13862],{},"Trigger a webhook",": Add the \"trigger a webhook\" step to your automation, towards the end of your automation is often best.",[1724,13865,13866,13869],{},[1593,13867,13868],{},"Set Endpoint",": In the \"endpoint\" field, insert the URL from step 4.",[1724,13871,13872,13875],{},[1593,13873,13874],{},"Define payload",": (Optional) If you're sending data to IFTTT, define a JSON payload in the \"payload\" field.",[1558,13877,13878],{},"Example payload:",[2346,13880,13882],{"className":9309,"code":13881,"language":4202,"meta":1636,"style":1636},"{\n  \"organisation\": \"axiom.ai\",\n  \"address\": \"123 Coast Road\",\n  \"phone\": \"xxx-xxx-xxxx\"\n}\n",[1731,13883,13884,13888,13900,13912,13922],{"__ignoreMap":1636},[2354,13885,13886],{"class":2356,"line":2357},[2354,13887,9317],{"class":2395},[2354,13889,13890,13893,13895,13898],{"class":2356,"line":1640},[2354,13891,13892],{"class":9322},"  \"organisation\"",[2354,13894,3617],{"class":2395},[2354,13896,13897],{"class":2364},"\"axiom.ai\"",[2354,13899,4044],{"class":2395},[2354,13901,13902,13905,13907,13910],{"class":2356,"line":1637},[2354,13903,13904],{"class":9322},"  \"address\"",[2354,13906,3617],{"class":2395},[2354,13908,13909],{"class":2364},"\"123 Coast Road\"",[2354,13911,4044],{"class":2395},[2354,13913,13914,13917,13919],{"class":2356,"line":1647},[2354,13915,13916],{"class":9322},"  \"phone\"",[2354,13918,3617],{"class":2395},[2354,13920,13921],{"class":2364},"\"xxx-xxx-xxxx\"\n",[2354,13923,13924],{"class":2356,"line":3523},[2354,13925,4256],{"class":2395},[1612,13927,2403],{"id":2402},[1558,13929,13930,13931,13935],{},"To test the triggering of your axiom.ai automation from an IFTTT applet, simply run the flow from IFTTT and then check the ",[1593,13932,13933],{},[1562,13934,2419],{"href":2418}," in axiom.ai to confirm that the automation has run. If there is no run report present, this could either mean that there was an error in IFTTT, or the automation has yet to run.",[1558,13937,13938,13939,13941],{},"To test the triggering of your IFTTT applet, simply click ",[1593,13940,2411],{}," within your axiom.ai automation and then observe the actions that the IFTTT applet makes - for example, if it writes to a Google Sheet, check the Google Sheet that is connected.",[1612,13943,8313],{"id":8312},[1558,13945,13946],{},"There are plenty of use cases that this can be applied to, below are some examples.",[2266,13948,13950],{"id":13949},"trigger-axiomai-automation-when-an-airtable-database-is-updated","Trigger axiom.ai automation when an Airtable database is updated",[1558,13952,13953,13954,13959],{},"To get started, you'll need to ensure that you have your Airtable account connected to IFTTT. To do so, add the Airtable action\u002Ftrigger to an automation and follow the instructions. See IFTTTs documentation: ",[1562,13955,13958],{"href":13956,"rel":13957},"https:\u002F\u002Fifttt.com\u002Fairtable",[1633],"Airtable Integrations"," for more information.",[1718,13961,13962],{},[2182,13963,13964,13971,13976,13984],{},[1724,13965,13966,13754,13968,13759],{},[1593,13967,13753],{},[1562,13969,13758],{"href":13697,"rel":13970},[1633],[1724,13972,13973,13975],{},[1593,13974,13764],{},": Select the \"Airtable\" trigger.",[1724,13977,13978,13980,13981,1610],{},[1593,13979,13770],{},": Add the \"Webhooks\" action. To configure this action, see ",[1562,13982,13741],{"href":13983},"#trigger-an-axiomai-automation-with-ifttt",[1724,13985,13986,13989],{},[1593,13987,13988],{},"Test",": Add a new entry to your Airtable table, give it a moment, and then check \"run reports\" in your axiom.ai extension.",[2219,13991],{"src":13992,"alt":13816},"\u002Fdocs\u002Fguides\u002Fifttt-create-airtable-trigger.jpg",[1558,13994,13995,13996,1610],{},"Need to post data to Airtable using Axiom? Check out our guide on ",[1562,13997,13999],{"href":13998},"\u002Fguides\u002Fpost-data-to-airtable","how to post data to airtable",[2266,14001,14003],{"id":14002},"automatically-create-a-new-notion-page-with-ifttt-and-axiomai","Automatically create a new Notion page with IFTTT and axiom.ai",[1558,14005,14006],{},"To get started, you'll need to ensure that you have your Notion account connected to IFTTT. To do so, add the Notion action\u002Ftrigger to an automation and follow the instructions. For this example, we are going to be making a company directory with an axiom.ai automation that sends company data to IFTTT to be filed in Notion.so.",[1718,14008,14009],{},[2182,14010,14011,14018,14022,14027,14032,14042,14048],{},[1724,14012,14013,13754,14015,13759],{},[1593,14014,13753],{},[1562,14016,13758],{"href":13697,"rel":14017},[1633],[1724,14019,14020,13839],{},[1593,14021,13764],{},[1724,14023,14024,14026],{},[1593,14025,13770],{},": Search \"Notion\" and select \"create a page\".",[1724,14028,14029,14031],{},[1593,14030,2247],{},": Configure the action(s) as required, you'll need to set values for the page title and content - this can be dummy content for the time being.",[1724,14033,14034,14037,14038,14041],{},[1593,14035,14036],{},"Add a filter code",":  To make use of the ",[1731,14039,14040],{},"JsonPayload"," object that is created by the webhook trigger, a filter code will need to be added. See the code below for more details. This can be modified for use with other services.",[1724,14043,14044,14047],{},[1593,14045,14046],{},"Set up your Axiom",": Add a \"Trigger webhook\" step to your automation to use when sending data to IFTTT.",[1724,14049,14050,14052],{},[1593,14051,13988],{},": Click \"run\" on your automation with some test data then check the activity within your IFTTT applet to confirm it ran as expected.",[1558,14054,14055],{},"To set up a filter code that changes the Notion.so page name and inserts data into the page, follow the code below. You'll need to switch out with the data that you are sending to the webhook.",[2346,14057,14061],{"className":14058,"code":14059,"language":14060,"meta":1636,"style":1636},"language-ts shiki shiki-themes github-light-default github-dark-default","\u002F\u002F Parse the payload to be able to be used within your applet.\nlet payload = JSON.parse(MakerWebhooks.jsonEvent.JsonPayload)\n\n\u002F\u002F Set the title based on the first value within the payload\nNotionSo.createNewPage.setPageTitle(payload.organisation)\n\n\u002F\u002F Set the page content\nNotionSo.createNewPage.setPageBody(`Organisation: ${payload.organisation}\\nAddress: ${payload.address}\\nPhone: ${payload.phone}`)\n","ts",[1731,14062,14063,14068,14088,14092,14097,14108,14112,14117],{"__ignoreMap":1636},[2354,14064,14065],{"class":2356,"line":2357},[2354,14066,14067],{"class":4535},"\u002F\u002F Parse the payload to be able to be used within your applet.\n",[2354,14069,14070,14073,14075,14077,14080,14082,14085],{"class":2356,"line":1640},[2354,14071,14072],{"class":3608},"let",[2354,14074,11097],{"class":2395},[2354,14076,6569],{"class":3608},[2354,14078,14079],{"class":3505}," JSON",[2354,14081,1610],{"class":2395},[2354,14083,14084],{"class":3993},"parse",[2354,14086,14087],{"class":2395},"(MakerWebhooks.jsonEvent.JsonPayload)\n",[2354,14089,14090],{"class":2356,"line":1637},[2354,14091,3520],{"emptyLinePlaceholder":1646},[2354,14093,14094],{"class":2356,"line":1647},[2354,14095,14096],{"class":4535},"\u002F\u002F Set the title based on the first value within the payload\n",[2354,14098,14099,14102,14105],{"class":2356,"line":3523},[2354,14100,14101],{"class":2395},"NotionSo.createNewPage.",[2354,14103,14104],{"class":3993},"setPageTitle",[2354,14106,14107],{"class":2395},"(payload.organisation)\n",[2354,14109,14110],{"class":2356,"line":3595},[2354,14111,3520],{"emptyLinePlaceholder":1646},[2354,14113,14114],{"class":2356,"line":3673},[2354,14115,14116],{"class":4535},"\u002F\u002F Set the page content\n",[2354,14118,14119,14121,14124,14126,14129,14132,14134,14137,14140,14143,14146,14148,14150,14153,14155,14157,14160,14162,14164,14167,14169],{"class":2356,"line":3679},[2354,14120,14101],{"class":2395},[2354,14122,14123],{"class":3993},"setPageBody",[2354,14125,4159],{"class":2395},[2354,14127,14128],{"class":2364},"`Organisation: ${",[2354,14130,14131],{"class":2395},"payload",[2354,14133,1610],{"class":2364},[2354,14135,14136],{"class":2395},"organisation",[2354,14138,14139],{"class":2364},"}",[2354,14141,14142],{"class":3608},"\\n",[2354,14144,14145],{"class":2364},"Address: ${",[2354,14147,14131],{"class":2395},[2354,14149,1610],{"class":2364},[2354,14151,14152],{"class":2395},"address",[2354,14154,14139],{"class":2364},[2354,14156,14142],{"class":3608},[2354,14158,14159],{"class":2364},"Phone: ${",[2354,14161,14131],{"class":2395},[2354,14163,1610],{"class":2364},[2354,14165,14166],{"class":2395},"phone",[2354,14168,4065],{"class":2364},[2354,14170,14171],{"class":2395},")\n",[1558,14173,14174,14175,14178,14179,14182],{},"To set up your axiom.ai automation, you'll need to add a ",[1593,14176,14177],{},"trigger webhook"," step. You'll need to save your IFTTT applet and grab the webhook URL. It should have the following format: ",[1731,14180,14181],{},"https:\u002F\u002Fmaker.ifttt.com\u002Ftrigger\u002F\u003CEVENT_NAME>\u002Fjson\u002Fwith\u002Fkey\u002F\u003CID>",". You'll need to then format your payload as JSON, in our example, we used the following:",[2346,14184,14185],{"className":9309,"code":13881,"language":4202,"meta":1636,"style":1636},[1731,14186,14187,14191,14201,14211,14219],{"__ignoreMap":1636},[2354,14188,14189],{"class":2356,"line":2357},[2354,14190,9317],{"class":2395},[2354,14192,14193,14195,14197,14199],{"class":2356,"line":1640},[2354,14194,13892],{"class":9322},[2354,14196,3617],{"class":2395},[2354,14198,13897],{"class":2364},[2354,14200,4044],{"class":2395},[2354,14202,14203,14205,14207,14209],{"class":2356,"line":1637},[2354,14204,13904],{"class":9322},[2354,14206,3617],{"class":2395},[2354,14208,13909],{"class":2364},[2354,14210,4044],{"class":2395},[2354,14212,14213,14215,14217],{"class":2356,"line":1647},[2354,14214,13916],{"class":9322},[2354,14216,3617],{"class":2395},[2354,14218,13921],{"class":2364},[2354,14220,14221],{"class":2356,"line":3523},[2354,14222,4256],{"class":2395},[1612,14224,2423],{"id":2422},[1558,14226,14227],{},"Being able to trigger your IFTTT applets with an axiom.ai automation, or vice verse, can be super powerful. IFTTT offers a wide range of connections that can be used to power up your axiom.ai automations. IFTTT also offers mobile applications that could be used to trigger your axiom.ai automations, making your automations much more portable.",[1558,14229,14230],{},[2434,14231,14232],{},"Information correct as of October 2024. Updated to any platform mentioned my change or render this process obsolete.",[2438,14234,14235],{},"html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sjgCt, html code.shiki .sjgCt{--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sU953, html code.shiki .sU953{--shiki-default:#6E7781;--shiki-dark:#8B949E}html pre.shiki code .sjeE4, html code.shiki .sjeE4{--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .sHrmB, html code.shiki .sHrmB{--shiki-default:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .sbjLL, html code.shiki .sbjLL{--shiki-default:#8250DF;--shiki-dark:#D2A8FF}",{"title":1636,"searchDepth":1637,"depth":1637,"links":14237},[14238,14239,14240,14241,14242,14246],{"id":2172,"depth":1640,"text":2173},{"id":13740,"depth":1640,"text":13741},{"id":13819,"depth":1640,"text":13820},{"id":2402,"depth":1640,"text":2403},{"id":8312,"depth":1640,"text":8313,"children":14243},[14244,14245],{"id":13949,"depth":1637,"text":13950},{"id":14002,"depth":1637,"text":14003},{"id":2422,"depth":1640,"text":2423},"Learn how to get started with triggering axiom.ai automations from IFTTT, and trigger IFTTT applets from axiom.ai. Automate Notion, Airtable, X, Twitter, TikTok any many more with axiom.ai and IFTTT.",{"pinned":1646,"type":2143,"format":1718,"intent_type":2145,"intent":2454,"tags":14249,"platfrom":14250},[2456,2457],[13699],"\u002Fguides\u002Fifttt",{"title":13688,"description":14247},"guides\u002Fifttt","1cLqZpgYwTB-1PjUZI02YloaxNdFHO1JzIImGmzYrtg",{"id":14256,"title":14257,"body":14258,"date":1641,"description":14320,"extension":1643,"meta":14321,"navigation":1646,"order":1641,"path":1962,"seo":14322,"stem":14323,"__hash__":14324},"guides\u002Fguides\u002Findex.md","Guides",{"type":1555,"value":14259,"toc":14318},[14260,14265,14268,14295,14298,14308,14314],[14261,14262],"page-header-centered-text",{"description":14263,"headline":14264},"Go beyond basics with hands-on guides for browser automation.","Browser automation guides.",[14266,14267],"blog-filters",{},[14269,14270,14271,14280,14288],"three-col",{},[2144,14272,14273],{"v-slot:ColOne":1636},[14274,14275],"docs-image-card",{"link":14276,"shape":14277,"text":14278,"title":14279},"\u002Fguides\u002Fworkflow","pyramid","Step by step guides for common automation tasks.","Workflows",[2144,14281,14282],{"v-slot:ColTwo":1636},[14274,14283],{"link":14284,"shape":14285,"text":14286,"title":14287},"\u002Fguides\u002Fpattern","cube","Techniques you can reuse across different workflows.","Patterns",[2144,14289,14290],{"v-slot:ColThree":1636},[14274,14291],{"link":14292,"shape":14285,"text":14293,"title":14294},"\u002Fguides\u002Fusecase","Real world examples of complete automations.","Use cases",[14296,14297],"guide-index-list",{},[14299,14300,14303],"grid-fade-wrap",{"bg":14301,"color":14302},"gray-to-white","default",[14304,14305],"customer-quote",{"author":14306,"quote":14307},"Nathan Heidemann","Very useful tool, saved a ton of time.",[14309,14310],"chrome-reviews",{"className":14311},[14312,14313],"gray","iso-grid-gray-100",[14315,14316],"call-to-action",{"className":14317},[14312,14313],{"title":1636,"searchDepth":1637,"depth":1637,"links":14319},[],"Explore our collection of browser automation guides. Whether you're scraping data, filling out forms, or triggering automations with APIs, these step-by-step tutorials help no-coders and developers get started fast.",{},{"title":14257,"description":14320},"guides\u002Findex","HfRoBxOIausBy3YNY1npRNevRuZtFl6t2tu7XiFkL_0",{"id":14326,"title":14327,"body":14328,"date":2669,"description":14581,"extension":1643,"meta":14582,"navigation":1646,"order":1641,"path":14588,"seo":14589,"stem":14590,"__hash__":14591},"guides\u002Fguides\u002Finstagram-post.md","How to automate Instagram posts using Google Sheets",{"type":1555,"value":14329,"toc":14573},[14330,14332,14343,14345,14347,14354,14358,14366,14368,14370,14374,14517,14521,14528,14530,14534,14536,14540,14565],[1617,14331],{},[1558,14333,14334,14335,14338,14339,14342],{},"This ",[1593,14336,14337],{},"\"Instagram automation\""," template posts content from a Google Sheet to your Instagram without requiring an API. The bot retrieves data from the Sheet, opens Instagram in Chrome, click ",[1593,14340,14341],{},"\"create\""," and inputs the data into the Instagram post web form, your human actions. After clicking confirm the bot removes the processed row from the Sheet.",[1662,14344],{},[1612,14346,2480],{"id":2479},[1558,14348,1670,14349,2711,14351,1610],{},[1593,14350,1673],{},[1593,14352,14353],{},"\"Instagram posts\"",[1612,14355,14357],{"id":14356},"install-the-instagram-post-bot","Install the Instagram post bot",[1558,14359,14360,14361,1696,14363,1700],{},"To install this Insta data entry bot, click ",[1593,14362,1695],{},[1593,14364,14365],{},"\"\"Install Chrome extension\"\"",[1558,14367,2503],{},[1558,14369,1709],{},[1612,14371,14373],{"id":14372},"configure-your-instagram-post-bot-in-four-easy-steps","Configure your Instagram post bot in four easy steps",[1718,14375,14376],{},[1721,14377,14378,14395],{},[1724,14379,14380,1729,14382,14384],{},[1593,14381,1728],{},[1731,14383,1733],{},[1721,14385,14386,14390],{},[1724,14387,14388,1741],{},[1731,14389,1740],{},[1724,14391,14392,14394],{},[1731,14393,1746],{},": Choose the tab with the posts in it.",[1724,14396,14397,1729,14399,14401,14515,2610],{},[1593,14398,1752],{},[1731,14400,667],{},[1721,14402,14403,14410,14416,14429,14436,14442,14459,14465,14472,14490,14498],{},[1724,14404,14405,1729,14407,11867],{},[1593,14406,1761],{},[1731,14408,14409],{},"Go to page: www.instagram.com",[1724,14411,14412,1729,14414,11867],{},[1593,14413,1784],{},[1731,14415,349],{},[1724,14417,14418,1729,14420,14423,14424],{},[1593,14419,1809],{},[1731,14421,14422],{},"Click element: Not Now"," ^\n",[1721,14425,14426],{},[1724,14427,14428],{},"Closes pop-up that may appear.",[1724,14430,14431,1729,14433,11867],{},[1593,14432,1852],{},[1731,14434,14435],{},"Click element: Create",[1724,14437,14438,1729,14440,11867],{},[1593,14439,1880],{},[1731,14441,11532],{},[1724,14443,14444,1729,14446,14449],{},[1593,14445,1917],{},[1731,14447,14448],{},"Upload a file: Select from computer",[1721,14450,14451],{},[1724,14452,14453,1771,14455,1775,14457,1610],{},[1731,14454,2815],{},[1731,14456,1833],{},[1731,14458,1866],{},[1724,14460,14461,1729,14463,11867],{},[1593,14462,2829],{},[1731,14464,13605],{},[1724,14466,14467,1729,14470,11867],{},[1593,14468,14469],{},"2.8",[1731,14471,13605],{},[1724,14473,14474,1729,14477,14480],{},[1593,14475,14476],{},"2.9",[1731,14478,14479],{},"Enter text: Write a caption",[1721,14481,14482],{},[1724,14483,14484,1771,14486,1775,14488,1610],{},[1731,14485,2580],{},[1731,14487,1833],{},[1731,14489,1866],{},[1724,14491,14492,1729,14495,11867],{},[1593,14493,14494],{},"2.10",[1731,14496,14497],{},"Click element: Share",[1724,14499,14500,1729,14503,14505],{},[1593,14501,14502],{},"2.11",[1731,14504,1920],{},[1721,14506,14507,14511],{},[1724,14508,14509,1741],{},[1731,14510,1740],{},[1724,14512,14513,14394],{},[1731,14514,1746],{},[1981,14516],{},[1612,14518,14520],{"id":14519},"run-your-instagram-post-bot","Run your Instagram post bot",[1558,14522,14523,14524,2851,14526,2855],{},"To test the Instagram bot, you should first disable step 2.9 or delete the test post on Instagram. It's necessary to run the bot while being logged into Instagram, as this will allow the sharing of cookies and enable Axiom to open Instagram in a logged-in state. If you wish to schedule the bot ",[1562,14525,2620],{"href":638},[1562,14527,2854],{"href":1206},[1612,14529,1956],{"id":1955},[1558,14531,1959,14532,1964],{},[1562,14533,1963],{"href":1962},[1612,14535,1398],{"id":1967},[1558,14537,2635,14538,1610],{},[1562,14539,2620],{"href":638},[1718,14541,14542],{},[1721,14543,14544,14554],{},[1724,14545,14546,14548,14550,14551,1610],{},[1593,14547,9076],{},[1981,14549],{},"\nReselect the element in ",[1731,14552,14553],{},"Steps 2.3, 2.4, 2.5, 2.6, 2.7, 2.9 – Click element",[1724,14555,14556,14559,1983,14561,14564],{},[1593,14557,14558],{},"Image does not upload?",[1981,14560],{},[1731,14562,14563],{},"Step 2.6 – Upload a file: Select from computer",", check your folder permissions and the file size.",[1558,14566,2118,14567,2923,14569],{},[1562,14568,2121],{"href":82},[1562,14570,14572],{"href":14571},"\u002Fblog\u002Fautomate-instagram-post","posting to Instagram.",{"title":1636,"searchDepth":1637,"depth":1637,"links":14574},[14575,14576,14577,14578,14579,14580],{"id":2479,"depth":1640,"text":2480},{"id":14356,"depth":1640,"text":14357},{"id":14372,"depth":1640,"text":14373},{"id":14519,"depth":1640,"text":14520},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"Learn how to automate posting to Instagram using a Google Sheet and axiom.ai’s No-code tool. This step-by-step guide shows how to create a bot that fills in Instagram’s post form in the browser, uploads an image, adds a caption, and clicks Share—no API required.",{"logoFile":14583,"read":14584,"video":14585,"type":2143,"format":2144,"intent_type":13095,"intent":2676,"tags":14586,"platfrom":14587,"templateId":6262},"\u002Ftemplates\u002Finstag-logo.png","8 minutes","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F92qIT5U_LWg",[13097,2942],[13099],"\u002Fguides\u002Finstagram-post",{"title":14327,"description":14581},"guides\u002Finstagram-post","Lb9LtZb3_BXc3pC_HFUfFjXQHWqKEbKEPFKmUhjagLE",{"id":14593,"title":14594,"body":14595,"date":2669,"description":14847,"extension":1643,"meta":14848,"navigation":1646,"order":1641,"path":14853,"seo":14854,"stem":14855,"__hash__":14856},"guides\u002Fguides\u002Finstagram-scrape-post-links.md","How to scrape Instagram search for post links",{"type":1555,"value":14596,"toc":14839},[14597,14599,14606,14608,14610,14618,14622,14627,14631,14633,14637,14762,14766,14771,14773,14778,14780,14784,14835],[1617,14598],{},[1558,14600,14601,14602,14605],{},"This template automates ",[1593,14603,14604],{},"\"Instagram search scraping\"",": it takes search terms from a Google Sheet, appends them to Instagram's search URL, loads the search pages in Chrome, scrapes post links, saves them to a Sheet, deletes processed rows, and repeats with new search terms.",[1662,14607],{},[1612,14609,2480],{"id":2479},[1558,14611,1670,14612,2711,14614,14617],{},[1593,14613,1673],{},[1593,14615,14616],{},"\"Instagram search scraper\"",". Set up two tabs in Google Sheets: one for search terms and another for scraped data.",[1612,14619,14621],{"id":14620},"install-the-instagram-search-scraper-bot","Install the Instagram search scraper bot",[1558,14623,14624,14625,1700],{},"To install this Instagram search scraper entry bot click **\"Install template'. If you’re a new user, you’ll have to click ",[1593,14626,1699],{},[1558,14628,1703,14629,1610],{},[1593,14630,1706],{},[1558,14632,1709],{},[1612,14634,14636],{"id":14635},"configure-your-instagram-search-scraper-in-five-easy-steps","Configure your Instagram search scraper in five easy steps",[1718,14638,14639],{},[1721,14640,14641,14657],{},[1724,14642,14643,1729,14645,14647],{},[1593,14644,1728],{},[1731,14646,1733],{},[1721,14648,14649,14653],{},[1724,14650,14651,1741],{},[1731,14652,1740],{},[1724,14654,14655,14394],{},[1731,14656,1746],{},[1724,14658,14659,1729,14661,14663],{},[1593,14660,1752],{},[1731,14662,667],{},[1721,14664,14665,14687,14705,14730,14746],{},[1724,14666,14667,1729,14669,14671],{},[1593,14668,1761],{},[1731,14670,1043],{},[1721,14672,14673],{},[1724,14674,14675,1771,14677,1775,14679,14681,14682,14684],{},[1731,14676,1770],{},[1731,14678,1833],{},[1731,14680,1866],{},", and append to the end of the URL:",[1981,14683],{},[1731,14685,14686],{},"https:\u002F\u002Fwww.instagram.com\u002Fexplore\u002Fsearch\u002Fkeyword\u002F?q=",[1724,14688,14689,1729,14691,14693],{},[1593,14690,1784],{},[1731,14692,1787],{},[1721,14694,14695],{},[1724,14696,14697,14698,8574,14700,14702],{},"Preconfigured with ",[1562,14699,2017],{"href":1383},[1981,14701],{},[1731,14703,14704],{},"main a[role=\"link\"]",[1724,14706,14707,1729,14709,14711],{},[1593,14708,1809],{},[1731,14710,1855],{},[1721,14712,14713,14722],{},[1724,14714,14715,1771,14717,14719,14720],{},[1731,14716,1862],{},[1731,14718,1833],{},", select post URL in ",[1731,14721,7880],{},[1724,14723,14724,1771,14726,1775,14728],{},[1731,14725,1872],{},[1731,14727,1833],{},[1731,14729,1837],{},[1724,14731,14732,1729,14734,14736],{},[1593,14733,1852],{},[1731,14735,4914],{},[1721,14737,14738,14742],{},[1724,14739,14740,1741],{},[1731,14741,1740],{},[1724,14743,14744,14394],{},[1731,14745,1746],{},[1724,14747,14748,1729,14750,14752],{},[1593,14749,1880],{},[1731,14751,1920],{},[1721,14753,14754,14758],{},[1724,14755,14756,1741],{},[1731,14757,1740],{},[1724,14759,14760,14394],{},[1731,14761,1746],{},[1612,14763,14765],{"id":14764},"run-your-instagram-search-scraper","Run your Instagram search scraper",[1558,14767,14768,14769,1610],{},"To test this Instagram scraper, initiate the bot with the desktop runner and let it run a few loops. Then, stop the bot and review the data in the linked Google Sheet for accuracy and completeness. If you wish to schedule the bot ",[1562,14770,2620],{"href":638},[1612,14772,1956],{"id":1955},[1558,14774,1959,14775,1964],{},[1562,14776,1963],{"href":14777},"recipes",[1612,14779,1398],{"id":1967},[1558,14781,2635,14782,1610],{},[1562,14783,2620],{"href":638},[1718,14785,14786],{},[1721,14787,14788,14804,14821],{},[1724,14789,14790,14793,1983,14795,14798,14799,14801],{},[1593,14791,14792],{},"Page not loading?",[1981,14794],{},[1731,14796,14797],{},"Step 2.1 – Go to page",", check if the token is inserted. The URL should look like:",[1981,14800],{},[1731,14802,14803],{},"https:\u002F\u002Fwww.instagram.com\u002Fexplore\u002Fsearch\u002Fkeyword\u002F?q=[google-sheet-data]",[1724,14805,14806,14809,1983,14811,14813,14814,14816,14817,14819],{},[1593,14807,14808],{},"No data?",[1981,14810],{},[1731,14812,2005],{},", check the ",[1562,14815,2017],{"href":1383}," works:",[1981,14818],{},[1731,14820,14704],{},[1724,14822,14823,14826,1983,14828,14831,14832,14834],{},[1593,14824,14825],{},"No data being written?",[1981,14827],{},[1731,14829,14830],{},"Step 2.4 – Write data to a Google Sheet",", ensure ",[1731,14833,1903],{}," is selected under \"Data\".",[1558,14836,2118,14837],{},[1562,14838,2121],{"href":82},{"title":1636,"searchDepth":1637,"depth":1637,"links":14840},[14841,14842,14843,14844,14845,14846],{"id":2479,"depth":1640,"text":2480},{"id":14620,"depth":1640,"text":14621},{"id":14635,"depth":1640,"text":14636},{"id":14764,"depth":1640,"text":14765},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"This guide shows how to automate scraping post links from Instagram search pages using Google Sheets and axiom.ai. It loops through search terms, loads results in Chrome, scrapes post links with a custom selector, writes them to a Sheet, and removes processed rows—no API required.",{"logoFile":14583,"read":14584,"video":14849,"templateId":6383,"type":2143,"format":2144,"intent_type":13095,"intent":5626,"tags":14850,"platfrom":14852},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FHkhXv-wUvKE",[13097,14851,2149],"posts",[13099],"\u002Fguides\u002Finstagram-scrape-post-links",{"title":14594,"description":14847},"guides\u002Finstagram-scrape-post-links","_sweMlt46VfRn-OGfgBVsxRDImdaLBUdpB11JHixe0Y",{"id":14858,"title":14859,"body":14860,"date":2669,"description":15095,"extension":1643,"meta":15096,"navigation":1646,"order":1641,"path":15102,"seo":15103,"stem":15104,"__hash__":15105},"guides\u002Fguides\u002Finstagram-scrape-users-from-hashtag.md","How to scrape Instagram hashtag pages for handles and post links",{"type":1555,"value":14861,"toc":15087},[14862,14864,14871,14873,14875,14881,14885,14892,14896,14898,14902,14986,14990,15003,15005,15009,15011,15015,15083],[1617,14863],{},[1558,14865,14866,14867,14870],{},"This template scrapes ",[1593,14868,14869],{},"\"Instagram hashtag pages using a bot\"",". The bot opens a hashtag page in Chrome, collects links to all posts, and then extracts each user's handle and profile link. It records the post URLs, handles, and profile URLs into a Google Sheet",[1662,14872],{},[1612,14874,2480],{"id":2479},[1558,14876,14877,14878,1610],{},"Create a new Google Sheet. You can do this in your Chrome browser by entering the shortcut **\"sheet.new', assuming you already have an account. Name your sheet something like ",[1593,14879,14880],{},"\"Instagram hashtag data\"",[1612,14882,14884],{"id":14883},"install-the-instagram-hashtag-bot","Install the Instagram hashtag bot",[1558,14886,14887,14888,1696,14890,1700],{},"To install this Instagram handle scraper entry bot click ",[1593,14889,1695],{},[1593,14891,1699],{},[1558,14893,1703,14894,1610],{},[1593,14895,1706],{},[1558,14897,1709],{},[1612,14899,14901],{"id":14900},"configure-your-instagram-hashtag-bot-in-two-easy-steps","Configure your Instagram hashtag bot in two easy steps",[1718,14903,14904,14984],{},[1721,14905,14906,14929],{},[1724,14907,14908,1729,14910,14913],{},[1593,14909,1728],{},[1731,14911,14912],{},"Get a list of links to pages from a URL",[1721,14914,14915,14923],{},[1724,14916,14917,14919,14920],{},[1731,14918,5526],{},": Insert an Instagram hashtag URL, e.g. ",[1731,14921,14922],{},"instagram.com\u002Fexplore\u002Ftags\u002Fbeach\u002F",[1724,14924,14925,14928],{},[1731,14926,14927],{},"Max results",": Set the number of posts to scrape",[1724,14930,14931,1729,14933,14935],{},[1593,14932,1752],{},[1731,14934,667],{},[1721,14936,14937,14943,14967],{},[1724,14938,14939,1729,14941,11867],{},[1593,14940,1761],{},[1731,14942,1043],{},[1724,14944,14945,1729,14947,14949],{},[1593,14946,1784],{},[1731,14948,667],{},[1721,14950,14951,14959],{},[1724,14952,14953,1729,14956,11867],{},[1593,14954,14955],{},"2.2.1",[1731,14957,14958],{},"Current URL",[1724,14960,14961,1729,14964,11867],{},[1593,14962,14963],{},"2.2.2",[1731,14965,14966],{},"Get a list of links to pages from bot's current page",[1724,14968,14969,1729,14971,14973],{},[1593,14970,1880],{},[1731,14972,4914],{},[1721,14974,14975,14979],{},[1724,14976,14977,2751],{},[1731,14978,1740],{},[1724,14980,14981,14983],{},[1731,14982,1746],{},": Set the sheet name",[1558,14985,2610],{},[1612,14987,14989],{"id":14988},"run-your-instagram-hashtag-bot","Run your Instagram hashtag bot",[1558,14991,14992,14993,14996,14997,15000,15001,1610],{},"To test the Instagram hashtag bot in ",[1593,14994,14995],{},"\"Step 1\""," adjust the ",[1593,14998,14999],{},"\"max results\""," to a low number, initiate the bot with the desktop runner and let it run a few loops. Then, stop the bot and review the data in the linked Google Sheet. If you wish to schedule the bot ",[1562,15002,2620],{"href":638},[1612,15004,1956],{"id":1955},[1558,15006,1959,15007,1964],{},[1562,15008,1963],{"href":1962},[1612,15010,1398],{"id":1967},[1558,15012,2635,15013,1610],{},[1562,15014,2620],{"href":638},[1718,15016,15017],{},[1721,15018,15019,15030,15041,15055,15069],{},[1724,15020,15021,15024,15026,15027,1610],{},[1593,15022,15023],{},"Not loading Instagram?",[1981,15025],{},"\nMake sure you have added an Instagram hashtag URL in ",[1731,15028,15029],{},"Step 1.0 – Get a list of links to pages from a URL",[1724,15031,15032,15035,15037,15038,15040],{},[1593,15033,15034],{},"Not scraping all posts?",[1981,15036],{},"\nIn the same step, check the ",[1731,15039,14927],{}," setting.",[1724,15042,15043,15046,1983,15048,3106,15050,2101,15052,1610],{},[1593,15044,15045],{},"Not looping through scraped links?",[1981,15047],{},[1731,15049,14797],{},[1731,15051,2100],{},[1731,15053,15054],{},"[scraped-link-data]",[1724,15056,15057,15060,1983,15062,15065,15066,15068],{},[1593,15058,15059],{},"Selectors not working?",[1981,15061],{},[1731,15063,15064],{},"Step 2.2.2 – Get a list of links to pages from bot's current page",", try reselecting or use ",[1562,15067,9082],{"href":1383}," if needed.",[1724,15070,15071,15073,1983,15075,14831,15078,2101,15080,1610],{},[1593,15072,2094],{},[1981,15074],{},[1731,15076,15077],{},"Step 2.5 – Write data to a Google Sheet",[1731,15079,2100],{},[1731,15081,15082],{},"[all-interaction-data_1]",[1558,15084,2118,15085],{},[1562,15086,2121],{"href":82},{"title":1636,"searchDepth":1637,"depth":1637,"links":15088},[15089,15090,15091,15092,15093,15094],{"id":2479,"depth":1640,"text":2480},{"id":14883,"depth":1640,"text":14884},{"id":14900,"depth":1640,"text":14901},{"id":14988,"depth":1640,"text":14989},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"This guide explains how to scrape Instagram hashtag pages using axiom.ai. Learn how to collect post links, extract handles and profile URLs, and write the data to a Google Sheet—no API needed, all done in Chrome using a point-and-click bot.",{"logoFile":14583,"read":14584,"video":15097,"templateId":6302,"type":2143,"format":2144,"intent_type":13095,"intent":5626,"tags":15098,"platfrom":15101},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FhNeBSKoEaGo",[13097,15099,15100,2149],"users","hashtags",[13099],"\u002Fguides\u002Finstagram-scrape-users-from-hashtag",{"title":14859,"description":15095},"guides\u002Finstagram-scrape-users-from-hashtag","eRDON-ATQSu5ah1b3SZ78L5IdCy_T8ZVHm6QCsmAi0M",{"id":15107,"title":15108,"body":15109,"date":15300,"description":15115,"extension":1643,"meta":15301,"navigation":1646,"order":1641,"path":15306,"seo":15307,"stem":15308,"__hash__":15309},"guides\u002Fguides\u002Finteracting-with-button-list.md","How to loop through a list of buttons",{"type":1555,"value":15110,"toc":15291},[15111,15113,15116,15119,15123,15125,15133,15136,15140,15142,15149,15153,15163,15188,15192,15202,15225,15229,15231,15234,15256,15260,15262,15273,15280],[1617,15112],{},[1558,15114,15115],{},"Learn how to loop through buttons on the same web page using custom CSS selectors.",[1558,15117,15118],{},"This is best used if you have a list that contains buttons, such as downloading invoices from a list.",[1612,15120,15122],{"id":15121},"finding-the-right-selector","Finding the right selector",[1617,15124],{},[1558,15126,15127,15128,15132],{},"Finding the right selector is important to get started. Start by using our blog ",[1562,15129,15131],{"href":15130},"..\u002Fblog\u002Fbest-custom-css-selectors-for-web-scraping","The Best Custom CSS Selectors to Use for Automations"," to identify a suitable selector for the button.",[1558,15134,15135],{},"Once you have a selector selected, you’ll need to add them into a Google Sheet.",[1612,15137,15139],{"id":15138},"building-the-selectors","Building the selectors",[1617,15141],{},[1558,15143,15144,15145,15148],{},"For this example, we are going to use the following button selector, this is the same selector for all buttons within the list: ",[1731,15146,15147],{},"button.download",". When querying this selector this will return a list of elements that match this CSS selector.",[2266,15150,15152],{"id":15151},"method-1-nth-child","Method 1: nth-child()",[1558,15154,6669,15155,15158,15159,15162],{},[1731,15156,15157],{},"nth-child()"," method exists within CSS to allow you to select an element based on it’s position within the list of elements matching that selector. For example, ",[1731,15160,15161],{},"button.download:nth-child(1)"," will select the element at position 1. Your list would look something like this:",[8679,15164,15165,15172],{},[8682,15166,15167],{},[8685,15168,15169],{},[8688,15170,15171],{},"Selector",[8695,15173,15174,15179,15183],{},[8685,15175,15176],{},[8700,15177,15178],{},"button.download:nth-child(0)",[8685,15180,15181],{},[8700,15182,15161],{},[8685,15184,15185],{},[8700,15186,15187],{},"etc...",[2266,15189,15191],{"id":15190},"method-2-unique-selectors","Method 2: unique selectors",[1558,15193,15194,15195,1564,15198,15201],{},"Some buttons will have similar but unique selectors, for example, ",[1731,15196,15197],{},"button.download-1",[1731,15199,15200],{},"button.download–2"," and so on. This is the easiest method of identifying the elements on the page. Your list would look something like this:",[8679,15203,15204,15210],{},[8682,15205,15206],{},[8685,15207,15208],{},[8688,15209,15171],{},[8695,15211,15212,15216,15221],{},[8685,15213,15214],{},[8700,15215,15197],{},[8685,15217,15218],{},[8700,15219,15220],{},"button.download-2",[8685,15222,15223],{},[8700,15224,15187],{},[1612,15226,15228],{"id":15227},"set-up-your-google-sheet-or-excel-sheet","Set up your Google Sheet or Excel Sheet",[1617,15230],{},[1558,15232,15233],{},"The selectors will need to be entered into a Google Sheet\u002FExcel Sheet manually - this will allow the selectors to be read into your automation and then be looped through. To do this, add the selectors to a single row within within your sheet, for example:",[8679,15235,15236,15242],{},[8682,15237,15238],{},[8685,15239,15240],{},[8688,15241,15171],{},[8695,15243,15244,15248,15252],{},[8685,15245,15246],{},[8700,15247,15178],{},[8685,15249,15250],{},[8700,15251,15161],{},[8685,15253,15254],{},[8700,15255,15187],{},[1612,15257,15259],{"id":15258},"set-up-your-automation","Set up your automation",[1617,15261],{},[1558,15263,15264,15265,4902,15268,15272],{},"Insert a ",[1562,15266,1733],{"href":15267},"..\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-data-from-a-google-sheet-step",[1562,15269,15271],{"href":15270},"..\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fread-data-from-excel","Read data from Excel"," step into your automation and follow the instructions to set this to read the data from the sheet you set up above.",[1558,15274,15275,15276,15279],{},"Next, insert a ",[1562,15277,667],{"href":15278},"..\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Floop"," step and set the data that you read into the automation using the read step above as the data to loop through. Any steps included in this step will have access to each row of data as it iterates through the data from your spreadsheet.",[1558,15281,15282,15283,15286,15287,13812],{},"Once you are ready to click the button, add a ",[1562,15284,5243],{"href":15285},"..\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fsteps\u002Fclick-element"," step. Click \"Select\", then “Custom” and then “Set selector from data” - select the data from the loop that includes your selector. Learn more in our ",[1562,15288,15290],{"href":15289},"..\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Fcustom-css-selectors","Custom selector",{"title":1636,"searchDepth":1637,"depth":1637,"links":15292},[15293,15294,15298,15299],{"id":15121,"depth":1640,"text":15122},{"id":15138,"depth":1640,"text":15139,"children":15295},[15296,15297],{"id":15151,"depth":1637,"text":15152},{"id":15190,"depth":1637,"text":15191},{"id":15227,"depth":1640,"text":15228},{"id":15258,"depth":1640,"text":15259},"2025-08-28",{"pinned":1646,"read":2672,"level":2140,"templateId":1640,"type":2143,"format":1718,"intent_type":2145,"intent":2676,"tags":15302,"platfrom":15305},[8875,15303,15304],"click","multi click",[3380],"\u002Fguides\u002Finteracting-with-button-list",{"title":15108,"description":15115},"guides\u002Finteracting-with-button-list","TTpB56u80zcEVwpSWyrYwTBAnv14ThaFSDfEFuzF4ek",{"id":15311,"title":15312,"body":15313,"date":1641,"description":15796,"extension":1643,"meta":15797,"navigation":1646,"order":1641,"path":15804,"seo":15805,"stem":15806,"__hash__":15807},"guides\u002Fguides\u002Fjira-ticket-triage.md","How to automate Jira ticket triage with AI (Updated 2026)",{"type":1555,"value":15314,"toc":15788},[15315,15317,15320,15323,15326,15333,15337,15339,15351,15354,15358,15360,15372,15375,15386,15389,15393,15395,15412,15415,15419,15421,15424,15751,15755,15759,15761,15764,15767,15781,15783,15785],[1617,15316],{},[1558,15318,15319],{},"At axiom.ai, as support volume grew, opening and reviewing each ticket just to check whether it belonged in our queue quickly became a bottleneck. From time to time, we’d also see requests from customers trying to reach a completely different company — tickets that were never meant for us at all.",[1558,15321,15322],{},"To keep our time focused on helping customers, rather than sorting, filtering, and closing irrelevant tickets, we built this automation. In this guide, we’ll show how it works and how you can apply the same approach to your own support workflow.",[1558,15324,15325],{},"This guide walks through a straightforward Axiom automation that reviews Jira tickets, classifies them, and performs actions depending on the category.",[1558,15327,15328,15329,15332],{},"As an example, we’ll keep the classification simple: ",[1593,15330,15331],{},"spam vs. everything else",". You can extend the same pattern to classify by any other criteria which works for your team.",[1612,15334,15336],{"id":15335},"install-axiom-in-your-chrome-browser","Install Axiom in your Chrome browser",[1617,15338],{},[1558,15340,15341,15342,15344,1610],{},"If you haven’t already installed Axiom or created an account, go to the Chrome Web Store and",[1981,15343],{},[1593,15345,15346],{},[1562,15347,15350],{"href":15348,"rel":15349},"https:\u002F\u002Fchrome.google.com\u002Fwebstore\u002Fdetail\u002Faxiom-browser-automation\u002Fcpgamigjcbffkaiciiepndmonbfdimbb?hl=en-GB",[1633],"install Axiom",[1558,15352,15353],{},"New accounts include 2 hours of free runtime, which is enough to build and test this automation a few times.",[1612,15355,15357],{"id":15356},"set-up-your-google-sheet","Set up your Google Sheet",[1617,15359],{},[1558,15361,15362,15363,15366,15367,1575,15369,1610],{},"Create a new Google Sheet and name it ",[1593,15364,15365],{},"Triage"," and add two sheets within it ",[2434,15368,15365],{},[2434,15370,15371],{},"Closed",[1558,15373,15374],{},"This sheet will be used to:",[1721,15376,15377,15380,15383],{},[1724,15378,15379],{},"temporarily store Jira ticket links",[1724,15381,15382],{},"log classification results",[1724,15384,15385],{},"keep a record of which tickets were processed",[1558,15387,15388],{},"You don’t need to add any data manually as Axiom will populate the sheet during the run.",[1612,15390,15392],{"id":15391},"open-jira-and-create-a-new-automation","Open Jira and create a new automation",[1617,15394],{},[1718,15396,15397],{},[2182,15398,15399,15402,15405],{},[1724,15400,15401],{},"Open Chrome and log in to your Jira support portal (the page that lists incoming tickets).",[1724,15403,15404],{},"Open Axiom.",[1724,15406,15407,15408,15411],{},"Click ",[1593,15409,15410],{},"+ New Automation"," to start building from scratch.",[1558,15413,15414],{},"You’ll now begin adding steps using the Step Finder.",[1612,15416,15418],{"id":15417},"lets-build-the-jira-ticket-triage-automation","Let’s build the Jira ticket triage automation",[1617,15420],{},[1558,15422,15423],{},"This section walks through how to build the automation step by step in Axiom. Follow along below to understand exactly how each step works and how the pieces fit together.",[1718,15425,15426],{},[1721,15427,15428,15449,15462,15485,15510,15530,15556],{},[1724,15429,15430,1729,15432,15435],{},[1593,15431,1986],{},[1731,15433,15434],{},"Clear data from a Google Sheet",[1721,15436,15437,15444],{},[1724,15438,15439,15441,15442,11052],{},[1593,15440,1740],{}," — Select the ",[1731,15443,15365],{},[1724,15445,15446,15448],{},[1593,15447,12517],{}," — Clears old results to ensure each run starts fresh.",[1724,15450,15451,1729,15453,15455],{},[1593,15452,2535],{},[1731,15454,9138],{},[1721,15456,15457],{},[1724,15458,15459,15461],{},[1593,15460,12517],{}," — Creates a timestamp to log when each run occurred.",[1724,15463,15464,1729,15466,15468],{},[1593,15465,10601],{},[1731,15467,14912],{},[1721,15469,15470,15475,15480],{},[1724,15471,15472,15474],{},[1593,15473,5526],{}," — Set to your internal Jira support portal page.",[1724,15476,15477,15479],{},[1593,15478,1794],{}," — Point and click the column with ticket\u002Fwork numbers.",[1724,15481,15482,15484],{},[1593,15483,12517],{}," — Scrapes individual ticket links for triage.",[1724,15486,15487,1729,15490,15492],{},[1593,15488,15489],{},"Step 4.0",[1731,15491,4914],{},[1721,15493,15494,15500,15505],{},[1724,15495,15496,15441,15498,11052],{},[1593,15497,1740],{},[1731,15499,15365],{},[1724,15501,15502,15504],{},[1593,15503,1899],{}," — Output from step 3.0.",[1724,15506,15507,15509],{},[1593,15508,12517],{}," — Stores ticket links for staging and review.",[1724,15511,15512,1729,15515,15517],{},[1593,15513,15514],{},"Step 5.0",[1731,15516,1733],{},[1721,15518,15519,15525],{},[1724,15520,15521,15441,15523,11052],{},[1593,15522,1740],{},[1731,15524,15365],{},[1724,15526,15527,15529],{},[1593,15528,12517],{}," — Loads ticket links back into the bot to loop through.",[1724,15531,15532,1729,15535,15538],{},[1593,15533,15534],{},"Step 6.0",[1731,15536,15537],{},"Remove results that contain certain words",[1721,15539,15540,15545,15551],{},[1724,15541,15542,15544],{},[1593,15543,2100],{}," — Select the output from step 5.0.",[1724,15546,15547,15550],{},[1593,15548,15549],{},"Words to match"," — Add terms to exclude non-ticket URLs.",[1724,15552,15553,15555],{},[1593,15554,12517],{}," — Filters out irrelevant links.",[1724,15557,15558,1729,15561,15563,15576],{},[1593,15559,15560],{},"Step 7.0",[1731,15562,667],{},[1721,15564,15565,15570],{},[1724,15566,15567,15569],{},[1593,15568,2100],{}," — Select the output from step 6.0.",[1724,15571,15572,15575],{},[1593,15573,15574],{},"Loop through all"," — Enable this to process every ticket.",[1721,15577,15578,15597,15617,15648],{},[1724,15579,15580,1729,15583,15585],{},[1593,15581,15582],{},"Step 7.1",[1731,15584,1043],{},[1721,15586,15587,15592],{},[1724,15588,15589,15591],{},[1593,15590,1770],{}," — Insert ticket link from loop data.",[1724,15593,15594,15596],{},[1593,15595,12517],{}," — Opens each Jira ticket one by one.",[1724,15598,15599,1729,15602,15605],{},[1593,15600,15601],{},"Step 7.2",[1731,15603,15604],{},"Get data from bot’s current page",[1721,15606,15607,15612],{},[1724,15608,15609,15611],{},[1593,15610,1794],{}," — Point and click content like description or request.",[1724,15613,15614,15616],{},[1593,15615,12517],{}," — Extracts the content to classify.",[1724,15618,15619,1729,15622,15624],{},[1593,15620,15621],{},"Step 7.3",[1731,15623,1812],{},[1721,15625,15626,15632,15643],{},[1724,15627,15628,15631],{},[1593,15629,15630],{},"Input"," — Use scraped content from step 7.2.",[1724,15633,15634,15636,15637,4902,15640,1610],{},[1593,15635,1825],{}," — Classify as simple output like ",[1731,15638,15639],{},"SPAM",[1731,15641,15642],{},"VALID",[1724,15644,15645,15647],{},[1593,15646,12517],{}," — Generates a tag or label for each ticket.",[1724,15649,15650,1729,15653,15656,15681],{},[1593,15651,15652],{},"Step 7.4",[1731,15654,15655],{},"If condition",[1721,15657,15658,15666,15676],{},[1724,15659,15660,15662,15663],{},[1593,15661,7873],{}," — ",[1731,15664,15665],{},"chatgpt-output",[1724,15667,15668,15671,15672,15675],{},[1593,15669,15670],{},"Condition"," — When any of ",[1731,15673,15674],{},"\"SPAM\""," is present",[1724,15677,15678,15680],{},[1593,15679,12517],{}," — Filters specific tickets for further action.",[1721,15682,15683,15707,15724],{},[1724,15684,15685,1729,15688,15690],{},[1593,15686,15687],{},"Step 7.4.1",[1731,15689,12404],{},[1721,15691,15692,15697,15702],{},[1724,15693,15694,15696],{},[1593,15695,1862],{}," — Ticket URL",[1724,15698,15699,15701],{},[1593,15700,1872],{}," — Classification result, timestamp",[1724,15703,15704,15706],{},[1593,15705,12517],{}," — Combines key info for writing.",[1724,15708,15709,1729,15712,1729,15714,15717],{},[1593,15710,15711],{},"Step 7.4.2",[1731,15713,12404],{},[2434,15715,15716],{},"(optional)",[1721,15718,15719],{},[1724,15720,15721,15723],{},[1593,15722,12517],{}," — Combine extra fields or restructure output if needed.",[1724,15725,15726,1729,15729,15731],{},[1593,15727,15728],{},"Step 7.4.3",[1731,15730,4914],{},[1721,15732,15733,15739,15744],{},[1724,15734,15735,15441,15737,11052],{},[1593,15736,1740],{},[1731,15738,15371],{},[1724,15740,15741,15743],{},[1593,15742,1899],{}," — Combined output.",[1724,15745,15746,15748,15749,1610],{},[1593,15747,12517],{}," — Logs all tickets classified as ",[1731,15750,15674],{},[2219,15752],{"src":15753,"alt":15754},"\u002Fguides\u002Ftriage_bot.png","Jira triage axiom.ai bot",[1612,15756,15758],{"id":15757},"testing-the-automation","Testing the automation",[1617,15760],{},[1558,15762,15763],{},"Before running the automation at scale, it’s a good idea to test it with a small number of tickets.",[1558,15765,15766],{},"Run the automation and confirm that:",[1721,15768,15769,15772,15775,15778],{},[1724,15770,15771],{},"Tickets are opened correctly",[1724,15773,15774],{},"Content is extracted as expected",[1724,15776,15777],{},"ChatGPT returns the intended labels",[1724,15779,15780],{},"Results are written back to the sheet",[1612,15782,2423],{"id":2422},[1617,15784],{},[1558,15786,15787],{},"This automation provides a clear and maintainable way to triage Jira tickets automatically. While the example focuses on identifying spam-related tickets, the same structure can be extended to handle more detailed classifications, prioritisation, or routing logic as your needs evolve.",{"title":1636,"searchDepth":1637,"depth":1637,"links":15789},[15790,15791,15792,15793,15794,15795],{"id":15335,"depth":1640,"text":15336},{"id":15356,"depth":1640,"text":15357},{"id":15391,"depth":1640,"text":15392},{"id":15417,"depth":1640,"text":15418},{"id":15757,"depth":1640,"text":15758},{"id":2422,"depth":1640,"text":2423},"Learn how to automate Jira ticket triage with AI by classifying and processing support tickets automatically using a simple no code browser automation.",{"pinned":1646,"type":2143,"format":1718,"intent_type":13095,"intent":15798,"tags":15799,"platfrom":15802},"Classify or filter data",[2148,15800,15801,2149,2681,2682],"classification","tickets",[15803],"Jira","\u002Fguides\u002Fjira-ticket-triage",{"title":15312,"description":15796},"guides\u002Fjira-ticket-triage","MBeU-mNj1xNknlCgg1uggvsBFhjxc-zcFV5_v6ByUbk",{"id":15809,"title":15810,"body":15811,"date":1641,"description":15944,"extension":1643,"meta":15945,"navigation":1646,"order":1641,"path":12339,"seo":15952,"stem":15953,"__hash__":15954},"guides\u002Fguides\u002Fkeyboard-short-cuts.md","How to use keystrokes as workarounds",{"type":1555,"value":15812,"toc":15938},[15813,15815,15818,15824,15828,15832,15838,15842,15846,15926,15930,15933,15935],[1617,15814],{},[1558,15816,15817],{},"When automating a browser, you may need to use workarounds for issues like being unable to select an element. One category of these workarounds includes keyboard shortcuts or hotkeys. These provide alternative methods for actions typically performed with a mouse, such as cutting, copying, and pasting, commonly executed via keyboard.",[1558,15819,15820,15821,15823],{},"To utilize the power of keyboard shortcuts, you can use the ",[1593,15822,12264],{}," step to record and reuse combinations of hotkeys.",[2219,15825],{"src":15826,"alt":15827},"\u002Fdocs\u002Fguides\u002Fpress-key-guide.jpg","adding a Press key(s) step in axiom.ai builder",[1612,15829,15831],{"id":15830},"how-to-record-keyboard-shortcuts-with-the-keypress-step","How to record keyboard shortcuts with the keypress step",[1558,15833,15834,15835,15837],{},"In the axiom.ai builder, open your automation and navigate to the point where you wish to add a new step. Then, open the step finder, search for, and add the ",[1593,15836,12264],{}," step. Inside the step, Click record, then press the keys you want the bot to press. You can record a sequence of keys. The bot will enter these one by one, except for Ctrl, Alt, or Shift, which will be held down until the end of the sequence.",[2219,15839],{"src":15840,"alt":15841},"\u002Fdocs\u002Fguides\u002Fpress-keys-step.jpg","recording key presses in axiom.ai's builder",[1612,15843,15845],{"id":15844},"examples-of-keyboard-workarounds","Examples of keyboard workarounds",[8679,15847,15848,15857],{},[8682,15849,15850],{},[8685,15851,15852,15855],{},[8688,15853,15854],{},"Keyboard shortcut \u002F hotkey",[8688,15856,8313],{},[8695,15858,15859,15867,15875,15882,15889,15896,15903,15910,15918],{},[8685,15860,15861,15864],{},[8700,15862,15863],{},"Up\u002Fdown arrows",[8700,15865,15866],{},"Scroll a page or a box with scrollbars",[8685,15868,15869,15872],{},[8700,15870,15871],{},"Left\u002Fright arrows",[8700,15873,15874],{},"Move the cursor left or right in an input field",[8685,15876,15877,15879],{},[8700,15878,6959],{},[8700,15880,15881],{},"Tab to move cursor on the page",[8685,15883,15884,15886],{},[8700,15885,6959],{},[8700,15887,15888],{},"Tab between fields in a form",[8685,15890,15891,15893],{},[8700,15892,6959],{},[8700,15894,15895],{},"In pop up windows tab to select elements",[8685,15897,15898,15900],{},[8700,15899,9628],{},[8700,15901,15902],{},"Submit message in a chat interface",[8685,15904,15905,15907],{},[8700,15906,9628],{},[8700,15908,15909],{},"Press a button",[8685,15911,15912,15915],{},[8700,15913,15914],{},"CV+P",[8700,15916,15917],{},"Copy and paste just like a human",[8685,15919,15920,15923],{},[8700,15921,15922],{},"Delete",[8700,15924,15925],{},"Delete values in a text field",[1612,15927,15929],{"id":15928},"ensuring-the-cursor-is-correctly-placed","Ensuring the cursor is correctly placed",[1558,15931,15932],{},"Sometimes, you must position the mouse cursor so the shortcut works effectively. For instance, to scroll within a box with up\u002Fdown arrows, you would use a \"Click element\" step to activate it. Similarly, for an input field, you must ensure the cursor is inside the field by using a \"Click element\" step.",[1612,15934,2423],{"id":2422},[1558,15936,15937],{},"Recording keyboard shortcuts is a valuable workaround in browser automation, helping bypass issues. Correct cursor placement is crucial to ensure correct execution of the recorded shortcuts.",{"title":1636,"searchDepth":1637,"depth":1637,"links":15939},[15940,15941,15942,15943],{"id":15830,"depth":1640,"text":15831},{"id":15844,"depth":1640,"text":15845},{"id":15928,"depth":1640,"text":15929},{"id":2422,"depth":1640,"text":2423},"Learn how to use keyboard shortcuts as workarounds when browser automation gets stuck. This guide shows how to record keystrokes with the “Press key(s)” step and explains where and when to use them to mimic human interaction in tricky scenarios.",{"pinned":1646,"type":2143,"format":1718,"intent_type":2145,"intent":2676,"tags":15946,"platfrom":15951},[8875,15947,2361,15948,15949,15950],"keyboard","workaround","interaction","navigation",[3380],{"title":15810,"description":15944},"guides\u002Fkeyboard-short-cuts","8rNWhOiTy3YrVXsDEMADZckn91IjZ-pwaOWkHtqkKtQ",{"id":15956,"title":15957,"body":15958,"date":1641,"description":16121,"extension":1643,"meta":16122,"navigation":1646,"order":1641,"path":16125,"seo":16126,"stem":16127,"__hash__":16128},"guides\u002Fguides\u002Flangflow.md","How to automate Langflow using an axiom.ai automation",{"type":1555,"value":15959,"toc":16115},[15960,15962,15970,15972,15974,15977,15980,16001,16005,16007,16010,16013,16072,16075,16094,16096,16098,16101,16106,16108,16110,16113],[1617,15961],{},[1558,15963,15964,15969],{},[1562,15965,15968],{"href":15966,"rel":15967},"https:\u002F\u002Flangflow.org",[1633],"Langflow"," is a powerful tool that can be used to bring agents into your workflows. Triggering your workflows using your axiom.ai automations gives you the opportunity to pass additional data in to use within your workflow - such as scrape data or data from Google Sheets.",[1612,15971,2173],{"id":2172},[1617,15973],{},[1558,15975,15976],{},"To get started, we will assume that you have an axiom.ai account, and a Langflow account.",[1558,15978,15979],{},"From axiom.ai, you'll need the following information",[1718,15981,15982],{},[2182,15983,15984,15990,15995],{},[1724,15985,15986,2189,15988,1610],{},[1593,15987,2188],{},[1562,15989,2193],{"href":2192},[1724,15991,15992,15994],{},[1593,15993,2198],{},": The name of the automation to trigger.",[1724,15996,15997,2205,15999,1610],{},[1593,15998,2204],{},[1731,16000,2208],{},[1612,16002,16004],{"id":16003},"triggering-an-axiomai-automation-using-langflow","Triggering an axiom.ai automation using Langflow",[1617,16006],{},[1558,16008,16009],{},"In order to trigger your axiom.ai automation from your workflow, complete your workflow as usual, when you're ready to trigger your automation, continue this guide.",[1558,16011,16012],{},"Within your workflow, search for and add an \"API Request\" component to your workflow. You'll need to configure it as such:",[1718,16014,16015,16039,16062],{},[1721,16016,16017,16026,16033],{},[1724,16018,16019,16022,16023,16025],{},[1593,16020,16021],{},"URLs",": This should be the ",[1593,16024,8613],{}," from above.",[1724,16027,16028,16030,16031,1610],{},[1593,16029,13794],{},": Change to ",[1731,16032,2254],{},[1724,16034,16035,16038],{},[1593,16036,16037],{},"Headers",": Click \"Edit Headers\", click the \"+\" icon and add one property, as follows:",[2346,16040,16042],{"className":9309,"code":16041,"language":4202,"meta":1636,"style":1636},"{\n    \"Content-Type\": \"application\u002Fjson\"\n}\n",[1731,16043,16044,16048,16058],{"__ignoreMap":1636},[2354,16045,16046],{"class":2356,"line":2357},[2354,16047,9317],{"class":2395},[2354,16049,16050,16053,16055],{"class":2356,"line":1640},[2354,16051,16052],{"class":9322},"    \"Content-Type\"",[2354,16054,3617],{"class":2395},[2354,16056,16057],{"class":2364},"\"application\u002Fjson\"\n",[2354,16059,16060],{"class":2356,"line":1637},[2354,16061,4256],{"class":2395},[1721,16063,16064],{},[1724,16065,16066,16069,16070,1610],{},[1593,16067,16068],{},"Body"," - The data that you would like to send your automation, this should consist of a JSON payload. This should be formatted as per our ",[1562,16071,8309],{"href":8308},[1558,16073,16074],{},"To accept this data within your axiom.ai automation, follow the steps below:",[1718,16076,16077],{},[2182,16078,16079,16086],{},[1724,16080,16081,2238,16083,16085],{},[1593,16082,1110],{},[1562,16084,1110],{"href":1111}," step to your automation.",[1724,16087,16088,16090,16091,16093],{},[1593,16089,2247],{},": The \"Test data\" field should be used to replicate the data within the ",[1731,16092,3461],{}," portion of the payload.",[1612,16095,2403],{"id":2402},[1617,16097],{},[1558,16099,16100],{},"Run your workflow to begin testing - a chat window should open to run your workflow. Observe any errors that you see within your work and consult their documentation for more details on resolving the errors.",[1558,16102,16103,16104,4948],{},"If there are any errors on axiom.ai's side, follow the instructions provided or see ",[1562,16105,6487],{"href":1409},[1612,16107,2423],{"id":2422},[1617,16109],{},[1558,16111,16112],{},"Langflow can be a great method of adding additional AI features into your workflows, including connecting data from services from the integration library that Langflow offers. We look forward to hearing about what you create with this!",[2438,16114,9441],{},{"title":1636,"searchDepth":1637,"depth":1637,"links":16116},[16117,16118,16119,16120],{"id":2172,"depth":1640,"text":2173},{"id":16003,"depth":1640,"text":16004},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"Learn how to trigger your Langflow workflows using an axiom.ai automation. This guide walks through how to pass data—like scrape results or values from Google Sheets—into Langflow using API calls.",{"type":2143,"format":1718,"intent_type":2145,"intent":2146,"tags":16123,"platfrom":16124},[2456,2457,2148],[15968],"\u002Fguides\u002Flangflow",{"title":15957,"description":16121},"guides\u002Flangflow","573ouRWJNlUZFbhEfRZVBuQFaXqev58eLhiYe4OnCso",{"id":16130,"title":16131,"body":16132,"date":1641,"description":16209,"extension":1643,"meta":16210,"navigation":1646,"order":1641,"path":16214,"seo":16215,"stem":16216,"__hash__":16217},"guides\u002Fguides\u002Fline-breaks.md","How to insert line breaks in your Insta DM's",{"type":1555,"value":16133,"toc":16205},[16134,16136,16139],[1617,16135],{},[1558,16137,16138],{},"When automating DMs, you cannot simply press \"Return\" in the 'Enter Text' step, as it will trigger the message to send instead of adding a line break. It's the default behaviour of browser and web forms - not an issue with axiom.ai. However, there is a workaround: in the 'Enter Text' step, you can configure a custom line break. This guide will show you how to enable and use this setting in the 'Enter text' step. The guide will assume you have a bot build or use the template to send Insta DMs.",[12764,16140,16141,16145,16151,16197,16200,16202],{},[1612,16142,16144],{"id":16143},"how-to-insert-line-breaks-into-your-dms","How to insert line breaks into your DMs",[1558,16146,16147,16148,16150],{},"To insert the line breaks you need to configure the setting inside the ",[1731,16149,8017],{}," step being used to input your direct message.",[1718,16152,16153],{},[2182,16154,16155,16160,16179],{},[1724,16156,16157,16159],{},[1731,16158,293],{},": Click on the step to expand it.",[1724,16161,16162,16165,16166,15040,16168],{},[1731,16163,16164],{},"Custom line break",": At the bottom of the step, click on the ",[1731,16167,16164],{},[1721,16169,16170],{},[1724,16171,16172,16175,16176,1610],{},[1731,16173,16174],{},"Click \"Record\"",": Record a sequence of characters to use instead of Enter for line breaks. Use something like ",[1731,16177,16178],{},"Shift + Return",[1724,16180,16181,16183,16184],{},[1731,16182,2580],{},": Scroll back to the text input.",[1721,16185,16186,16191],{},[1724,16187,16188,16189,1610],{},"Make sure the text is a single paragraph with no line breaks from hitting ",[1731,16190,9628],{},[1724,16192,16193,16194,16196],{},"Place the cursor where you want your line breaks, then press the recorded key combination (e.g., ",[1731,16195,16178],{},") to insert them.",[1558,16198,16199],{},"Thats it, however I would suggest doing a short test run.",[1612,16201,2423],{"id":2422},[1558,16203,16204],{},"Normal line breaks cannot be used as the defualt browser behaviour \"Return\" submits the DM, so a work around has to be used. Its simple enough and can be found in the Enter text step. The same method will also work for other browser automations that require text entry.",{"title":1636,"searchDepth":1637,"depth":1637,"links":16206},[16207,16208],{"id":16143,"depth":1640,"text":16144},{"id":2422,"depth":1640,"text":2423},"Learn how to insert line breaks in Instagram DMs when using axiom.ai automation. Follow this step-by-step guide to customize the Enter Text step and avoid messages being sent too early. Ideal for no-code users automating Instagram messaging.",{"pinned":1646,"type":2143,"format":1718,"intent_type":2145,"intent":2676,"tags":16211,"platfrom":16213},[8875,16212,2681],"line break",[3380],"\u002Fguides\u002Fline-breaks",{"title":16131,"description":16209},"guides\u002Fline-breaks","0NziLHd2kRss2wNMuUDPXCV08o5uN-qGuPHswGjNXls",{"id":16219,"title":16220,"body":16221,"date":2669,"description":16503,"extension":1643,"meta":16504,"navigation":1646,"order":1641,"path":16511,"seo":16512,"stem":16513,"__hash__":16514},"guides\u002Fguides\u002Flinkedin-sales-navigator-message-leads.md","How to automate messaging leads in LinkedIn Sales Navigator",{"type":1555,"value":16222,"toc":16496},[16223,16225,16232,16234,16238,16241,16245,16252,16256,16258,16262,16407,16411,16414,16416,16420,16492],[1617,16224],{},[1558,16226,16227,16228,16231],{},"The template scrapes a ",[1593,16229,16230],{},"\"Saved list of leads\"",", extracting their profile links and names. It then opens each profile link in Chrome, clicks on the messaging option, and enters a customized message for each lead using their name. This process ensures that a personalized message is sent iteratively to each lead.",[1662,16233],{},[1612,16235,16237],{"id":16236},"get-started-set-up-your-lead-lists-on-sales-navigator","Get started: Set up your Lead lists on Sales Navigator",[1558,16239,16240],{},"Begin by creating and saving your lead list in Sales Navigator.",[1612,16242,16244],{"id":16243},"install-the-linkedin-sales-navigator-messenger-bot","Install the LinkedIn Sales Navigator Messenger bot",[1558,16246,16247,16248,16251],{},"If you're a new user, first click ",[1593,16249,16250],{},"\"Install Chrome Extension\"",", then create a free axiom.ai account to be able to edit the template.",[1558,16253,1703,16254,1610],{},[1593,16255,1706],{},[1558,16257,1709],{},[1612,16259,16261],{"id":16260},"configure-your-linkedin-sales-navigator-messenger-bot-in-four-easy-steps","Configure your LinkedIn Sales Navigator Messenger bot in four easy steps",[1718,16263,16264,16405],{},[1721,16265,16266,16284],{},[1724,16267,16268,1729,16270,16272],{},[1593,16269,1728],{},[1731,16271,14912],{},[1721,16273,16274,16279],{},[1724,16275,16276,16278],{},[1731,16277,5526],{},": Insert your \"Saved list of leads\" URL.",[1724,16280,16281,16283],{},[1731,16282,1800],{},": Controls how many leads you message.",[1724,16285,16286,1729,16288,16290],{},[1593,16287,1752],{},[1731,16289,667],{},[1721,16291,16292,16298,16310,16322,16333,16340,16368,16382,16394],{},[1724,16293,16294,1729,16296,11867],{},[1593,16295,1761],{},[1731,16297,1043],{},[1724,16299,16300,1729,16302,11867,16305],{},[1593,16301,1784],{},[1731,16303,16304],{},"Split a name into columns",[1721,16306,16307],{},[1724,16308,16309],{},"Extracts first name.",[1724,16311,16312,1729,16314,11867,16317],{},[1593,16313,1809],{},[1731,16315,16316],{},"Click Element: Message",[1721,16318,16319],{},[1724,16320,16321],{},"Clicks message button.",[1724,16323,16324,1729,16326,11867,16328],{},[1593,16325,1852],{},[1731,16327,1787],{},[1721,16329,16330],{},[1724,16331,16332],{},"Scrapes to see if \"Subject\" is present in the message form.",[1724,16334,16335,1729,16337,11867],{},[1593,16336,1880],{},[1731,16338,16339],{},"Remove HTML code",[1724,16341,16342,1729,16344,16346,16351],{},[1593,16343,1917],{},[1731,16345,15655],{},[1721,16347,16348],{},[1724,16349,16350],{},"Checks if subject is present. If true, a subject line is entered.",[1721,16352,16353],{},[1724,16354,16355,1729,16358,16361],{},[1593,16356,16357],{},"2.6.1",[1731,16359,16360],{},"Enter Text: Subject (required)",[1721,16362,16363],{},[1724,16364,16365,16367],{},[1731,16366,2580],{},": Enter a subject for your message. This field is required for messages to 2nd degree leads.",[1724,16369,16370,1729,16372,16375],{},[1593,16371,2829],{},[1731,16373,16374],{},"Enter Text: Type your message",[1721,16376,16377],{},[1724,16378,16379,16381],{},[1731,16380,2580],{},": Enter the message to be sent.",[1724,16383,16384,1729,16386,11867,16389],{},[1593,16385,14469],{},[1731,16387,16388],{},"Press Key(s)",[1721,16390,16391],{},[1724,16392,16393],{},"Presses return key to send the message.",[1724,16395,16396,1729,16398,11867,16400],{},[1593,16397,14476],{},[1731,16399,349],{},[1721,16401,16402],{},[1724,16403,16404],{},"Waits for message to send.",[1558,16406,2610],{},[1612,16408,16410],{"id":16409},"run-your-sales-navigator-messenger-bot","Run your Sales Navigator Messenger bot",[1558,16412,16413],{},"To test the Sales Navigator Messenger bot, disable 'Step 2.8: Press Key(s)' to prevent sending messages.",[1612,16415,1398],{"id":1967},[1558,16417,2635,16418,1610],{},[1562,16419,2620],{"href":638},[1718,16421,16422],{},[1721,16423,16424,16438,16448,16460,16470,16481],{},[1724,16425,16426,16429,16431,16432,16435,16436,2855],{},[1593,16427,16428],{},"Not loading the correct page?",[1981,16430],{},"\nCheck that your ",[1593,16433,16434],{},"\"Saved List of Leads\""," URL is correctly inserted in the ",[1731,16437,14912],{},[1724,16439,16440,16443,16445,16446,1610],{},[1593,16441,16442],{},"Want to change how many people you connect with?",[1981,16444],{},"\nIn the same step, adjust ",[1731,16447,14927],{},[1724,16449,16450,16453,2111,16455,16457,16458,2855],{},[1593,16451,16452],{},"Not looping through profiles?",[1981,16454],{},[1731,16456,15054],{}," is inserted and points to the correct column in the ",[1731,16459,1043],{},[1724,16461,16462,16465,16467,16468,2855],{},[1593,16463,16464],{},"Not clicking the Message button?",[1981,16466],{},"\nReselect the element in the ",[1731,16469,8040],{},[1724,16471,16472,16475,1983,16477,16480],{},[1593,16473,16474],{},"Subject line not added during run?",[1981,16476],{},[1731,16478,16479],{},"Step 2.6.1 – Enter Text: Subject",", make sure text is inserted.",[1724,16482,16483,16486,1983,16488,16491],{},[1593,16484,16485],{},"Message not added during run?",[1981,16487],{},[1731,16489,16490],{},"Step 2.7 – Enter Text: Type your message",", check that text is inserted.",[1558,16493,2118,16494],{},[1562,16495,2121],{"href":82},{"title":1636,"searchDepth":1637,"depth":1637,"links":16497},[16498,16499,16500,16501,16502],{"id":16236,"depth":1640,"text":16237},{"id":16243,"depth":1640,"text":16244},{"id":16260,"depth":1640,"text":16261},{"id":16409,"depth":1640,"text":16410},{"id":1967,"depth":1640,"text":1398},"The template scrapes a \"Saved list of leads\", extracting their profile links and names. It then opens each profile link in Chrome, clicks on the messaging option, and enters a customized message for each lead using their name. This process ensures that a personalized message is sent iteratively to each lead.",{"desciription":16505,"logoFile":16506,"read":3151,"video":16507,"templateId":4176,"type":2143,"format":2144,"intent_type":2675,"intent":2676,"tags":16508,"platfrom":16509},"Learn how to automate sending personalized messages to leads in LinkedIn Sales Navigator using a bot. This guide walks through scraping a lead list, opening profiles, and sending messages with custom text using names from the list.","\u002Ftemplates\u002Flinkedin-logo.png","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FSTb1lViIToM",[13097,2680,2679],[16510],"LinkedIn","\u002Fguides\u002Flinkedin-sales-navigator-message-leads",{"title":16220,"description":16503},"guides\u002Flinkedin-sales-navigator-message-leads","uRHRaNvSnfSwOrRB4byxhzP56v_BRTIJkK4ISwCQ8T0",{"id":16516,"title":16517,"body":16518,"date":1641,"description":16802,"extension":1643,"meta":16803,"navigation":1646,"order":1641,"path":16807,"seo":16808,"stem":16809,"__hash__":16810},"guides\u002Fguides\u002Floop-through-links-and-scrape-data.md","Scrape data from a list of links",{"type":1555,"value":16519,"toc":16795},[16520,16522,16531,16537,16543,16547,16550,16579,16583,16586,16618,16624,16628,16785,16787,16789],[1617,16521],{},[1558,16523,16524,16525,16527,16528,16530],{},"Learn how to build an automation that allows you to loop through a list of links from a spreadsheet using our ",[1562,16526,759],{"href":760}," integration and then extract data from each page. Get started by adding steps from the [Builder](\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fbuilder and selecting the links using the ",[1562,16529,12907],{"href":1377},".\n::",[1558,16532,16533,16536],{},[2434,16534,16535],{},"Tip:"," We recommend using websites that have an identical structure to ensure that the Selector Tool does not throw any errors, for example, a list of LinkedIn profiles.",[1558,16538,16539,16540,1610],{},"To get started quickly, see our ",[1562,16541,2144],{"href":16542},"\u002Fguides\u002Fweb-scraping-looping-through-pages",[1612,16544,16546],{"id":16545},"building-the-automation","Building the automation",[1558,16548,16549],{},"There are multiple steps used within the automation:",[1718,16551,16552],{},[1721,16553,16554,16558,16562,16566,16570,16574],{},[1724,16555,16556,2855],{},[1562,16557,1733],{"href":1091},[1724,16559,16560,2855],{},[1562,16561,667],{"href":1075},[1724,16563,16564,2855],{},[1562,16565,1043],{"href":1044},[1724,16567,16568,2855],{},[1562,16569,1787],{"href":1040},[1724,16571,16572,2855],{},[1562,16573,4914],{"href":1214},[1724,16575,16576,2855],{},[1562,16577,16578],{"href":976},"Delete row from a Google Sheet",[2266,16580,16582],{"id":16581},"setup","Setup",[1558,16584,16585],{},"Prepare your Google Sheets spreadsheet. Add a single link per row.",[8679,16587,16588,16594],{},[8682,16589,16590],{},[8685,16591,16592],{},[8688,16593,8690],{},[8695,16595,16596,16604,16611],{},[8685,16597,16598],{},[8700,16599,16600],{},[1562,16601,16602],{"href":16602,"rel":16603},"https:\u002F\u002Fexample.com",[1633],[8685,16605,16606],{},[8700,16607,16608],{},[1562,16609,16602],{"href":16602,"rel":16610},[1633],[8685,16612,16613],{},[8700,16614,16615],{},[1562,16616,16602],{"href":16602,"rel":16617},[1633],[1558,16619,16620,16621,16623],{},"Create a new axiom.ai automation by opening the extension and clicking \"+ New automation\". Use the ",[1562,16622,7778],{"href":1361}," to add new steps to your automation.",[2266,16625,16627],{"id":16626},"start-from-blank","Start from blank",[1718,16629,16630],{},[1721,16631,16632,16665],{},[1724,16633,16634,1729,16636,16638],{},[1593,16635,1728],{},[1731,16637,1733],{},[1721,16639,16640,16645,16650,16657],{},[1724,16641,16642,16644],{},[1731,16643,1740],{},": Select the spreadsheet containing your list of links.",[1724,16646,16647,16649],{},[1731,16648,1746],{},": (Optional) Select the sheet within the spreadsheet.",[1724,16651,16652,16654,16655,1610],{},[1731,16653,8769],{},": (Optional) Start cell, e.g. ",[1731,16656,8773],{},[1724,16658,16659,16661,16662,1610],{},[1731,16660,6866],{},": (Optional) End cell, e.g. ",[1731,16663,16664],{},"\"A21\"",[1724,16666,16667,1729,16669,16671,16681],{},[1593,16668,1752],{},[1731,16670,667],{},[1721,16672,16673],{},[1724,16674,16675,1771,16677,1775,16679,1610],{},[1731,16676,2100],{},[1731,16678,1833],{},[1731,16680,1778],{},[1721,16682,16683,16704,16717,16755],{},[1724,16684,16685,1729,16687,16689],{},[1593,16686,1761],{},[1731,16688,1043],{},[1721,16690,16691,16701],{},[1724,16692,16693,1771,16695,16697,16698,16700],{},[1731,16694,1770],{},[1731,16696,1833],{},", select the column in ",[1731,16699,1778],{}," with the links.",[1724,16702,16703],{},"Tip: Click \"Clear all\" to ensure only one column is selected.",[1724,16705,16706,1729,16708,16710],{},[1593,16707,1784],{},[1731,16709,1787],{},[1721,16711,16712],{},[1724,16713,16714,16716],{},[1731,16715,1794],{},": Use the selector tool to select the data to scrape from the page.",[1724,16718,16719,1729,16721,16723],{},[1593,16720,1809],{},[1731,16722,4914],{},[1721,16724,16725,16730,16735,16742],{},[1724,16726,16727,16729],{},[1731,16728,1740],{},": Select the spreadsheet to write to.",[1724,16731,16732,16734],{},[1731,16733,1746],{},": (Optional) Select the sheet.",[1724,16736,16737,1900,16739,1610],{},[1731,16738,1899],{},[1731,16740,16741],{},"scraped-data",[1724,16743,16744,16747,16748,16750,16751,16754],{},[1731,16745,16746],{},"Write options",": Choose ",[1731,16749,7610],{}," to append, or ",[1731,16752,16753],{},"\"Clear data before writing\""," to overwrite.",[1724,16756,16757,1729,16759,16761,16762],{},[1593,16758,1852],{},[1731,16760,1920],{}," (optional)",[1721,16763,16764,16769,16773,16779],{},[1724,16765,16766,16768],{},[1731,16767,1740],{},": Select the spreadsheet.",[1724,16770,16771,16734],{},[1731,16772,1746],{},[1724,16774,16775,1801,16777,1610],{},[1731,16776,13055],{},[1731,16778,1804],{},[1724,16780,16781,1801,16783,1610],{},[1731,16782,13063],{},[1731,16784,1804],{},[1612,16786,2423],{"id":2422},[1617,16788],{},[1558,16790,16791,16792,16794],{},"This design pattern is best suited to web pages that share an identical structure, an ecommerce product listing or social media profile page, for example. Combine with the ",[1562,16793,9967],{"href":9964}," guide to quickly get started.",{"title":1636,"searchDepth":1637,"depth":1637,"links":16796},[16797,16801],{"id":16545,"depth":1640,"text":16546,"children":16798},[16799,16800],{"id":16581,"depth":1637,"text":16582},{"id":16626,"depth":1637,"text":16627},{"id":2422,"depth":1640,"text":2423},"Learn how to build a no-code web scraper with axiom.ai that loops through a list of links from a Google Sheet, visits each page, extracts data, and writes the results back to your spreadsheet. Ideal for automating data collection from structured pages.",{"type":2143,"format":1718,"intent_type":3377,"intent":5626,"tags":16804,"platfrom":16806},[2149,16805,2682],"links",[3380],"\u002Fguides\u002Floop-through-links-and-scrape-data",{"title":16517,"description":16802},"guides\u002Floop-through-links-and-scrape-data","ZH_UpSwiGa2aHsFuSyXc8sYL56FFthH-l4_qHqELU3E",{"id":16812,"title":16813,"body":16814,"date":1641,"description":17388,"extension":1643,"meta":17389,"navigation":1646,"order":1641,"path":17392,"seo":17393,"stem":17394,"__hash__":17395},"guides\u002Fguides\u002Fmagnet.md","How to download keyword data from Magnet into a Google Sheet",{"type":1555,"value":16815,"toc":17379},[16816,16818,16821,16826,16829,16832,16838,16840,16842,16853,16877,16881,16883,16891,16899,17226,17229,17233,17237,17239,17253,17257,17261,17287,17289,17291,17299,17328,17332,17338,17340,17342,17359,17367,17369],[1617,16817],{},[1558,16819,16820],{},"Magnet is a keyword research tool from Helium10, specifically designed for Amazon sellers. It helps users find high-traffic, relevant keywords to optimize product listings, PPC campaigns, and overall Amazon SEO strategy.",[2219,16822],{"src":16823,"className":16824,"alt":16825},"\u002Fdocs\u002Fguides\u002Fmagnet-screen-shot.webp",[4990],"Atuomate data entry into the Magnet search field.",[1558,16827,16828],{},"In this guide, you'll learn how to use a bot to load the Magnet homepage, automate the entry of search terms to find keyword suggestions, and click \"Get Keywords.\" The bot will then scrape the results and extract them into a Google Sheet.",[1558,16830,16831],{},"For this guide, we'll focus on Simple Search Mode, but the same principles apply to automating an Advanced Search.",[1558,16833,6772,16834,4902,16836],{},[1562,16835,5001],{"href":5000},[1562,16837,5565],{"href":5004},[1612,16839,5008],{"id":2172},[1617,16841],{},[1558,16843,6785,16844,6788,16846,16849,16850,1610],{},[1593,16845,5517],{},[1593,16847,16848],{},"search terms"," and another to store ",[1593,16851,16852],{},"extracted data",[1718,16854,16855],{},[2182,16856,16857,16863,16870],{},[1724,16858,16859,6801,16861,6805],{},[1593,16860,5018],{},[1731,16862,6804],{},[1724,16864,16865,5542,16867,16869],{},[1593,16866,5024],{},[1593,16868,16848],{}," into the first tab.",[1724,16871,16872,6820,16874,6824],{},[1593,16873,5030],{},[1593,16875,16876],{},"\"data\"",[1612,16878,16880],{"id":16879},"how-to-automate-extracting-keywords-from-magnet","How to automate extracting keywords from Magnet",[1617,16882],{},[1558,16884,5038,16885,5042,16887,5046,16889,5050],{},[1593,16886,5041],{},[1593,16888,5045],{},[1593,16890,5049],{},[1558,16892,5053,16893,16896,16897],{},[1562,16894,2144],{"href":16895,"download":1646},"\u002Fdocs\u002Fguides\u002Ftemplates\u002Faxiom_magent.json"," we created for this keyword scraper. Click to learn how to ",[1562,16898,5060],{"href":849},[1718,16900,16901],{},[2182,16902,16903,16923,16942,16964,16997,17025,17062,17084,17145,17189],{},[1724,16904,9925,16905,16908,16909],{},[1593,16906,16907],{},"'Read data from a Google Sheet'"," step and configure.",[2182,16910,16911,16917],{},[1724,16912,16913,16916],{},[1593,16914,16915],{},"Spreadsheet:"," Search for and add the Google Sheet you created.",[1724,16918,16919,16922],{},[1593,16920,16921],{},"Sheet name:"," Choose the tab containing the search terms.",[1724,16924,9925,16925,2855,16928],{},[1593,16926,16927],{},"'Loop through data'",[2182,16929,16930],{},[1724,16931,16932,2647,16935,5097,16938,16941],{},[1593,16933,16934],{},"Loop through data:",[1593,16936,16937],{},"'Insert Data'",[2434,16939,16940],{},"'google-sheet-data'",". The loop step will now iterate through the search terms in the Google Sheet.",[1724,16943,9925,16944,16947,16948,16950,16951],{},[1593,16945,16946],{},"'Go to page'"," sub-step to load the ",[1593,16949,6778],{}," landing page with the search field.",[2182,16952,16953],{},[1724,16954,16955,16958,16959,16961],{},[1593,16956,16957],{},"Enter URL:"," The URL will look something like this:",[1981,16960],{},[1731,16962,16963],{},"\"https:\u002F\u002Fmembers.helium10.com\u002Fmagnet\u002Fproducts?accountId=xxxxxxx\"",[1724,16965,16966,16967,16970,16971],{},"Add an ",[1593,16968,16969],{},"'Enter text'"," sub-step.",[2182,16972,16973,16983],{},[1724,16974,16975,2647,16978,5097,16980,16982],{},[1593,16976,16977],{},"Text:",[1593,16979,16937],{},[1593,16981,16940],{}," to pass the search terms from the sheet.",[1724,16984,16985,16988,16989,16992,16993,5158],{},[1593,16986,16987],{},"Select column:"," Choose column ",[1593,16990,16991],{},"‘A’"," in the preview.\n ",[2219,16994],{"src":16995,"alt":16996},"\u002Fdocs\u002Fguides\u002Fmagnet-enter-text.webp","axiom.ai using the enter text step to input search terms in Magnet",[1724,16998,9925,16999,17002,17003,17005],{},[1593,17000,17001],{},"'Click element'"," sub-step to click ",[1593,17004,6765],{},[2182,17006,17007],{},[1724,17008,17009,2647,17012,5252,17015,5256,17018,17021,17022],{},[1593,17010,17011],{},"Select:",[1593,17013,17014],{},"'Select'",[1593,17016,17017],{},"\"Custom\"",[1593,17019,17020],{},"\"Use element text.\""," Finally, click ",[1593,17023,17024],{},"\"Complete.\"",[1724,17026,17027,17028,17030,17031,4902,17034,17037],{},"To close the pop-up, add a ",[1593,17029,17001],{}," step to click ",[1593,17032,17033],{},"\"Run new search\"",[1593,17035,17036],{},"\"Load from history.\"",[2182,17038,17039,17053],{},[1724,17040,17041,2647,17043,5252,17045,7010,17047,4902,17050,1610],{},[1593,17042,17011],{},[1593,17044,17014],{},[1593,17046,17017],{},[1731,17048,17049],{},"\"[data-testid=\"runnewsearch\"]\"",[1731,17051,17052],{},"\"[data-testid=\"loadfromhistory\"]\"",[1724,17054,17055,17058,17059,5158],{},[1593,17056,17057],{},"Optional Click:"," Tick this option, as the pop-up does not always appear.\n ",[2219,17060],{"src":7025,"alt":17061},"axiom.ai interacting with a dialog in Magnet during bot run",[1724,17063,9925,17064,17067,17068],{},[1593,17065,17066],{},"'Wait'"," step to pause the bot and allow the data to load.",[2182,17069,17070],{},[1724,17071,17072,17075,17076,17079,17080,17083],{},[1593,17073,17074],{},"Wait time:"," Insert ",[1593,17077,17078],{},"\"7000\""," to make the bot wait ",[1593,17081,17082],{},"7 seconds."," You may need to experiment with wait time.",[1724,17085,9925,17086,17089,17090,17092,17093],{},[1593,17087,17088],{},"‘Get data from bot's current page’"," sub-step. With search results displayed on the ",[1593,17091,6778],{}," page, select the data you wish to extract.",[2182,17094,17095,17106,17115,17128,17137],{},[1724,17096,17097,2647,17099,17102,17103,1610],{},[1593,17098,17011],{},[1593,17100,17101],{},"‘Select’"," to open the ",[1593,17104,17105],{},"multi-selector tool",[1724,17107,17108,7669,17111,17114],{},[1593,17109,17110],{},"Select the first keyword",[1593,17112,17113],{},"\"Keyword Phrase\""," column, then repeat the selection for rows below to make a repeating selection.",[1724,17116,5299,17117,5303,17120,17123,17124,5158],{},[1593,17118,17119],{},"\"Shift + N\"",[1593,17121,17122],{},"CPR"," column in the first row, then repeat the selection in the second row.\n ",[2219,17125],{"src":17126,"alt":17127},"\u002Fdocs\u002Fguides\u002Fmagnet-select-data.png","axiom.ai selecting keyword data from Magnet",[1724,17129,17130,17133,17134,1610],{},[1593,17131,17132],{},"Select the 'Next' button"," for pagination using the ",[1593,17135,17136],{},"right arrow key",[1724,17138,17139,17142,17143,5359],{},[1593,17140,17141],{},"Set a maximum number of results"," you wish to scrape. I chose ",[1593,17144,5358],{},[1724,17146,9925,17147,2855,17150],{},[1593,17148,17149],{},"'Write data to a Google Sheet'",[2182,17151,17152,17160,17169,17179],{},[1724,17153,17154,17156,17157],{},[1593,17155,16915],{}," Select your ",[1593,17158,17159],{},"Google Sheet.",[1724,17161,17162,17165,17166,1610],{},[1593,17163,17164],{},"Sheet Name:"," Choose the tab where you want to write the ",[1593,17167,17168],{},"Amazon keyword data",[1724,17170,17171,2647,17174,5386,17176,1610],{},[1593,17172,17173],{},"Data:",[1593,17175,16937],{},[1593,17177,17178],{},"\"scraped-data-\"",[1724,17180,17181,17184,17185,17188],{},[1593,17182,17183],{},"Write Options:"," Select ",[1593,17186,17187],{},"'Add to Existing Data'"," to append the new data without deleting the existing data.",[1724,17190,9925,17191,17194,17195],{},[1593,17192,17193],{},"'Delete rows from a Google Sheet'"," step to remove the processed search term.",[2182,17196,17197,17203,17210,17218],{},[1724,17198,17199,17156,17201],{},[1593,17200,16915],{},[1593,17202,17159],{},[1724,17204,17205,17207,17208,1610],{},[1593,17206,17164],{}," Choose the tab containing the ",[1593,17209,5582],{},[1724,17211,17212,17215,17216,1610],{},[1593,17213,17214],{},"First Row to Delete:"," Leave this set to ",[1593,17217,1804],{},[1724,17219,17220,17223,17224,1610],{},[1593,17221,17222],{},"Last Row to Delete:"," Set to ",[1593,17225,5431],{},[1558,17227,17228],{},"The Magnet automation, when completed, should resemble the diagram below.",[2219,17230],{"src":17231,"className":17232,"alt":7237},"\u002Fdocs\u002Fguides\u002Fmagnet-axiom-design-pattern-steps.webp",[5439],[1612,17234,17236],{"id":17235},"testing-your-magnet-automation","Testing your Magnet automation",[1617,17238],{},[1558,17240,17241,17242,17245,17246,5455,17248,7252,17250,1610],{},"Once you have saved your **",[1562,17243,17244],{"href":4983},"Helium10 Magnet"," ** automation, click ",[1593,17247,5454],{},[1593,17249,5041],{},[1593,17251,17252],{},"keyword data",[2219,17254],{"src":17255,"alt":17256},"\u002Fdocs\u002Fguides\u002Fmagnet-write-data.webp","axiom.ai writing data to a Google Sheet from Magnet",[2266,17258,17259],{"id":7258},[1593,17260,7261],{},[2182,17262,17263,17275],{},[1724,17264,17265,17268,17269,17271,17272,1610],{},[1593,17266,17267],{},"Element not found:"," You may need to reselect elements. Changing ",[1593,17270,7272],{}," can sometimes affect ",[1593,17273,17274],{},"selectors",[1724,17276,17277,1729,17279,17281,17282,7285,17284,1610],{},[1593,17278,7278],{},[1593,17280,6778],{}," can sometimes be slow to load data, so you may need to adjust the ",[1593,17283,7284],{},[1593,17285,17286],{},"Step 7",[1612,17288,5491],{"id":5490},[1617,17290],{},[1558,17292,5494,17293,5497,17295,5501,17297,5504],{},[1593,17294,5041],{},[1593,17296,6778],{},[1593,17298,2144],{},[2182,17300,17301,17307,17316,17322],{},[1724,17302,17303,5514,17305,1610],{},[1593,17304,5513],{},[1593,17306,5517],{},[1724,17308,17309,5523,17311,7318,17313,17315],{},[1593,17310,5522],{},[1593,17312,5526],{},[1593,17314,6778],{}," page while logged in.",[1724,17317,17318,5533,17320,5536],{},[1593,17319,5532],{},[1593,17321,3461],{},[1724,17323,17324,5514,17326,1610],{},[1593,17325,5541],{},[1593,17327,5517],{},[1558,17329,5547,17330,5551],{},[1593,17331,5550],{},[1558,17333,5554,17334],{},[1562,17335,17337],{"href":17336,"download":1646},"\u002Fdocs\u002Fguides\u002Ftemplates\u002Faxiom_magnet.json","Magnet template.",[1612,17339,2423],{"id":2422},[1617,17341],{},[1558,17343,17344,17345,17347,17348,17350,17351,17354,17355,17358],{},"Extracting ",[1593,17346,17252],{}," from ",[1593,17349,6778],{}," is straightforward. You can simply ",[1593,17352,17353],{},"point and select"," the data you want. This template can be ",[1593,17356,17357],{},"modified"," and used as a starting point.",[1558,17360,7391,17361,5595,17363,7398],{},[1593,17362,4984],{},[1593,17364,17365],{},[1562,17366,5601],{"href":5600},[1617,17368],{},[1558,17370,17371],{},[2434,17372,5606,17373,5610,17375,4902,17377,5615],{},[1593,17374,5609],{},[1593,17376,4984],{},[1593,17378,5041],{},{"title":1636,"searchDepth":1637,"depth":1637,"links":17380},[17381,17382,17383,17386,17387],{"id":2172,"depth":1640,"text":5008},{"id":16879,"depth":1640,"text":16880},{"id":17235,"depth":1640,"text":17236,"children":17384},[17385],{"id":7258,"depth":1637,"text":7261},{"id":5490,"depth":1640,"text":5491},{"id":2422,"depth":1640,"text":2423},"Learn how to use axiom.ai to automate the input of search terms into Magnet, a Helium10 tool, then click \"Get Keywords.\" Once the keyword search is complete, axiom.ai will crape the datat into a Google Sheet.",{"pinned":1646,"type":2143,"format":1718,"intent_type":2675,"intent":5626,"tags":17390,"platfrom":17391},[2149,2682],[4984],"\u002Fguides\u002Fmagnet",{"title":16813,"description":17388},"guides\u002Fmagnet","7CmhjEBjM97K98IAwVqTsD9YUhaKtjvjHqUV0Gu86FE",{"id":17397,"title":17398,"body":17399,"date":2669,"description":17697,"extension":1643,"meta":17698,"navigation":1646,"order":1641,"path":17707,"seo":17708,"stem":17709,"__hash__":17710},"guides\u002Fguides\u002Fmonitor-web-page-and-send-message.md","How to monitor a web page and send email",{"type":1555,"value":17400,"toc":17689},[17401,17403,17406,17409,17411,17414,17421,17425,17433,17437,17440,17444,17447,17451,17663,17667,17670,17674,17677],[1617,17402],{},[1558,17404,17405],{},"Monitor a website for new products, this bot is a simple and effective way to achieve your goal. You will need to use this bot on a listing or search page.",[1558,17407,17408],{},"The bot scrapes a list of content, such as titles or prices comparing them against a previous scrape to monitor for changes.",[1662,17410],{},[1558,17412,17413],{},"This template is simple and adaptable to different websites, from products to stock listings. A Google Sheet is required to store data for comparison.",[1558,17415,17416,17417],{},"To use this template, you will first need to scrape a list of data into your sheet to compare against. We suggest you adpat this ",[1562,17418,17420],{"href":17419},"\u002Fguides\u002Fscrape-links-from-a-website","template.",[1612,17422,17424],{"id":17423},"advantages-to-using-this-web-monitoring-design-pattern","Advantages to using this web monitoring design pattern",[2182,17426,17427,17430],{},[1724,17428,17429],{},"Adaptable to different types of website",[1724,17431,17432],{},"Monitoring can be scheduled at regular intervals",[1612,17434,17436],{"id":17435},"install-the-monitor-bot-template","Install the Monitor bot template",[1558,17438,17439],{},"On this page click 'Install template'. If you are a new user you will be required to create an axiom.ai account before you can edit the template.",[1612,17441,17443],{"id":17442},"prepare-a-google-sheet","Prepare a Google Sheet",[1558,17445,17446],{},"A Google sheet is required with a list of data to compare against.",[1612,17448,17450],{"id":17449},"configure-the-bot","Configure the bot",[1718,17452,17453],{},[1721,17454,17455,17484,17513,17558,17602,17631],{},[1724,17456,17457,1729,17459,17461],{},[1593,17458,1728],{},[1731,17460,1787],{},[1721,17462,17463,17468,17473,17479],{},[1724,17464,17465,17467],{},[1731,17466,5526],{},": Insert the link of the page you wish to monitor.",[1724,17469,17470,17472],{},[1731,17471,1794],{},": Point and click to select the content to monitor.",[1724,17474,17475,17478],{},[1731,17476,17477],{},"Find pager"," (optional): Select the “Next” button if the page is paginated.",[1724,17480,17481,17483],{},[1731,17482,1800],{},": When testing, set to 10–20.",[1724,17485,17486,1729,17488,17490],{},[1593,17487,1752],{},[1731,17489,1733],{},[1721,17491,17492,17497,17502,17510],{},[1724,17493,17494,17496],{},[1731,17495,1740],{},": Search for the Google Sheet you created.",[1724,17498,17499,17501],{},[1731,17500,1746],{},": Choose the sheet with the comparison data.",[1724,17503,17504,17506,17507,17509],{},[1731,17505,8769],{}," \u002F ",[1731,17508,6866],{},": Leave as default.",[1724,17511,17512],{},"A preview of the data should now display.",[1724,17514,17515,1729,17517,17520],{},[1593,17516,5364],{},[1731,17518,17519],{},"Remove results that do not contain certain words",[1721,17521,17522,17530,17539,17547,17553],{},[1724,17523,17524,1771,17526,1775,17528,1610],{},[1731,17525,2100],{},[1731,17527,1833],{},[1731,17529,7572],{},[1724,17531,17532,1771,17535,1775,17537,1610],{},[1731,17533,17534],{},"Words",[1731,17536,1833],{},[1731,17538,1778],{},[1724,17540,17541,13056,17544,1610],{},[1731,17542,17543],{},"Word matching mode",[1731,17545,17546],{},"\"Any\"",[1724,17548,17549,17552],{},[1731,17550,17551],{},"Match on word boundary",": Leave unticked.",[1724,17554,17555,17509],{},[1731,17556,17557],{},"Columns (optional)",[1724,17559,17560,1729,17562,17565],{},[1593,17561,5403],{},[1731,17563,17564],{},"If condition: Continue only if new content found",[1721,17566,17567,17576,17582,17588,17592,17598],{},[1724,17568,17569,1771,17571,1775,17573,1610],{},[1731,17570,7873],{},[1731,17572,1833],{},[1731,17574,17575],{},"[matching-word-data]",[1724,17577,17578,17581],{},[1731,17579,17580],{},"Words to check",": Use default (a–z, 0–9).",[1724,17583,17584,3617,17586,1610],{},[1731,17585,17543],{},[1731,17587,17546],{},[1724,17589,17590,17552],{},[1731,17591,17551],{},[1724,17593,17594,17597],{},[1731,17595,17596],{},"Fail if condition not met",": Tick this box.",[1724,17599,17600,17552],{},[1731,17601,12937],{},[1724,17603,17604,1729,17606,17608],{},[1593,17605,6941],{},[1731,17607,4914],{},[1721,17609,17610,17614,17619,17625],{},[1724,17611,17612,17496],{},[1731,17613,1740],{},[1724,17615,17616,17618],{},[1731,17617,1746],{},": Choose the sheet with existing content.",[1724,17620,17621,1900,17623,1610],{},[1731,17622,1899],{},[1731,17624,17575],{},[1724,17626,17627,1801,17629,1610],{},[1731,17628,1908],{},[1731,17630,7610],{},[1724,17632,17633,1729,17635,17638],{},[1593,17634,6964],{},[1731,17636,17637],{},"Send email",[1721,17639,17640,17646,17652],{},[1724,17641,17642,17645],{},[1731,17643,17644],{},"Email addresses",": Enter email addresses, one per line.",[1724,17647,17648,17651],{},[1731,17649,17650],{},"Email subject",": Add your subject.",[1724,17653,17654,17657,17658,17660,17661,1610],{},[1731,17655,17656],{},"Email body",": Add your message. Use ",[1731,17659,1833],{}," to include ",[1731,17662,17575],{},[1612,17664,17666],{"id":17665},"test-run","Test run",[1558,17668,17669],{},"We always recommed doing a test run - click run then check the output from the scraper. In this case in the sheet.",[1612,17671,17673],{"id":17672},"troubleshooting-the-monitoring-axiom","Troubleshooting the monitoring Axiom",[1558,17675,17676],{},"As mentioned at the top of the page, you will need to scrape data to compare against before running this bot.",[1721,17678,17679,17686],{},[1724,17680,17681,17682,17685],{},"All results write to the Google Sheet, check the 'Write' Step is set to '",[2354,17683,17684],{},"word-matching-data","'.",[1724,17687,17688],{},"No message sent - perhaps no change has been detected.",{"title":1636,"searchDepth":1637,"depth":1637,"links":17690},[17691,17692,17693,17694,17695,17696],{"id":17423,"depth":1640,"text":17424},{"id":17435,"depth":1640,"text":17436},{"id":17442,"depth":1640,"text":17443},{"id":17449,"depth":1640,"text":17450},{"id":17665,"depth":1640,"text":17666},{"id":17672,"depth":1640,"text":17673},"Learn how to monitor a web page for changes and automatically send an email notification using axiom.ai. This guide covers scraping, comparing data, and notifying you of updates.",{"logoFile":3374,"read":17699,"level":17700,"video":17701,"templateId":6329,"type":2143,"format":1718,"intent_type":3377,"intent":17702,"tags":17703,"platfrom":17706},"16 minutes","Intermediate","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FoUk5xPV-eDQ","Monitor websites for changes",[17704,17705],"monitoring","scrpaing",[3380],"\u002Fguides\u002Fmonitor-web-page-and-send-message",{"title":17398,"description":17697},"guides\u002Fmonitor-web-page-and-send-message","QjcvKkN3dFlZjwXOMNL8Zx1PQ0qZAn-EFA5kh1cq0bE",{"id":17712,"title":17713,"body":17714,"date":2669,"description":17987,"extension":1643,"meta":17988,"navigation":1646,"order":1641,"path":17993,"seo":17994,"stem":17995,"__hash__":17996},"guides\u002Fguides\u002Fmonitoring-send-webhook.md","How to monitor a web page and trigger webhook",{"type":1555,"value":17715,"toc":17979},[17716,17718,17721,17723,17725,17727,17731,17733,17741,17743,17745,17747,17749,17754,17758,17950,17953,17961,17963,17966,17968,17970],[1617,17717],{},[1558,17719,17720],{},"Monitor a website for new products then send a notification via a webhook, this bot is a simple and effective way to achieve your goal. You will need to use this bot on a listing or search page.",[1662,17722],{},[1558,17724,17408],{},[1558,17726,17413],{},[1558,17728,17416,17729],{},[1562,17730,17420],{"href":17419},[1612,17732,17424],{"id":17423},[1718,17734,17735],{},[2182,17736,17737,17739],{},[1724,17738,17429],{},[1724,17740,17432],{},[1612,17742,17436],{"id":17435},[1558,17744,17439],{},[1612,17746,17443],{"id":17442},[1558,17748,17446],{},[1558,17750,17751,17752],{},"We suggest you adpat this ",[1562,17753,17420],{"href":17419},[1612,17755,17757],{"id":17756},"get-started-open-the-bot-for-editing","Get started open the bot for editing",[1718,17759,17760],{},[1721,17761,17762,17788,17817,17858,17901,17931],{},[1724,17763,17764,1729,17766,17768],{},[1593,17765,1728],{},[1731,17767,1787],{},[1721,17769,17770,17774,17778,17783],{},[1724,17771,17772,17467],{},[1731,17773,5526],{},[1724,17775,17776,17472],{},[1731,17777,1794],{},[1724,17779,17780,17782],{},[1731,17781,17477],{}," (optional): Select the “Next” button if the page has pagination. If the page scrolls, leave this blank.",[1724,17784,17785,17787],{},[1731,17786,1800],{},": For testing, set to 10–20.",[1724,17789,17790,1729,17792,17794],{},[1593,17791,1752],{},[1731,17793,1733],{},[1721,17795,17796,17801,17806,17810,17814],{},[1724,17797,17798,17800],{},[1731,17799,1740],{},": Search for and select the Google Sheet you created.",[1724,17802,17803,17805],{},[1731,17804,1746],{},": Choose the sheet containing the comparison data.",[1724,17807,17808,17509],{},[1731,17809,8769],{},[1724,17811,17812,17509],{},[1731,17813,6866],{},[1724,17815,17816],{},"A preview of the data should now appear.",[1724,17818,17819,1729,17821,17824],{},[1593,17820,5364],{},[1731,17822,17823],{},"Remove results which do not contain certain words",[1721,17825,17826,17834,17843,17849,17853],{},[1724,17827,17828,1771,17830,1775,17832,1610],{},[1731,17829,2100],{},[1731,17831,1833],{},[1731,17833,7572],{},[1724,17835,17836,1771,17839,1775,17841,1610],{},[1731,17837,17838],{},"Words (comma separated)",[1731,17840,1833],{},[1731,17842,1778],{},[1724,17844,17845,1801,17847,1610],{},[1731,17846,17543],{},[1731,17848,17546],{},[1724,17850,17851,17552],{},[1731,17852,17551],{},[1724,17854,17855,17857],{},[1731,17856,17557],{},": Leave default.",[1724,17859,17860,1729,17862,17865],{},[1593,17861,5403],{},[1731,17863,17864],{},"If condition: Continue only if new content is found",[1721,17866,17867,17875,17883,17889,17893,17897],{},[1724,17868,17869,1771,17871,1775,17873,1610],{},[1731,17870,7873],{},[1731,17872,1833],{},[1731,17874,17575],{},[1724,17876,17877,17879,17880,1610],{},[1731,17878,17580],{},": Leave as ",[1731,17881,17882],{},"(a,b,c,...,z,0–9)",[1724,17884,17885,3617,17887,1610],{},[1731,17886,17543],{},[1731,17888,17546],{},[1724,17890,17891,17552],{},[1731,17892,17551],{},[1724,17894,17895,17597],{},[1731,17896,17596],{},[1724,17898,17899,17552],{},[1731,17900,12937],{},[1724,17902,17903,1729,17905,17907],{},[1593,17904,6941],{},[1731,17906,4914],{},[1721,17908,17909,17913,17918,17925],{},[1724,17910,17911,17800],{},[1731,17912,1740],{},[1724,17914,17915,17917],{},[1731,17916,1746],{},": Choose the sheet you’re appending to.",[1724,17919,17920,1900,17922,1610],{},[1731,17921,1899],{},[1731,17923,17924],{},"[word-matching-data]",[1724,17926,17927,1801,17929,1610],{},[1731,17928,16746],{},[1731,17930,7610],{},[1724,17932,17933,1729,17935,17937],{},[1593,17934,6964],{},[1731,17936,13862],{},[1721,17938,17939,17944],{},[1724,17940,17941,17943],{},[1731,17942,2204],{},": Insert the webhook endpoint.",[1724,17945,17946,17949],{},[1731,17947,17948],{},"Payload",": Enter your payload in JSON format.",[1558,17951,17952],{},"Webhook trigger example:",[2346,17954,17959],{"className":17955,"code":17957,"language":17958},[17956],"language-text","{\n  \"name\": \"test webhook\",\n  \"type\": 1,\n  \"channel_id\": \"199737254929760256\",\n  \"token\": \"3d89bb7572e0fb30d8128367b3b1b44fecd1726de135cbe28a41f8b2f777c372ba2939e72279b94526ff5d1bd4358d65cf11\",\n  \"avatar\": null,\n  \"guild_id\": \"199737254929760256\",\n  \"id\": \"223704706495545344\",\n  \"application_id\": null,\n  \"user\": {\n    \"username\": \"test\",\n    \"discriminator\": \"7479\",\n    \"id\": \"190320984123768832\",\n    \"avatar\": \"b004ec1740a63ca06ae2e14c5cee11f3\",\n    \"public_flags\": 131328\n  }\n","text",[1731,17960,17957],{"__ignoreMap":1636},[1612,17962,17666],{"id":17665},[1558,17964,17965],{},"We always recommend doing a test run - You should test the filter and conditional. Do the first scrape, then delete some rows to test the full bot. You can also test if the webhook is triggered.",[1612,17967,17673],{"id":17672},[1558,17969,17676],{},[1721,17971,17972,17976],{},[1724,17973,17681,17974,17685],{},[2354,17975,17684],{},[1724,17977,17978],{},"No message sent - Check your JSON",{"title":1636,"searchDepth":1637,"depth":1637,"links":17980},[17981,17982,17983,17984,17985,17986],{"id":17423,"depth":1640,"text":17424},{"id":17435,"depth":1640,"text":17436},{"id":17442,"depth":1640,"text":17443},{"id":17756,"depth":1640,"text":17757},{"id":17665,"depth":1640,"text":17666},{"id":17672,"depth":1640,"text":17673},"Learn how to monitor a web page for changes and trigger a webhook notification using axiom.ai. This guide covers scraping, comparing data, and sending webhook notifications for updates.",{"pinned":1646,"read":17989,"type":2143,"format":1718,"intent_type":3377,"intent":17702,"tags":17990,"platfrom":17991,"video":17992,"templateId":6324},"15 minutes",[17704],[3380],"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FFUj68AKN5Cs","\u002Fguides\u002Fmonitoring-send-webhook",{"title":17713,"description":17987},"guides\u002Fmonitoring-send-webhook","3vrBE-Bwnp66uZlxpfHtm67D3tNnkmNqxTFl0YedlfA",{"id":17998,"title":17999,"body":18000,"date":1641,"description":18010,"extension":1643,"meta":18011,"navigation":1646,"order":1641,"path":14284,"seo":18013,"stem":18014,"__hash__":18015},"guides\u002Fguides\u002Fpattern.md","Pattern guides",{"type":1555,"value":18001,"toc":18008},[18002,18005],[1558,18003,18004],{},"Reusable techniques for the No-code tool: logins, dialogs, forms, keyboard shortcuts, APIs, and moving data between steps. Use these guides to solve recurring problems and combine them in larger automations.",[18006,18007],"guides-intent-hub",{"intent":2145},{"title":1636,"searchDepth":1637,"depth":1637,"links":18009},[],"Reusable techniques for the No-code tool—logins, dialogs, forms, keyboard shortcuts, APIs, and moving data between steps.",{"layout":18012},"guides-intent",{"title":17999,"description":18010},"guides\u002Fpattern","Pu2EeFHS8UD2Lmjfg34vNMZ2WPGp7Pke7bLFNBOS-Z8",{"id":18017,"title":18018,"body":18019,"date":1641,"description":19719,"extension":1643,"meta":19720,"navigation":1646,"order":1641,"path":13998,"seo":19726,"stem":19727,"__hash__":19728},"guides\u002Fguides\u002Fpost-data-to-airtable.md","How to post data to Airtable using an axiom.ai automation",{"type":1555,"value":18020,"toc":19708},[18021,18023,18026,18028,18031,18033,18035,18055,18058,18088,18091,18142,18146,18150,18152,18155,18159,18161,18170,18174,18176,18190,18226,18636,18640,18642,18652,18679,19103,19107,19109,19112,19137,19684,19686,19689,19700,19702,19705],[1617,18022],{},[1558,18024,18025],{},"Follow these steps to post data from axiom.ai to Airtable using a webhook. axiom.ai allows you to use webhooks to send data to external APIs, including Airtable's API. To make the integration work, you will need to configure your credentials in Airtable, and in axiom.ai, you will need to create your post request using JavaScript.",[1662,18027],{},[1558,18029,18030],{},"This guide assumes you are familiar with both axiom.ai and Airtable and have a basic understanding of JavaScript.",[1612,18032,2173],{"id":2172},[1558,18034,2178],{},[1718,18036,18037],{},[2182,18038,18039,18045,18049],{},[1724,18040,18041,2189,18043,1610],{},[1593,18042,2188],{},[1562,18044,2193],{"href":2192},[1724,18046,18047,2199],{},[1593,18048,2198],{},[1724,18050,18051,3420,18053,1610],{},[1593,18052,2204],{},[1731,18054,2208],{},[1558,18056,18057],{},"You'll also need information from Airtable:",[1718,18059,18060],{},[2182,18061,18062,18082],{},[1724,18063,18064,18067,18068,18073,18074,18077,18078,18081],{},[1593,18065,18066],{},"Base ID",": Head to the ",[1562,18069,18072],{"href":18070,"rel":18071},"https:\u002F\u002Fairtable.com\u002Fdeveloper-hub\u002Fweb\u002Fapi\u002F",[1633],"Airtable API page"," to grab your ",[1593,18075,18076],{},"\"Base ID\"",". Your ID will look something like ",[1593,18079,18080],{},"\"appFrf1jmiyIq5nuJ\"",". You can also find this in the URL of your base.",[1724,18083,18084,18087],{},[1593,18085,18086],{},"Table name",": Open your Airtable base, the tab names will be the table name that you need to use.",[1558,18089,18090],{},"Create a personal access token via the Airtable Developer Hub.",[1718,18092,18093],{},[2182,18094,18095,18107,18116,18121,18130,18136],{},[1724,18096,18097,18100,18101,18106],{},[1593,18098,18099],{},"Personal access token",": Open the ",[1562,18102,18105],{"href":18103,"rel":18104},"https:\u002F\u002Fairtable.com\u002Fcreate\u002Ftokens",[1633],"personal access token"," page.",[1724,18108,18109,18112,18113],{},[1593,18110,18111],{},"Create new token",": Click on the button ",[1593,18114,18115],{},"\"create a new token.\"",[1724,18117,18118,18120],{},[1593,18119,4279],{},": Name your new token.",[1724,18122,18123,18126,18127,1610],{},[1593,18124,18125],{},"Scopes",": Set the scope to ",[1593,18128,18129],{},"\"data.records:write\"",[1724,18131,18132,18135],{},[1593,18133,18134],{},"Access",": Select the Base you wish to add records to.",[1724,18137,18138,18141],{},[1593,18139,18140],{},"Create token",": Create the token, copy it for later.",[2219,18143],{"src":18144,"alt":18145},"\u002Fdocs\u002Fguides\u002Fpersonnel-access-token-airtable.jpg","Airtable create access token",[1612,18147,18149],{"id":18148},"sending-data-to-airtable-using-an-axiomai-automation","Sending data to Airtable using an axiom.ai automation",[1617,18151],{},[1558,18153,18154],{},"Learn how to get started with sending data from your axiom.ai automation to Airtable.",[2266,18156,18158],{"id":18157},"set-up-your-axiomai-automation","Set up your axiom.ai automation",[1617,18160],{},[1558,18162,18163,18164,18169],{},"Create your automation as per usual. When you need to send data to Airtable, add a ",[1593,18165,18166],{},[1562,18167,18168],{"href":1226},"write JavaScript"," to your automation. Follow the guides below to determine which script you'll need to send along your data to Airtable.",[2266,18171,18173],{"id":18172},"create-a-single-record","Create a single record",[1617,18175],{},[1558,18177,18178,18179,18181,18182,18185,18186,18189],{},"The following code will create a single record in Airtable. You'll need your credentials from the ",[1562,18180,5008],{"href":8203}," section to begin. You'll need to modify the attributes in the ",[1731,18183,18184],{},"recordData"," array with this data. When scraping, ensure that the ",[1593,18187,18188],{},"max results"," option is set to 1.",[1718,18191,18192],{},[2182,18193,18194,18208,18217],{},[1724,18195,18196,1863,18199,1564,18202,1569,18205,18207],{},[1593,18197,18198],{},"Add credentials",[1593,18200,18201],{},"base ID",[1593,18203,18204],{},"table name",[1593,18206,18105],{}," into the script.",[1724,18209,18210,18213,18214,18216],{},[1593,18211,18212],{},"Field names",": Edit the field names in ",[1731,18215,18184],{}," to match your table.",[1724,18218,18219,18222,18223],{},[1593,18220,18221],{},"Field values",": Insert axiom.ai data tokens for the value of each field, replacing the examples. ",[2434,18224,18225],{},"Tip: use the 'insert data' button to do this step.",[2346,18227,18229],{"className":2383,"code":18228,"language":2385,"meta":1636,"style":1636},"\u002F\u002F Airtable API endpoint URL\nconst AirtableBaseId = '*******'; \u002F\u002F Add Base ID \nconst AirtableTableName = '************'; \u002F\u002F Add table name\nconst AirtableAccessToken = '**********'; \u002F\u002F Add personal access token\nconst AirtableUrl = `https:\u002F\u002Fapi.Airtable.com\u002Fv0\u002F${AirtableBaseId}\u002F${AirtableTableName}`;\n\n\u002F\u002F Data you want to send (adjust according to your Airtable fields)\nconst recordData = {\n  fields: {\n    \"Customer Name\": '[scrape-data?all&0]',  \u002F\u002F Replace field and token \n    \"Email Address\": '[scrape-data?all&1]',  \u002F\u002F Replace field and token\n    \"Phone Number\": '[scrape-data?all&2]',   \u002F\u002F Replace field and token\n    \"Customer ID\": '[scrape-data?all&3]'     \u002F\u002F Replace field and token\n  }\n};\n\n\u002F\u002F Send data to create a single record in Airtable.\nasync function sendToAirtable(data) {\n  try {\n    const response = await fetch(AirtableUrl, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${AirtableAccessToken}`,\n        'Content-Type': 'application\u002Fjson'\n      },\n      body: JSON.stringify(data)\n    });\n\n    if (response.ok) {\n      const jsonResponse = await response.json();\n      console.log('Record added successfully:', jsonResponse);\n    } else {\n      console.error('Error adding record:', response.statusText);\n    }\n  } catch (error) {\n    console.error('Error with request:', error);\n  }\n}\n\n\u002F\u002F Call the function to send the record to Airtable\nsendToAirtable(recordData);\n",[1731,18230,18231,18236,18253,18270,18287,18311,18315,18320,18331,18336,18352,18367,18382,18395,18399,18404,18408,18413,18430,18436,18452,18461,18466,18483,18493,18498,18512,18517,18521,18529,18547,18562,18571,18585,18589,18597,18611,18615,18619,18623,18628],{"__ignoreMap":1636},[2354,18232,18233],{"class":2356,"line":2357},[2354,18234,18235],{"class":4535},"\u002F\u002F Airtable API endpoint URL\n",[2354,18237,18238,18240,18243,18245,18248,18250],{"class":2356,"line":1640},[2354,18239,3932],{"class":3608},[2354,18241,18242],{"class":3505}," AirtableBaseId",[2354,18244,3938],{"class":3608},[2354,18246,18247],{"class":2364}," '*******'",[2354,18249,11014],{"class":2395},[2354,18251,18252],{"class":4535},"\u002F\u002F Add Base ID \n",[2354,18254,18255,18257,18260,18262,18265,18267],{"class":2356,"line":1637},[2354,18256,3932],{"class":3608},[2354,18258,18259],{"class":3505}," AirtableTableName",[2354,18261,3938],{"class":3608},[2354,18263,18264],{"class":2364}," '************'",[2354,18266,11014],{"class":2395},[2354,18268,18269],{"class":4535},"\u002F\u002F Add table name\n",[2354,18271,18272,18274,18277,18279,18282,18284],{"class":2356,"line":1647},[2354,18273,3932],{"class":3608},[2354,18275,18276],{"class":3505}," AirtableAccessToken",[2354,18278,3938],{"class":3608},[2354,18280,18281],{"class":2364}," '**********'",[2354,18283,11014],{"class":2395},[2354,18285,18286],{"class":4535},"\u002F\u002F Add personal access token\n",[2354,18288,18289,18291,18294,18296,18299,18302,18304,18307,18309],{"class":2356,"line":3523},[2354,18290,3932],{"class":3608},[2354,18292,18293],{"class":3505}," AirtableUrl",[2354,18295,3938],{"class":3608},[2354,18297,18298],{"class":2364}," `https:\u002F\u002Fapi.Airtable.com\u002Fv0\u002F${",[2354,18300,18301],{"class":2395},"AirtableBaseId",[2354,18303,4379],{"class":2364},[2354,18305,18306],{"class":2395},"AirtableTableName",[2354,18308,4065],{"class":2364},[2354,18310,3944],{"class":2395},[2354,18312,18313],{"class":2356,"line":3595},[2354,18314,3520],{"emptyLinePlaceholder":1646},[2354,18316,18317],{"class":2356,"line":3673},[2354,18318,18319],{"class":4535},"\u002F\u002F Data you want to send (adjust according to your Airtable fields)\n",[2354,18321,18322,18324,18327,18329],{"class":2356,"line":3679},[2354,18323,3932],{"class":3608},[2354,18325,18326],{"class":3505}," recordData",[2354,18328,3938],{"class":3608},[2354,18330,4008],{"class":2395},[2354,18332,18333],{"class":2356,"line":3685},[2354,18334,18335],{"class":2395},"  fields: {\n",[2354,18337,18338,18341,18343,18346,18349],{"class":2356,"line":3708},[2354,18339,18340],{"class":2364},"    \"Customer Name\"",[2354,18342,3617],{"class":2395},[2354,18344,18345],{"class":2364},"'[scrape-data?all&0]'",[2354,18347,18348],{"class":2395},",  ",[2354,18350,18351],{"class":4535},"\u002F\u002F Replace field and token \n",[2354,18353,18354,18357,18359,18362,18364],{"class":2356,"line":3761},[2354,18355,18356],{"class":2364},"    \"Email Address\"",[2354,18358,3617],{"class":2395},[2354,18360,18361],{"class":2364},"'[scrape-data?all&1]'",[2354,18363,18348],{"class":2395},[2354,18365,18366],{"class":4535},"\u002F\u002F Replace field and token\n",[2354,18368,18369,18372,18374,18377,18380],{"class":2356,"line":3775},[2354,18370,18371],{"class":2364},"    \"Phone Number\"",[2354,18373,3617],{"class":2395},[2354,18375,18376],{"class":2364},"'[scrape-data?all&2]'",[2354,18378,18379],{"class":2395},",   ",[2354,18381,18366],{"class":4535},[2354,18383,18384,18387,18389,18392],{"class":2356,"line":3153},[2354,18385,18386],{"class":2364},"    \"Customer ID\"",[2354,18388,3617],{"class":2395},[2354,18390,18391],{"class":2364},"'[scrape-data?all&3]'",[2354,18393,18394],{"class":4535},"     \u002F\u002F Replace field and token\n",[2354,18396,18397],{"class":2356,"line":3799},[2354,18398,11282],{"class":2395},[2354,18400,18401],{"class":2356,"line":3808},[2354,18402,18403],{"class":2395},"};\n",[2354,18405,18406],{"class":2356,"line":4150},[2354,18407,3520],{"emptyLinePlaceholder":1646},[2354,18409,18410],{"class":2356,"line":4168},[2354,18411,18412],{"class":4535},"\u002F\u002F Send data to create a single record in Airtable.\n",[2354,18414,18415,18417,18420,18423,18425,18427],{"class":2356,"line":4176},[2354,18416,11721],{"class":3608},[2354,18418,18419],{"class":3608}," function",[2354,18421,18422],{"class":3993}," sendToAirtable",[2354,18424,4159],{"class":2395},[2354,18426,3461],{"class":2360},[2354,18428,18429],{"class":2395},") {\n",[2354,18431,18432,18434],{"class":2356,"line":4182},[2354,18433,11211],{"class":3608},[2354,18435,4008],{"class":2395},[2354,18437,18438,18441,18443,18445,18447,18449],{"class":2356,"line":4187},[2354,18439,18440],{"class":3608},"    const",[2354,18442,3714],{"class":3505},[2354,18444,3938],{"class":3608},[2354,18446,4027],{"class":3608},[2354,18448,4030],{"class":3993},[2354,18450,18451],{"class":2395},"(AirtableUrl, {\n",[2354,18453,18454,18457,18459],{"class":2356,"line":4208},[2354,18455,18456],{"class":2395},"      method: ",[2354,18458,4041],{"class":2364},[2354,18460,4044],{"class":2395},[2354,18462,18463],{"class":2356,"line":4220},[2354,18464,18465],{"class":2395},"      headers: {\n",[2354,18467,18468,18471,18473,18476,18479,18481],{"class":2356,"line":4232},[2354,18469,18470],{"class":2364},"        'Authorization'",[2354,18472,3617],{"class":2395},[2354,18474,18475],{"class":2364},"`Bearer ${",[2354,18477,18478],{"class":2395},"AirtableAccessToken",[2354,18480,4065],{"class":2364},[2354,18482,4044],{"class":2395},[2354,18484,18485,18488,18490],{"class":2356,"line":4247},[2354,18486,18487],{"class":2364},"        'Content-Type'",[2354,18489,3617],{"class":2395},[2354,18491,18492],{"class":2364},"'application\u002Fjson'\n",[2354,18494,18495],{"class":2356,"line":4253},[2354,18496,18497],{"class":2395},"      },\n",[2354,18499,18500,18503,18505,18507,18509],{"class":2356,"line":4259},[2354,18501,18502],{"class":2395},"      body: ",[2354,18504,11190],{"class":3505},[2354,18506,1610],{"class":2395},[2354,18508,11195],{"class":3993},[2354,18510,18511],{"class":2395},"(data)\n",[2354,18513,18514],{"class":2356,"line":4264},[2354,18515,18516],{"class":2395},"    });\n",[2354,18518,18519],{"class":2356,"line":6257},[2354,18520,3520],{"emptyLinePlaceholder":1646},[2354,18522,18523,18526],{"class":2356,"line":6262},[2354,18524,18525],{"class":3608},"    if",[2354,18527,18528],{"class":2395}," (response.ok) {\n",[2354,18530,18531,18534,18537,18539,18541,18543,18545],{"class":2356,"line":2940},[2354,18532,18533],{"class":3608},"      const",[2354,18535,18536],{"class":3505}," jsonResponse",[2354,18538,3938],{"class":3608},[2354,18540,4027],{"class":3608},[2354,18542,4199],{"class":2395},[2354,18544,4202],{"class":3993},[2354,18546,4205],{"class":2395},[2354,18548,18549,18552,18554,18556,18559],{"class":2356,"line":6271},[2354,18550,18551],{"class":2395},"      console.",[2354,18553,4214],{"class":3993},[2354,18555,4159],{"class":2395},[2354,18557,18558],{"class":2364},"'Record added successfully:'",[2354,18560,18561],{"class":2395},", jsonResponse);\n",[2354,18563,18564,18566,18569],{"class":2356,"line":6276},[2354,18565,4223],{"class":2395},[2354,18567,18568],{"class":3608},"else",[2354,18570,4008],{"class":2395},[2354,18572,18573,18575,18577,18579,18582],{"class":2356,"line":6281},[2354,18574,18551],{"class":2395},[2354,18576,4156],{"class":3993},[2354,18578,4159],{"class":2395},[2354,18580,18581],{"class":2364},"'Error adding record:'",[2354,18583,18584],{"class":2395},", response.statusText);\n",[2354,18586,18587],{"class":2356,"line":6286},[2354,18588,4250],{"class":2395},[2354,18590,18591,18593,18595],{"class":2356,"line":6291},[2354,18592,11252],{"class":2395},[2354,18594,4226],{"class":3608},[2354,18596,4229],{"class":2395},[2354,18598,18599,18602,18604,18606,18609],{"class":2356,"line":6296},[2354,18600,18601],{"class":2395},"    console.",[2354,18603,4156],{"class":3993},[2354,18605,4159],{"class":2395},[2354,18607,18608],{"class":2364},"'Error with request:'",[2354,18610,4244],{"class":2395},[2354,18612,18613],{"class":2356,"line":6302},[2354,18614,11282],{"class":2395},[2354,18616,18617],{"class":2356,"line":6308},[2354,18618,4256],{"class":2395},[2354,18620,18621],{"class":2356,"line":6314},[2354,18622,3520],{"emptyLinePlaceholder":1646},[2354,18624,18625],{"class":2356,"line":6319},[2354,18626,18627],{"class":4535},"\u002F\u002F Call the function to send the record to Airtable\n",[2354,18629,18630,18633],{"class":2356,"line":6324},[2354,18631,18632],{"class":3993},"sendToAirtable",[2354,18634,18635],{"class":2395},"(recordData);\n",[2266,18637,18639],{"id":18638},"create-multiple-records-up-to-10","Create multiple records (up to 10)",[1617,18641],{},[1558,18643,18644,18645,18181,18647,18185,18649,18651],{},"The following code will create multiple records in Airtable. You'll need your credentials from the ",[1562,18646,5008],{"href":8203},[1731,18648,18184],{},[1593,18650,18188],{}," option is set to 10. Airtable's API limits records created per call to 10.",[1718,18653,18654],{},[2182,18655,18656,18666,18674],{},[1724,18657,18658,1863,18660,1564,18662,1569,18664,18207],{},[1593,18659,18198],{},[1593,18661,18201],{},[1593,18663,18204],{},[1593,18665,18105],{},[1724,18667,18668,18671,18672],{},[1593,18669,18670],{},"axiomData",": Remove example token and insert your own. ",[2434,18673,18225],{},[1724,18675,18676,18678],{},[1593,18677,18212],{},": Edit the field names in \"recordsToSend\", to match your table.",[2346,18680,18682],{"className":2383,"code":18681,"language":2385,"meta":1636,"style":1636},"\u002F\u002F Airtable API endpoint URL\nconst AirtableBaseId = '*******'; \u002F\u002F Add base ID\nconst AirtableTableName = '************'; \u002F\u002F Add table name\nconst AirtableAccessToken = '**********'; \u002F\u002F Add personal access token\nconst AirtableUrl = `https:\u002F\u002Fapi.Airtable.com\u002Fv0\u002F${AirtableBaseId}\u002F${AirtableTableName}`;\n\n\u002F\u002F Replace the token used in this variable\nconst axiomData = [scrape-data];\n\n\u002F\u002F Data you want to send (adjust according to your Airtable fields)\nconst recordsToSend = axiomData.map((row) => {\n  return {\n    fields: {\n      \"Customer Name\": row[0],\n      \"Email Address\": row[1],\n      \"Phone Number\": row[2],\n      \"Customer ID\": row[3]\n    }\n  };\n});\n\n\u002F\u002F Send data to create multiple records in Airtable.\nasync function sendToAirtable(records) {\n  try {\n    const response = await fetch(AirtableUrl, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${AirtableAccessToken}`,\n        'Content-Type': 'application\u002Fjson'\n      },\n      body: JSON.stringify({\n        records: records \u002F\u002F Send multiple records in one request\n      })\n    });\n\n    if (response.ok) {\n      const jsonResponse = await response.json();\n      console.log('Records added successfully:', jsonResponse);\n    } else {\n      console.error('Error adding records:', response.statusText);\n    }\n  } catch (error) {\n    console.error('Error with request:', error);\n  }\n}\n\n\u002F\u002F Call the function to send the records to Airtable\nsendToAirtable(recordsToSend);\n\n",[1731,18683,18684,18688,18703,18717,18731,18751,18755,18760,18778,18782,18786,18810,18817,18822,18836,18847,18858,18871,18875,18879,18884,18888,18893,18908,18914,18928,18936,18940,18954,18962,18966,18978,18986,18991,18995,18999,19005,19021,19034,19042,19055,19059,19067,19079,19083,19087,19091,19096],{"__ignoreMap":1636},[2354,18685,18686],{"class":2356,"line":2357},[2354,18687,18235],{"class":4535},[2354,18689,18690,18692,18694,18696,18698,18700],{"class":2356,"line":1640},[2354,18691,3932],{"class":3608},[2354,18693,18242],{"class":3505},[2354,18695,3938],{"class":3608},[2354,18697,18247],{"class":2364},[2354,18699,11014],{"class":2395},[2354,18701,18702],{"class":4535},"\u002F\u002F Add base ID\n",[2354,18704,18705,18707,18709,18711,18713,18715],{"class":2356,"line":1637},[2354,18706,3932],{"class":3608},[2354,18708,18259],{"class":3505},[2354,18710,3938],{"class":3608},[2354,18712,18264],{"class":2364},[2354,18714,11014],{"class":2395},[2354,18716,18269],{"class":4535},[2354,18718,18719,18721,18723,18725,18727,18729],{"class":2356,"line":1647},[2354,18720,3932],{"class":3608},[2354,18722,18276],{"class":3505},[2354,18724,3938],{"class":3608},[2354,18726,18281],{"class":2364},[2354,18728,11014],{"class":2395},[2354,18730,18286],{"class":4535},[2354,18732,18733,18735,18737,18739,18741,18743,18745,18747,18749],{"class":2356,"line":3523},[2354,18734,3932],{"class":3608},[2354,18736,18293],{"class":3505},[2354,18738,3938],{"class":3608},[2354,18740,18298],{"class":2364},[2354,18742,18301],{"class":2395},[2354,18744,4379],{"class":2364},[2354,18746,18306],{"class":2395},[2354,18748,4065],{"class":2364},[2354,18750,3944],{"class":2395},[2354,18752,18753],{"class":2356,"line":3595},[2354,18754,3520],{"emptyLinePlaceholder":1646},[2354,18756,18757],{"class":2356,"line":3673},[2354,18758,18759],{"class":4535},"\u002F\u002F Replace the token used in this variable\n",[2354,18761,18762,18764,18767,18769,18772,18775],{"class":2356,"line":3679},[2354,18763,3932],{"class":3608},[2354,18765,18766],{"class":3505}," axiomData",[2354,18768,3938],{"class":3608},[2354,18770,18771],{"class":2395}," [scrape",[2354,18773,18774],{"class":3608},"-",[2354,18776,18777],{"class":2395},"data];\n",[2354,18779,18780],{"class":2356,"line":3685},[2354,18781,3520],{"emptyLinePlaceholder":1646},[2354,18783,18784],{"class":2356,"line":3708},[2354,18785,18319],{"class":4535},[2354,18787,18788,18790,18793,18795,18798,18800,18802,18804,18806,18808],{"class":2356,"line":3761},[2354,18789,3932],{"class":3608},[2354,18791,18792],{"class":3505}," recordsToSend",[2354,18794,3938],{"class":3608},[2354,18796,18797],{"class":2395}," axiomData.",[2354,18799,4813],{"class":3993},[2354,18801,6624],{"class":2395},[2354,18803,4818],{"class":2360},[2354,18805,6630],{"class":2395},[2354,18807,4005],{"class":3608},[2354,18809,4008],{"class":2395},[2354,18811,18812,18815],{"class":2356,"line":3775},[2354,18813,18814],{"class":3608},"  return",[2354,18816,4008],{"class":2395},[2354,18818,18819],{"class":2356,"line":3153},[2354,18820,18821],{"class":2395},"    fields: {\n",[2354,18823,18824,18827,18830,18833],{"class":2356,"line":3799},[2354,18825,18826],{"class":2364},"      \"Customer Name\"",[2354,18828,18829],{"class":2395},": row[",[2354,18831,18832],{"class":3505},"0",[2354,18834,18835],{"class":2395},"],\n",[2354,18837,18838,18841,18843,18845],{"class":2356,"line":3808},[2354,18839,18840],{"class":2364},"      \"Email Address\"",[2354,18842,18829],{"class":2395},[2354,18844,1804],{"class":3505},[2354,18846,18835],{"class":2395},[2354,18848,18849,18852,18854,18856],{"class":2356,"line":4150},[2354,18850,18851],{"class":2364},"      \"Phone Number\"",[2354,18853,18829],{"class":2395},[2354,18855,10456],{"class":3505},[2354,18857,18835],{"class":2395},[2354,18859,18860,18863,18865,18868],{"class":2356,"line":4168},[2354,18861,18862],{"class":2364},"      \"Customer ID\"",[2354,18864,18829],{"class":2395},[2354,18866,18867],{"class":3505},"3",[2354,18869,18870],{"class":2395},"]\n",[2354,18872,18873],{"class":2356,"line":4176},[2354,18874,4250],{"class":2395},[2354,18876,18877],{"class":2356,"line":4182},[2354,18878,11141],{"class":2395},[2354,18880,18881],{"class":2356,"line":4187},[2354,18882,18883],{"class":2395},"});\n",[2354,18885,18886],{"class":2356,"line":4208},[2354,18887,3520],{"emptyLinePlaceholder":1646},[2354,18889,18890],{"class":2356,"line":4220},[2354,18891,18892],{"class":4535},"\u002F\u002F Send data to create multiple records in Airtable.\n",[2354,18894,18895,18897,18899,18901,18903,18906],{"class":2356,"line":4232},[2354,18896,11721],{"class":3608},[2354,18898,18419],{"class":3608},[2354,18900,18422],{"class":3993},[2354,18902,4159],{"class":2395},[2354,18904,18905],{"class":2360},"records",[2354,18907,18429],{"class":2395},[2354,18909,18910,18912],{"class":2356,"line":4247},[2354,18911,11211],{"class":3608},[2354,18913,4008],{"class":2395},[2354,18915,18916,18918,18920,18922,18924,18926],{"class":2356,"line":4253},[2354,18917,18440],{"class":3608},[2354,18919,3714],{"class":3505},[2354,18921,3938],{"class":3608},[2354,18923,4027],{"class":3608},[2354,18925,4030],{"class":3993},[2354,18927,18451],{"class":2395},[2354,18929,18930,18932,18934],{"class":2356,"line":4259},[2354,18931,18456],{"class":2395},[2354,18933,4041],{"class":2364},[2354,18935,4044],{"class":2395},[2354,18937,18938],{"class":2356,"line":4264},[2354,18939,18465],{"class":2395},[2354,18941,18942,18944,18946,18948,18950,18952],{"class":2356,"line":6257},[2354,18943,18470],{"class":2364},[2354,18945,3617],{"class":2395},[2354,18947,18475],{"class":2364},[2354,18949,18478],{"class":2395},[2354,18951,4065],{"class":2364},[2354,18953,4044],{"class":2395},[2354,18955,18956,18958,18960],{"class":2356,"line":6262},[2354,18957,18487],{"class":2364},[2354,18959,3617],{"class":2395},[2354,18961,18492],{"class":2364},[2354,18963,18964],{"class":2356,"line":2940},[2354,18965,18497],{"class":2395},[2354,18967,18968,18970,18972,18974,18976],{"class":2356,"line":6271},[2354,18969,18502],{"class":2395},[2354,18971,11190],{"class":3505},[2354,18973,1610],{"class":2395},[2354,18975,11195],{"class":3993},[2354,18977,4096],{"class":2395},[2354,18979,18980,18983],{"class":2356,"line":6276},[2354,18981,18982],{"class":2395},"        records: records ",[2354,18984,18985],{"class":4535},"\u002F\u002F Send multiple records in one request\n",[2354,18987,18988],{"class":2356,"line":6281},[2354,18989,18990],{"class":2395},"      })\n",[2354,18992,18993],{"class":2356,"line":6286},[2354,18994,18516],{"class":2395},[2354,18996,18997],{"class":2356,"line":6291},[2354,18998,3520],{"emptyLinePlaceholder":1646},[2354,19000,19001,19003],{"class":2356,"line":6296},[2354,19002,18525],{"class":3608},[2354,19004,18528],{"class":2395},[2354,19006,19007,19009,19011,19013,19015,19017,19019],{"class":2356,"line":6302},[2354,19008,18533],{"class":3608},[2354,19010,18536],{"class":3505},[2354,19012,3938],{"class":3608},[2354,19014,4027],{"class":3608},[2354,19016,4199],{"class":2395},[2354,19018,4202],{"class":3993},[2354,19020,4205],{"class":2395},[2354,19022,19023,19025,19027,19029,19032],{"class":2356,"line":6308},[2354,19024,18551],{"class":2395},[2354,19026,4214],{"class":3993},[2354,19028,4159],{"class":2395},[2354,19030,19031],{"class":2364},"'Records added successfully:'",[2354,19033,18561],{"class":2395},[2354,19035,19036,19038,19040],{"class":2356,"line":6314},[2354,19037,4223],{"class":2395},[2354,19039,18568],{"class":3608},[2354,19041,4008],{"class":2395},[2354,19043,19044,19046,19048,19050,19053],{"class":2356,"line":6319},[2354,19045,18551],{"class":2395},[2354,19047,4156],{"class":3993},[2354,19049,4159],{"class":2395},[2354,19051,19052],{"class":2364},"'Error adding records:'",[2354,19054,18584],{"class":2395},[2354,19056,19057],{"class":2356,"line":6324},[2354,19058,4250],{"class":2395},[2354,19060,19061,19063,19065],{"class":2356,"line":6329},[2354,19062,11252],{"class":2395},[2354,19064,4226],{"class":3608},[2354,19066,4229],{"class":2395},[2354,19068,19069,19071,19073,19075,19077],{"class":2356,"line":6334},[2354,19070,18601],{"class":2395},[2354,19072,4156],{"class":3993},[2354,19074,4159],{"class":2395},[2354,19076,18608],{"class":2364},[2354,19078,4244],{"class":2395},[2354,19080,19081],{"class":2356,"line":6339},[2354,19082,11282],{"class":2395},[2354,19084,19085],{"class":2356,"line":6344},[2354,19086,4256],{"class":2395},[2354,19088,19089],{"class":2356,"line":6349},[2354,19090,3520],{"emptyLinePlaceholder":1646},[2354,19092,19093],{"class":2356,"line":6354},[2354,19094,19095],{"class":4535},"\u002F\u002F Call the function to send the records to Airtable\n",[2354,19097,19098,19100],{"class":2356,"line":3376},[2354,19099,18632],{"class":3993},[2354,19101,19102],{"class":2395},"(recordsToSend);\n",[2266,19104,19106],{"id":19105},"create-multiple-records-more-than-10","Create multiple records (more than 10)",[1617,19108],{},[1558,19110,19111],{},"To get around Airtable's API limit of 10 records per API call, you can batch your requests. Let's review how we can do this.",[1718,19113,19114],{},[2182,19115,19116,19126,19131],{},[1724,19117,19118,1863,19120,1564,19122,1569,19124,18207],{},[1593,19119,18198],{},[1593,19121,18201],{},[1593,19123,18204],{},[1593,19125,18105],{},[1724,19127,19128,19130],{},[1593,19129,18670],{},": Remove example token and insert your own.",[1724,19132,19133,19136],{},[1593,19134,19135],{},"Fields",": Edit the fields in \"recordsToSend\", to match your table.",[2346,19138,19140],{"className":2383,"code":19139,"language":2385,"meta":1636,"style":1636},"\u002F\u002F Airtable API endpoint URL\nconst AirtableBaseId = '*******'; \u002F\u002F Add Base ID \nconst AirtableTableName = '************'; \u002F\u002F Add Table Name \nconst AirtableAccessToken = '**********'; \u002F\u002F Add Personal Access Token\nconst AirtableUrl = `https:\u002F\u002Fapi.Airtable.com\u002Fv0\u002F${AirtableBaseId}\u002F${AirtableTableName}`;\n\n\u002F\u002F Replace the token used in this variable\nconst axiomData = [scrape-data];\n\n\u002F\u002F Data you want to send (adjust according to your Airtable fields)\nconst recordsToSend = axiomData.map((row) => {\n  return {\n    fields: {\n      \"Customer Name\": row[0],\n      \"Email Address\": row[1],\n      \"Phone Number\": row[2],\n      \"Customer ID\": row[3]\n    }\n  };\n});\n\n\u002F\u002F Send data to create multiple records in Airtable.\nasync function sendToAirtable(records) {\n  try {\n    const response = await fetch(AirtableUrl, {\n      method: 'POST',\n      headers: {\n        'Authorization': `Bearer ${AirtableAccessToken}`,\n        'Content-Type': 'application\u002Fjson'\n      },\n      body: JSON.stringify({ records }) \n    });\n\n    if (response.ok) {\n      const jsonResponse = await response.json();\n      console.log('Records added successfully:', jsonResponse);\n    } else {\n      console.error('Error adding records:', response.statusText);\n    }\n  } catch (error) {\n    console.error('Error with request:', error);\n  }\n}\n\n\u002F\u002F Function to batch and send records in chunks of 10\nasync function sendInBatches(records, batchSize = 10) {\n  for (let i = 0; i \u003C records.length; i += batchSize) {\n    const batch = records.slice(i, i + batchSize); \u002F\u002F Get a batch of up to 10 records\n    console.log(`Sending batch ${Math.floor(i \u002F batchSize) + 1}`);\n    await sendToAirtable(batch); \u002F\u002F Send the batch to Airtable\n  }\n}\n\n\u002F\u002F Call the function to send the records to Airtable in batches\nsendInBatches(recordsToSend);\n",[1731,19141,19142,19146,19160,19175,19190,19210,19214,19218,19232,19236,19240,19262,19268,19272,19282,19292,19302,19312,19316,19320,19324,19328,19332,19346,19352,19366,19374,19378,19392,19400,19404,19417,19421,19425,19431,19447,19459,19467,19479,19483,19491,19503,19507,19511,19515,19520,19545,19582,19607,19648,19660,19664,19668,19672,19677],{"__ignoreMap":1636},[2354,19143,19144],{"class":2356,"line":2357},[2354,19145,18235],{"class":4535},[2354,19147,19148,19150,19152,19154,19156,19158],{"class":2356,"line":1640},[2354,19149,3932],{"class":3608},[2354,19151,18242],{"class":3505},[2354,19153,3938],{"class":3608},[2354,19155,18247],{"class":2364},[2354,19157,11014],{"class":2395},[2354,19159,18252],{"class":4535},[2354,19161,19162,19164,19166,19168,19170,19172],{"class":2356,"line":1637},[2354,19163,3932],{"class":3608},[2354,19165,18259],{"class":3505},[2354,19167,3938],{"class":3608},[2354,19169,18264],{"class":2364},[2354,19171,11014],{"class":2395},[2354,19173,19174],{"class":4535},"\u002F\u002F Add Table Name \n",[2354,19176,19177,19179,19181,19183,19185,19187],{"class":2356,"line":1647},[2354,19178,3932],{"class":3608},[2354,19180,18276],{"class":3505},[2354,19182,3938],{"class":3608},[2354,19184,18281],{"class":2364},[2354,19186,11014],{"class":2395},[2354,19188,19189],{"class":4535},"\u002F\u002F Add Personal Access Token\n",[2354,19191,19192,19194,19196,19198,19200,19202,19204,19206,19208],{"class":2356,"line":3523},[2354,19193,3932],{"class":3608},[2354,19195,18293],{"class":3505},[2354,19197,3938],{"class":3608},[2354,19199,18298],{"class":2364},[2354,19201,18301],{"class":2395},[2354,19203,4379],{"class":2364},[2354,19205,18306],{"class":2395},[2354,19207,4065],{"class":2364},[2354,19209,3944],{"class":2395},[2354,19211,19212],{"class":2356,"line":3595},[2354,19213,3520],{"emptyLinePlaceholder":1646},[2354,19215,19216],{"class":2356,"line":3673},[2354,19217,18759],{"class":4535},[2354,19219,19220,19222,19224,19226,19228,19230],{"class":2356,"line":3679},[2354,19221,3932],{"class":3608},[2354,19223,18766],{"class":3505},[2354,19225,3938],{"class":3608},[2354,19227,18771],{"class":2395},[2354,19229,18774],{"class":3608},[2354,19231,18777],{"class":2395},[2354,19233,19234],{"class":2356,"line":3685},[2354,19235,3520],{"emptyLinePlaceholder":1646},[2354,19237,19238],{"class":2356,"line":3708},[2354,19239,18319],{"class":4535},[2354,19241,19242,19244,19246,19248,19250,19252,19254,19256,19258,19260],{"class":2356,"line":3761},[2354,19243,3932],{"class":3608},[2354,19245,18792],{"class":3505},[2354,19247,3938],{"class":3608},[2354,19249,18797],{"class":2395},[2354,19251,4813],{"class":3993},[2354,19253,6624],{"class":2395},[2354,19255,4818],{"class":2360},[2354,19257,6630],{"class":2395},[2354,19259,4005],{"class":3608},[2354,19261,4008],{"class":2395},[2354,19263,19264,19266],{"class":2356,"line":3775},[2354,19265,18814],{"class":3608},[2354,19267,4008],{"class":2395},[2354,19269,19270],{"class":2356,"line":3153},[2354,19271,18821],{"class":2395},[2354,19273,19274,19276,19278,19280],{"class":2356,"line":3799},[2354,19275,18826],{"class":2364},[2354,19277,18829],{"class":2395},[2354,19279,18832],{"class":3505},[2354,19281,18835],{"class":2395},[2354,19283,19284,19286,19288,19290],{"class":2356,"line":3808},[2354,19285,18840],{"class":2364},[2354,19287,18829],{"class":2395},[2354,19289,1804],{"class":3505},[2354,19291,18835],{"class":2395},[2354,19293,19294,19296,19298,19300],{"class":2356,"line":4150},[2354,19295,18851],{"class":2364},[2354,19297,18829],{"class":2395},[2354,19299,10456],{"class":3505},[2354,19301,18835],{"class":2395},[2354,19303,19304,19306,19308,19310],{"class":2356,"line":4168},[2354,19305,18862],{"class":2364},[2354,19307,18829],{"class":2395},[2354,19309,18867],{"class":3505},[2354,19311,18870],{"class":2395},[2354,19313,19314],{"class":2356,"line":4176},[2354,19315,4250],{"class":2395},[2354,19317,19318],{"class":2356,"line":4182},[2354,19319,11141],{"class":2395},[2354,19321,19322],{"class":2356,"line":4187},[2354,19323,18883],{"class":2395},[2354,19325,19326],{"class":2356,"line":4208},[2354,19327,3520],{"emptyLinePlaceholder":1646},[2354,19329,19330],{"class":2356,"line":4220},[2354,19331,18892],{"class":4535},[2354,19333,19334,19336,19338,19340,19342,19344],{"class":2356,"line":4232},[2354,19335,11721],{"class":3608},[2354,19337,18419],{"class":3608},[2354,19339,18422],{"class":3993},[2354,19341,4159],{"class":2395},[2354,19343,18905],{"class":2360},[2354,19345,18429],{"class":2395},[2354,19347,19348,19350],{"class":2356,"line":4247},[2354,19349,11211],{"class":3608},[2354,19351,4008],{"class":2395},[2354,19353,19354,19356,19358,19360,19362,19364],{"class":2356,"line":4253},[2354,19355,18440],{"class":3608},[2354,19357,3714],{"class":3505},[2354,19359,3938],{"class":3608},[2354,19361,4027],{"class":3608},[2354,19363,4030],{"class":3993},[2354,19365,18451],{"class":2395},[2354,19367,19368,19370,19372],{"class":2356,"line":4259},[2354,19369,18456],{"class":2395},[2354,19371,4041],{"class":2364},[2354,19373,4044],{"class":2395},[2354,19375,19376],{"class":2356,"line":4264},[2354,19377,18465],{"class":2395},[2354,19379,19380,19382,19384,19386,19388,19390],{"class":2356,"line":6257},[2354,19381,18470],{"class":2364},[2354,19383,3617],{"class":2395},[2354,19385,18475],{"class":2364},[2354,19387,18478],{"class":2395},[2354,19389,4065],{"class":2364},[2354,19391,4044],{"class":2395},[2354,19393,19394,19396,19398],{"class":2356,"line":6262},[2354,19395,18487],{"class":2364},[2354,19397,3617],{"class":2395},[2354,19399,18492],{"class":2364},[2354,19401,19402],{"class":2356,"line":2940},[2354,19403,18497],{"class":2395},[2354,19405,19406,19408,19410,19412,19414],{"class":2356,"line":6271},[2354,19407,18502],{"class":2395},[2354,19409,11190],{"class":3505},[2354,19411,1610],{"class":2395},[2354,19413,11195],{"class":3993},[2354,19415,19416],{"class":2395},"({ records }) \n",[2354,19418,19419],{"class":2356,"line":6276},[2354,19420,18516],{"class":2395},[2354,19422,19423],{"class":2356,"line":6281},[2354,19424,3520],{"emptyLinePlaceholder":1646},[2354,19426,19427,19429],{"class":2356,"line":6286},[2354,19428,18525],{"class":3608},[2354,19430,18528],{"class":2395},[2354,19432,19433,19435,19437,19439,19441,19443,19445],{"class":2356,"line":6291},[2354,19434,18533],{"class":3608},[2354,19436,18536],{"class":3505},[2354,19438,3938],{"class":3608},[2354,19440,4027],{"class":3608},[2354,19442,4199],{"class":2395},[2354,19444,4202],{"class":3993},[2354,19446,4205],{"class":2395},[2354,19448,19449,19451,19453,19455,19457],{"class":2356,"line":6296},[2354,19450,18551],{"class":2395},[2354,19452,4214],{"class":3993},[2354,19454,4159],{"class":2395},[2354,19456,19031],{"class":2364},[2354,19458,18561],{"class":2395},[2354,19460,19461,19463,19465],{"class":2356,"line":6302},[2354,19462,4223],{"class":2395},[2354,19464,18568],{"class":3608},[2354,19466,4008],{"class":2395},[2354,19468,19469,19471,19473,19475,19477],{"class":2356,"line":6308},[2354,19470,18551],{"class":2395},[2354,19472,4156],{"class":3993},[2354,19474,4159],{"class":2395},[2354,19476,19052],{"class":2364},[2354,19478,18584],{"class":2395},[2354,19480,19481],{"class":2356,"line":6314},[2354,19482,4250],{"class":2395},[2354,19484,19485,19487,19489],{"class":2356,"line":6319},[2354,19486,11252],{"class":2395},[2354,19488,4226],{"class":3608},[2354,19490,4229],{"class":2395},[2354,19492,19493,19495,19497,19499,19501],{"class":2356,"line":6324},[2354,19494,18601],{"class":2395},[2354,19496,4156],{"class":3993},[2354,19498,4159],{"class":2395},[2354,19500,18608],{"class":2364},[2354,19502,4244],{"class":2395},[2354,19504,19505],{"class":2356,"line":6329},[2354,19506,11282],{"class":2395},[2354,19508,19509],{"class":2356,"line":6334},[2354,19510,4256],{"class":2395},[2354,19512,19513],{"class":2356,"line":6339},[2354,19514,3520],{"emptyLinePlaceholder":1646},[2354,19516,19517],{"class":2356,"line":6344},[2354,19518,19519],{"class":4535},"\u002F\u002F Function to batch and send records in chunks of 10\n",[2354,19521,19522,19524,19526,19529,19531,19533,19535,19538,19540,19543],{"class":2356,"line":6349},[2354,19523,11721],{"class":3608},[2354,19525,18419],{"class":3608},[2354,19527,19528],{"class":3993}," sendInBatches",[2354,19530,4159],{"class":2395},[2354,19532,18905],{"class":2360},[2354,19534,1564],{"class":2395},[2354,19536,19537],{"class":2360},"batchSize",[2354,19539,3938],{"class":3608},[2354,19541,19542],{"class":3505}," 10",[2354,19544,18429],{"class":2395},[2354,19546,19547,19550,19552,19554,19557,19559,19562,19565,19568,19571,19574,19576,19579],{"class":2356,"line":6354},[2354,19548,19549],{"class":3608},"  for",[2354,19551,4141],{"class":2395},[2354,19553,14072],{"class":3608},[2354,19555,19556],{"class":2395}," i ",[2354,19558,6569],{"class":3608},[2354,19560,19561],{"class":3505}," 0",[2354,19563,19564],{"class":2395},"; i ",[2354,19566,19567],{"class":3608},"\u003C",[2354,19569,19570],{"class":2395}," records.",[2354,19572,19573],{"class":3505},"length",[2354,19575,19564],{"class":2395},[2354,19577,19578],{"class":3608},"+=",[2354,19580,19581],{"class":2395}," batchSize) {\n",[2354,19583,19584,19586,19589,19591,19593,19596,19599,19601,19604],{"class":2356,"line":3376},[2354,19585,18440],{"class":3608},[2354,19587,19588],{"class":3505}," batch",[2354,19590,3938],{"class":3608},[2354,19592,19570],{"class":2395},[2354,19594,19595],{"class":3993},"slice",[2354,19597,19598],{"class":2395},"(i, i ",[2354,19600,10060],{"class":3608},[2354,19602,19603],{"class":2395}," batchSize); ",[2354,19605,19606],{"class":4535},"\u002F\u002F Get a batch of up to 10 records\n",[2354,19608,19609,19611,19613,19615,19618,19621,19623,19626,19628,19631,19634,19637,19639,19641,19644,19646],{"class":2356,"line":6363},[2354,19610,18601],{"class":2395},[2354,19612,4214],{"class":3993},[2354,19614,4159],{"class":2395},[2354,19616,19617],{"class":2364},"`Sending batch ${",[2354,19619,19620],{"class":2395},"Math",[2354,19622,1610],{"class":2364},[2354,19624,19625],{"class":3993},"floor",[2354,19627,4159],{"class":2364},[2354,19629,19630],{"class":2395},"i",[2354,19632,19633],{"class":3608}," \u002F",[2354,19635,19636],{"class":2395}," batchSize",[2354,19638,6630],{"class":2364},[2354,19640,10060],{"class":3608},[2354,19642,19643],{"class":3505}," 1",[2354,19645,4065],{"class":2364},[2354,19647,6604],{"class":2395},[2354,19649,19650,19652,19654,19657],{"class":2356,"line":6368},[2354,19651,11733],{"class":3608},[2354,19653,18422],{"class":3993},[2354,19655,19656],{"class":2395},"(batch); ",[2354,19658,19659],{"class":4535},"\u002F\u002F Send the batch to Airtable\n",[2354,19661,19662],{"class":2356,"line":6373},[2354,19663,11282],{"class":2395},[2354,19665,19666],{"class":2356,"line":6378},[2354,19667,4256],{"class":2395},[2354,19669,19670],{"class":2356,"line":6383},[2354,19671,3520],{"emptyLinePlaceholder":1646},[2354,19673,19674],{"class":2356,"line":6388},[2354,19675,19676],{"class":4535},"\u002F\u002F Call the function to send the records to Airtable in batches\n",[2354,19678,19679,19682],{"class":2356,"line":2674},[2354,19680,19681],{"class":3993},"sendInBatches",[2354,19683,19102],{"class":2395},[1612,19685,2403],{"id":2402},[1558,19687,19688],{},"If you encounter problems, check the console log in the runtime browser to view the error message. It may also be worth checking that the credentials have been added correctly.",[2182,19690,19691,19694,19697],{},[1724,19692,19693],{},"Check for console logs in the runtime browser.",[1724,19695,19696],{},"Ensure your credentials are correct.",[1724,19698,19699],{},"Make sure all field names match exactly with your Airtable table.",[1612,19701,2423],{"id":2422},[1558,19703,19704],{},"You can easily send a single record from axiom.ai to Airtable using javascript and Airtable's rest api. Adjust the data format to match the fields in your Airtable table, and the bot will automatically push the collected data. To send multiple records, you will need a different format for the post request. Airtable also limits records being added to 10 rows only; to get around that, you can use the batching method found in the guide.",[2438,19706,19707],{},"html pre.shiki code .sU953, html code.shiki .sU953{--shiki-default:#6E7781;--shiki-dark:#8B949E}html pre.shiki code .sjeE4, html code.shiki .sjeE4{--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .sHrmB, html code.shiki .sHrmB{--shiki-default:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sbjLL, html code.shiki .sbjLL{--shiki-default:#8250DF;--shiki-dark:#D2A8FF}html pre.shiki code .sTDnQ, html code.shiki .sTDnQ{--shiki-default:#953800;--shiki-dark:#FFA657}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1636,"searchDepth":1637,"depth":1637,"links":19709},[19710,19711,19717,19718],{"id":2172,"depth":1640,"text":2173},{"id":18148,"depth":1640,"text":18149,"children":19712},[19713,19714,19715,19716],{"id":18157,"depth":1637,"text":18158},{"id":18172,"depth":1637,"text":18173},{"id":18638,"depth":1637,"text":18639},{"id":19105,"depth":1637,"text":19106},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"Learn how to post scraped data to Airtable and create new records, using axiom.ai's write JavaScript step and webhooks.",{"type":2143,"format":1718,"intent_type":2145,"intent":2454,"tags":19721,"platfrom":19723,"video":19725},[2456,2457,19722],"intergration",[19724],"Airtable","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FM_OVeykbYro?rel=0&amp;",{"title":18018,"description":19719},"guides\u002Fpost-data-to-airtable","0XXXlDEEgXk3aSaUN6tndhALgeN-loYvo4xUMfvE5V4",{"id":19730,"title":19731,"body":19732,"date":1641,"description":19911,"extension":1643,"meta":19912,"navigation":1646,"order":1641,"path":19916,"seo":19917,"stem":19918,"__hash__":19919},"guides\u002Fguides\u002Fpost-data-to-make.md","How to trigger and post data to Make with an axiom.ai automation",{"type":1555,"value":19733,"toc":19902},[19734,19736,19739,19745,19747,19749,19751,19771,19775,19778,19782,19804,19808,19827,19831,19837,19854,19858,19861,19864,19868,19875,19877,19883,19893,19897,19899],[1617,19735],{},[1558,19737,19738],{},"You can connect your browser automation to Make and pass data, including scraped data, to any of your scenarios. Connecting the browser to your API couldn’t be simpler. This guide will walk you through using axiom.ai's \"Trigger webhook\" step to post data to Make and setting up a scenario to receive the data.",[1558,19740,19741,19742,13812],{},"This guide assumes you have a Make account and have created your axiom.ai automation. To learn more about our Make integration, see our ",[1562,19743,19744],{"href":764},"working with Make",[1662,19746],{},[1612,19748,2173],{"id":2172},[1558,19750,2178],{},[1718,19752,19753],{},[2182,19754,19755,19761,19765],{},[1724,19756,19757,2189,19759,1610],{},[1593,19758,2188],{},[1562,19760,2193],{"href":2192},[1724,19762,19763,2199],{},[1593,19764,2198],{},[1724,19766,19767,2205,19769,1610],{},[1593,19768,2204],{},[1731,19770,2208],{},[1612,19772,19774],{"id":19773},"trigger-and-send-data-to-make-with-an-axiomai-automation","Trigger and send data to Make with an axiom.ai automation",[1558,19776,19777],{},"Open Make, and either edit or create a new scenario to get started, then follow the steps below.",[2219,19779],{"src":19780,"alt":19781},"\u002Fdocs\u002Fguides\u002Fmake-find-webhooks.jpg","find the webhook app in Make",[1718,19783,19784],{},[2182,19785,19786,19792,19798],{},[1724,19787,19788,19791],{},[1593,19789,19790],{},"Log into Make",": Click on \"Scenarios\", and open an existing or create a new scenario.",[1724,19793,19794,19797],{},[1593,19795,19796],{},"If the App selector is open",": Click \"Webhooks\", or click the plus button to open the app selector.",[1724,19799,19800,19803],{},[1593,19801,19802],{},"\"Triggers\"",": Select \"Custom webhook\".",[2219,19805],{"src":19806,"alt":19807},"\u002Fdocs\u002Fguides\u002Fmake-custom-webhook.jpg","select custom webhook in Make",[1718,19809,19810],{},[2182,19811,19812,19817,19822],{},[1724,19813,19814,19816],{},[1593,19815,9763],{},": Give your webhook a name or choose an existing one, then click \"Save\".",[1724,19818,19819,19821],{},[1593,19820,269],{},": \"Copy my address\" to get the webhook endpoint to add into your browser automation.",[1724,19823,19824,19826],{},[1593,19825,763],{},": Is now listening for the data and will determine the data structure automatically from the incoming data. It's time for a test run of the axiom.ai automation you created.",[2219,19828],{"src":19829,"alt":19830},"\u002Fdocs\u002Fguides\u002Fmake-copy-webhook.jpg","Listening for data webhook in Make",[1558,19832,19833,19834,19836],{},"Switching to axiom.ai, use the step finder to add the ",[1562,19835,1605],{"href":1194}," step and configure it.",[1718,19838,19839],{},[2182,19840,19841,19846],{},[1724,19842,19843,19845],{},[1593,19844,2204],{},": Paste the endpoint from Make into this field.",[1724,19847,19848,19850,19851,19853],{},[1593,19849,269],{},":  \"Insert data\" and select ",[1731,19852,1837],{}," or any data you wish to send to Make.",[2219,19855],{"src":19856,"alt":19857},"\u002Fdocs\u002Fguides\u002Faxiom-webhook-set-up.jpg","Configure the trigger webhook step and post scraped data to Make",[1612,19859,14294],{"id":19860},"use-cases",[1558,19862,19863],{},"Using Make with axiom.ai can unlock a lot of opportunities, let's drive into some use cases that you can use them for.",[2266,19865,19867],{"id":19866},"post-data-to-excel","Post data to Excel",[1558,19869,19870,19871,19874],{},"To send data to Excel, set up your automation and Make scenario as normal - follow the ",[1562,19872,19774],{"href":19873},"#trigger-and-send-data-to-make-with-an-axiomai-automation"," instructions for more information. You can make use of the \"Microsoft 365 Excel\" integration in Make.com to pass your axiom.ai data to your Excel sheet.",[1612,19876,2403],{"id":2402},[1558,19878,19879,19880,19882],{},"Now click ",[1593,19881,5454],{}," in axiom.ai and switch back to Make.",[1718,19884,19885],{},[2182,19886,19887,19890],{},[1724,19888,19889],{},"Once the axiom.ai automation has run, check in Make for the message \"successfully determined\".",[1724,19891,19892],{},"This means the data has been successfully sent.",[2219,19894],{"src":19895,"alt":19896},"\u002Fdocs\u002Fguides\u002Fmake-successfuly-determined.jpg","Successfully determined data format in Make",[1612,19898,2423],{"id":2422},[1558,19900,19901],{},"Using axiom.ai and Make allows you to connect your browser to thousands of apps via API connections. With just three steps, you can set up a basic browser scraper to send data to Scenarios in Make within minutes. This setup can be easily adapted to more complex use cases.",{"title":1636,"searchDepth":1637,"depth":1637,"links":19903},[19904,19905,19906,19909,19910],{"id":2172,"depth":1640,"text":2173},{"id":19773,"depth":1640,"text":19774},{"id":19860,"depth":1640,"text":14294,"children":19907},[19908],{"id":19866,"depth":1637,"text":19867},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"Learn how to post data from axiom.ai to Make using webhooks. Follow simple, step-by-step instructions to automate workflows and connect your APIs to the browser.",{"pinned":1646,"type":2143,"format":1718,"intent_type":2145,"intent":2454,"tags":19913,"platfrom":19914,"video":19915},[2456,2457,19722],[763],"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FaGyCO50Gl3s?rel=0&amp;","\u002Fguides\u002Fpost-data-to-make",{"title":19731,"description":19911},"guides\u002Fpost-data-to-make","gO96h9fAt9NsVI7JB5KYTEbaoBRrPfLKCDw7RBwsiDs",{"id":19921,"title":19922,"body":19923,"date":1641,"description":20197,"extension":1643,"meta":20198,"navigation":1646,"order":1641,"path":20203,"seo":20204,"stem":20205,"__hash__":20206},"guides\u002Fguides\u002Fpost-on-threads.md","How to automate posting on Meta’s new text message app Threads",{"type":1555,"value":19924,"toc":20192},[19925,19927,19938,19940,19943,19970,19972,19982,20182,20184],[1617,19926],{},[1558,19928,19929,19930,19934,19935,1610],{},"Threads is an app for sharing short messages, developed by the Instagram team and owned by Meta. This guide shows how to build a bot that automates posting on Threads. The bot reads a message from a Google Sheet, opens Threads in a web browser, clicks \"Create Post\", enters the message, ",[1562,19931,19933],{"href":19932},"\u002Fdocs\u002Ftutorials\u002Ffiles","uploads"," an image and posts it. This Threads automation takes only a few minutes to make using our ",[1562,19936,19937],{"href":1361},"builder",[1612,19939,12769],{"id":12768},[1558,19941,19942],{},"Create a Google Sheet add some Post to the sheet. See example below.",[8679,19944,19945,19953],{},[8682,19946,19947],{},[8685,19948,19949,19951],{},[8688,19950,5152],{},[8688,19952,12783],{},[8695,19954,19955,19963],{},[8685,19956,19957,19960],{},[8700,19958,19959],{},"Axiom can automate Instagram",[8700,19961,19962],{},"\u002FUsers\u002Fthudercloudone\u002FDesktop\u002FScreenshot 2024-04-05 at 12.20.24.png",[8685,19964,19965,19968],{},[8700,19966,19967],{},"Axiom can automate anything in the browser",[8700,19969,19962],{},[1612,19971,8720],{"id":8719},[1558,19973,12812,19974,12817,19978,8729,19980,12823],{},[1562,19975,5041],{"href":19976,"rel":19977},"https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Faxiom-browser-automation\u002Fcpgamigjcbffkaiciiepndmonbfdimbb?hl=en-GB",[1633],[1593,19979,8728],{},[1593,19981,12822],{},[1718,19983,19984],{},[1721,19985,19986,20014],{},[1724,19987,19988,1729,19990,19992],{},[1593,19989,1728],{},[1731,19991,1733],{},[1721,19993,19994,19998,20002,20008],{},[1724,19995,19996,17800],{},[1731,19997,1740],{},[1724,19999,20000,9551],{},[1731,20001,1746],{},[1724,20003,20004,1801,20006,1610],{},[1731,20005,8769],{},[1731,20007,8773],{},[1724,20009,20010,1801,20012,1610],{},[1731,20011,6866],{},[1731,20013,8781],{},[1724,20015,20016,1729,20018,20020,20030],{},[1593,20017,1752],{},[1731,20019,667],{},[1721,20021,20022],{},[1724,20023,20024,1771,20026,1775,20028,1610],{},[1731,20025,2100],{},[1731,20027,1833],{},[1731,20029,1778],{},[1721,20031,20032,20048,20079,20099,20127,20152],{},[1724,20033,20034,1729,20036,20039],{},[1593,20035,1761],{},[1731,20037,20038],{},"Go to page: Threads",[1721,20040,20041],{},[1724,20042,20043,1863,20045,1610],{},[1731,20044,1770],{},[1731,20046,20047],{},"https:\u002F\u002Fwww.threads.net",[1724,20049,20050,1729,20052,20055],{},[1593,20051,1784],{},[1731,20053,20054],{},"Click element: Open post modal",[1721,20056,20057,20070],{},[1724,20058,20059,1771,20061,20063,20064,20067,20068,1610],{},[1731,20060,1794],{},[1731,20062,1794],{},", highlight the ",[1731,20065,20066],{},"Post"," button and press ",[1731,20069,5263],{},[1724,20071,20072,1801,20074,5256,20076,1610],{},[1731,20073,269],{},[1731,20075,17017],{},[1731,20077,20078],{},"\"Use element text instead of HTML\"",[1724,20080,20081,1729,20083,20086],{},[1593,20082,1809],{},[1731,20084,20085],{},"Enter text: Message",[1721,20087,20088],{},[1724,20089,20090,1771,20092,20094,20095,17347,20097,1610],{},[1731,20091,2580],{},[1731,20093,1833],{},", select column ",[1731,20096,5152],{},[1731,20098,1778],{},[1724,20100,20101,1729,20103,20106],{},[1593,20102,1852],{},[1731,20104,20105],{},"Upload a file: Add image",[1721,20107,20108,20117],{},[1724,20109,20110,1771,20112,20114,20115,1610],{},[1731,20111,1794],{},[1731,20113,1794],{},", highlight the image upload icon, click, then press ",[1731,20116,5263],{},[1724,20118,20119,1771,20121,20094,20123,17347,20125,1610],{},[1731,20120,2815],{},[1731,20122,1833],{},[1731,20124,12783],{},[1731,20126,1778],{},[1724,20128,20129,1729,20131,20133],{},[1593,20130,1880],{},[1731,20132,11532],{},[1721,20134,20135,20144],{},[1724,20136,20137,1771,20139,20063,20141,20143],{},[1731,20138,1794],{},[1731,20140,1794],{},[1731,20142,20066],{}," button again and click.",[1724,20145,20146,1801,20148,5256,20150,1610],{},[1731,20147,269],{},[1731,20149,17017],{},[1731,20151,20078],{},[1724,20153,20154,1729,20156,20158],{},[1593,20155,1917],{},[1731,20157,1920],{},[1721,20159,20160,20165,20170,20176],{},[1724,20161,20162,20164],{},[1731,20163,1740],{},": Search for and select the same Google Sheet.",[1724,20166,20167,20169],{},[1731,20168,1746],{},": Choose the same tab or leave blank.",[1724,20171,20172,1801,20174,1610],{},[1731,20173,13055],{},[1731,20175,1804],{},[1724,20177,20178,1801,20180,1610],{},[1731,20179,13063],{},[1731,20181,1804],{},[1612,20183,2423],{"id":2422},[1558,20185,20186,20187,20191],{},"In just a few steps, anyone can create an automation that reads data from a Google Sheet, opens a webpage, and inputs a message into Meta's Threads app without writing any code. This template works on the desktop automation runner, We can swap the \"Upload a file\" step for the ",[1562,20188,20190],{"href":20189},"\u002Fdocs\u002Ftutorials\u002Ffiles\u002Fupload-cloud","‘Upload a file from Google Drive’"," to run in the cloud.",{"title":1636,"searchDepth":1637,"depth":1637,"links":20193},[20194,20195,20196],{"id":12768,"depth":1640,"text":12769},{"id":8719,"depth":1640,"text":8720},{"id":2422,"depth":1640,"text":2423},"Learn how to automate sending posts on threads with this step by step guide for creating a browser bot.",{"type":2143,"format":1718,"intent_type":2675,"intent":2676,"tags":20199,"platfrom":20200},[2942,13097],[20201,20202],"Threads","Meta","\u002Fguides\u002Fpost-on-threads",{"title":19922,"description":20197},"guides\u002Fpost-on-threads","h95_A5cQ2vTqdpbD2T-NNzBJDndx4ucPTjtaIoeALPU",{"id":20208,"title":20209,"body":20210,"date":1641,"description":20514,"extension":1643,"meta":20515,"navigation":1646,"order":1641,"path":20520,"seo":20521,"stem":20522,"__hash__":20523},"guides\u002Fguides\u002Fpower-automate.md","How to trigger axiom.ai automations using Power Automate",{"type":1555,"value":20211,"toc":20504},[20212,20214,20217,20220,20222,20224,20244,20248,20251,20255,20264,20285,20292,20334,20338,20342,20350,20380,20384,20413,20417,20424,20466,20470,20472,20475,20491,20494,20496,20499],[1617,20213],{},[1558,20215,20216],{},"Power Automate offers a powerful Windows experience to build out automations for your desktop applications. When paired with axiom.ai automations there is nothing that you can't automate in order to power up your workflows.",[1558,20218,20219],{},"This guide assumes that you already have an automation set up, want to create a trigger using Power Automate, and have an axiom.ai plan that supports webhooks.",[1612,20221,2173],{"id":2172},[1558,20223,2178],{},[1718,20225,20226],{},[2182,20227,20228,20234,20238],{},[1724,20229,20230,2189,20232,1610],{},[1593,20231,2188],{},[1562,20233,2193],{"href":2192},[1724,20235,20236,2199],{},[1593,20237,2198],{},[1724,20239,20240,2205,20242,1610],{},[1593,20241,2204],{},[1731,20243,2208],{},[1612,20245,20247],{"id":20246},"trigger-an-axiomai-automation-with-power-automate","Trigger an axiom.ai automation with Power Automate",[1558,20249,20250],{},"Learn how to trigger your axiom.ai automations with Power Automate. The methods vary depending on if you are using desktop or web so be sure to select the right instructions before continuing.",[2266,20252,20254],{"id":20253},"triggering-with-the-power-automate-desktop-app","Triggering with the Power Automate desktop app",[1558,20256,20257,20258,20263],{},"You will first need to ensure you have installed ",[1562,20259,20262],{"href":20260,"rel":20261},"https:\u002F\u002Fwww.microsoft.com\u002Fstore\u002FproductId\u002F9NFTCH6J7FHV?ocid=pdpshare",[1633],"Power Automate"," from the Microsoft Store.",[1718,20265,20266],{},[2182,20267,20268,20274,20279],{},[1724,20269,20270,20273],{},[1593,20271,20272],{},"New flow",": Open Power Automate, tap \"+ New flow\" to create a new flow.",[1724,20275,20276,20278],{},[1593,20277,2247],{},": You can add any number of steps to your flow, or use an existing flow to trigger your axiom.ai automation.",[1724,20280,20281,20284],{},[1593,20282,20283],{},"Invoke web service",": Search for the \"invoke web service\" action, add this to your flow.",[1558,20286,20287,20288,20291],{},"To configure the ",[2434,20289,20290],{},"invoke web service"," action, you'll need to enable the following:",[1718,20293,20294],{},[2182,20295,20296,20302,20308,20315,20321,20328],{},[1724,20297,20298,2205,20300,1610],{},[1593,20299,5526],{},[1731,20301,2208],{},[1724,20303,20304,1801,20306,1610],{},[1593,20305,13794],{},[1731,20307,2254],{},[1724,20309,20310,1801,20313,1610],{},[1593,20311,20312],{},"Accept",[1731,20314,10433],{},[1724,20316,20317,1801,20319,1610],{},[1593,20318,13801],{},[1731,20320,10433],{},[1724,20322,20323,20325,20326,13812],{},[1593,20324,2259],{},": This should be set to the per our ",[1562,20327,13811],{"href":8308},[1724,20329,20330,20333],{},[1593,20331,20332],{},"Encode request body",": This should be disabled.",[2219,20335],{"src":20336,"alt":20337},"\u002Fdocs\u002Fguides\u002Fpower-automate-trigger-desktop.png","set up invoke web service action in power automate",[2266,20339,20341],{"id":20340},"triggering-with-the-power-automate-web-app","Triggering with the Power Automate web app",[1558,20343,20344,20345,20349],{},"You can access ",[1562,20346,20262],{"href":20347,"rel":20348},"https:\u002F\u002Fmake.powerautomate.com\u002F",[1633]," on the web. This requires a paid subscription with Power Automate.",[1718,20351,20352],{},[2182,20353,20354,20364,20370],{},[1724,20355,20356,20359,20360,20363],{},[1593,20357,20358],{},"Create a new flow",": Open ",[1562,20361,20262],{"href":20347,"rel":20362},[1633]," on the web, create a new \"instant-\" or \"scheduled cloud flow\".",[1724,20365,20366,20369],{},[1593,20367,20368],{},"Select trigger",": Set to your desired trigger: this guide will focus on the \"manually trigger a flow\" option.",[1724,20371,20372,20375,20376,20379],{},[1593,20373,20374],{},"Add HTTP action",": Click \"new step\" and search for the ",[2434,20377,20378],{},"HTTP"," action.",[1558,20381,20287,20382,20291],{},[2434,20383,20378],{},[1718,20385,20386],{},[2182,20387,20388,20394,20400,20407],{},[1724,20389,20390,2205,20392,1610],{},[1593,20391,5526],{},[1731,20393,2208],{},[1724,20395,20396,1801,20398,1610],{},[1593,20397,13794],{},[1731,20399,2254],{},[1724,20401,20402,1801,20404,1610],{},[1593,20403,16037],{},[1731,20405,20406],{},"Content-Type: application\u002Fjson",[1724,20408,20409,20325,20411,13812],{},[1593,20410,2259],{},[1562,20412,13811],{"href":8308},[1612,20414,20416],{"id":20415},"trigger-a-power-automate-flow-with-an-axiomai-automation","Trigger a Power Automate flow with an axiom.ai automation",[1558,20418,20419,20420,20423],{},"This guide is only applicable to ",[1562,20421,20262],{"href":20347,"rel":20422},[1633]," on the web. Power Automate's desktop app currently does not support triggers via webhook.",[1718,20425,20426],{},[2182,20427,20428,20435,20440,20449,20455,20461],{},[1724,20429,20430,20359,20432,20363],{},[1593,20431,20358],{},[1562,20433,20262],{"href":20347,"rel":20434},[1633],[1724,20436,20437,20439],{},[1593,20438,20368],{},": Set your trigger to \"when a HTTP request is received\".",[1724,20441,20442,20444,20445,20448],{},[1593,20443,2247],{},": Set the \"when a HTTP request is received\" action to allow for triggering from \"anyone\". ",[2434,20446,20447],{},"Note: consider your organisations security needs before enabling this",". Optionally, you can set a \"request body JSON schema\".",[1724,20450,20451,20454],{},[1593,20452,20453],{},"Save & get URL",": Save your flow to generate the webhook URL, save this for later: this will be unique for your flow.",[1724,20456,20457,20460],{},[1593,20458,20459],{},"Open your axiom.ai automation",": Head back into axiom.ai and open the automation you'd like to use to trigger your Power Automate flow from.",[1724,20462,20463,20465],{},[1593,20464,13862],{},": Add a \"trigger a webhook\" step to your automation, using the webhook URL provided by Power Automate. You can also send a payload based on the payload schema set up in Power Automate.",[2219,20467],{"src":20468,"alt":20469},"\u002Fdocs\u002Fguides\u002Fpower-automate-trigger-a-webhook.jpg","set up trigger a wehook step in axiom.ai",[1612,20471,2403],{"id":2402},[1558,20473,20474],{},"Now that you've built out your entire workflow, you can test it!",[1718,20476,20477],{},[2182,20478,20479,20485],{},[1724,20480,20481,20484],{},[1593,20482,20483],{},"Trigger axiom.ai automation",": Open the Power Automate flow you have created to trigger your automation. Hit \"Run\".",[1724,20486,20487,20490],{},[1593,20488,20489],{},"Open axiom.ai",": Head into your axiom.ai extension - you may already see that your automation is running. If this has completed, you'll find the run report in the \"run reports\" section of the dashboard.",[1558,20492,20493],{},"If you find that the automation has not run, and is not present in the \"run reports\", this would mean that the automation has failed to start. Review your Power Automation flow for any error messages that may have been raised.",[1612,20495,2423],{"id":2422},[1558,20497,20498],{},"Being able to trigger axiom.ai automations with Power Automate flows, and being able to trigger Power Automate flows with axiom.ai automations, offers a huge range of possiblilities for organisations to power up their workflows.",[1558,20500,20501],{},[2434,20502,20503],{},"Information valid as of 22nd October 2024..",{"title":1636,"searchDepth":1637,"depth":1637,"links":20505},[20506,20507,20511,20512,20513],{"id":2172,"depth":1640,"text":2173},{"id":20246,"depth":1640,"text":20247,"children":20508},[20509,20510],{"id":20253,"depth":1637,"text":20254},{"id":20340,"depth":1637,"text":20341},{"id":20415,"depth":1640,"text":20416},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"Use Power Automate to trigger your axiom.ai automations and use axiom.ai automations to trigger your flows.",{"type":2143,"format":1718,"intent_type":2145,"intent":2454,"tags":20516,"platfrom":20517},[2456,2457,19722],[20518,20519],"power automate","microsoft","\u002Fguides\u002Fpower-automate",{"title":20209,"description":20514},"guides\u002Fpower-automate","QNsoS6BeB0dqhrICsXZWn0mm4ZpjhILTcIgP61Pup0c",{"id":20525,"title":20526,"body":20527,"date":20808,"description":20809,"extension":1643,"meta":20810,"navigation":1646,"order":1641,"path":20816,"seo":20817,"stem":20818,"__hash__":20819},"guides\u002Fguides\u002Fsales-navigator-connect.md","How to automate your lead connections on LinkedIn Sales Navigator",{"type":1555,"value":20528,"toc":20801},[20529,20531,20545,20547,20549,20551,20555,20560,20565,20567,20571,20669,20673,20680,20682,20686,20797],[1617,20530],{},[1558,20532,16227,20533,20536,20537,20540,20541,20544],{},[1593,20534,20535],{},"Saved list of leads",", extracting their profile links and names. It then opens each profile link in Chrome, clicks on the menu option, clicks  ",[1593,20538,20539],{},"Connect"," and enters a customized message for each lead using their name. Finally, it clicks  ",[1593,20542,20543],{},"Send invitation",". This process ensures that a personalized message is sent iteratively to each lead when connecting.",[1662,20546],{},[1612,20548,16237],{"id":16236},[1558,20550,16240],{},[1612,20552,20554],{"id":20553},"install-the-sales-navigator-messenger-connection-bot","Install the Sales Navigator Messenger Connection bot",[1558,20556,16247,20557,16251],{},[1593,20558,20559],{},"Install Chrome Extension",[1558,20561,1703,20562,1610],{},[1593,20563,20564],{},"Start",[1558,20566,1709],{},[1612,20568,20570],{"id":20569},"configure-your-sales-navigator-messenger-connection-steps","Configure your Sales Navigator Messenger Connection steps",[1718,20572,20573,20667],{},[1721,20574,20575,20593],{},[1724,20576,20577,1729,20579,20581],{},[1593,20578,1728],{},[1731,20580,14912],{},[1721,20582,20583,20588],{},[1724,20584,20585,20587],{},[1731,20586,5526],{},": Paste your \"Saved list of leads\" URL.",[1724,20589,20590,20592],{},[1731,20591,1800],{},": Set how many leads to connect and message.",[1724,20594,20595,1729,20597,20599],{},[1593,20596,1752],{},[1731,20598,667],{},[1721,20600,20601,20609,20617,20625,20632,20640,20653,20660],{},[1724,20602,20603,1729,20605,20608],{},[1593,20604,1761],{},[1731,20606,20607],{},"Go to page^",": Navigates to each lead’s profile.",[1724,20610,20611,1729,20613,20616],{},[1593,20612,1784],{},[1731,20614,20615],{},"Split name into columns^",": Extracts first name.",[1724,20618,20619,1729,20621,20624],{},[1593,20620,1809],{},[1731,20622,20623],{},"Click Element^",": Clicks menu button.",[1724,20626,20627,1729,20629,20631],{},[1593,20628,1852],{},[1731,20630,20623],{},": Clicks \"Connect\" button.",[1724,20633,20634,1729,20636,20639],{},[1593,20635,1880],{},[1731,20637,20638],{},"Wait^",": Pauses before next step.",[1724,20641,20642,1729,20644,20646],{},[1593,20643,1917],{},[1731,20645,8017],{},[1721,20647,20648],{},[1724,20649,20650,20652],{},[1731,20651,2580],{},": Enter the message to send.",[1724,20654,20655,1729,20657,20659],{},[1593,20656,2829],{},[1731,20658,20623],{},": Clicks \"Send invitation\" button.",[1724,20661,20662,1729,20664,20666],{},[1593,20663,14476],{},[1731,20665,20638],{},": Waits for the request to be sent.",[1558,20668,2610],{},[1612,20670,20672],{"id":20671},"run-your-sales-navigator-messenger-connection-bot","Run your Sales Navigator Messenger Connection bot",[1558,20674,20675,20676,20679],{},"To test the Sales Navigator Messenger Connection bot, disable ",[1731,20677,20678],{},"Step 2.8: Press Key(s)"," to prevent sending messages.",[1612,20681,1398],{"id":1967},[1558,20683,2635,20684,1610],{},[1562,20685,2620],{"href":638},[1718,20687,20688],{},[1721,20689,20690,20699,20715,20726,20739,20753,20766,20777,20784],{},[1724,20691,20692,20694,20696,20697,2855],{},[1593,20693,11935],{},[1981,20695],{},"\nEnsure you have set filters in Apollo, then copy the full filtered search URL into the ",[1731,20698,1043],{},[1724,20700,20701,20704,20706,20707,20709,20710,11955,20712,1610],{},[1593,20702,20703],{},"Select button not working?",[1981,20705],{},"\nIn the ",[1731,20708,5243],{}," step, use the custom selector ",[1731,20711,11954],{},[1562,20713,20714],{"href":1383},"Learn more",[1724,20716,20717,20720,20722,20723,20725],{},[1593,20718,20719],{},"'Select this page' not clicked?",[1981,20721],{},"\nUse the ",[1731,20724,11972],{}," option in the selector tool to target \"Select this page\".",[1724,20727,20728,20731,20733,20734,20736,20737,1610],{},[1593,20729,20730],{},"Save People button not working?",[1981,20732],{},"\nReselect the 'Save' button in the ",[1731,20735,5243],{}," step or try using ",[1731,20738,11972],{},[1724,20740,20741,20743,20745,20746,20748,20749,11955,20751,1610],{},[1593,20742,11991],{},[1981,20744],{},"\nUse this custom selector in the ",[1731,20747,5243],{}," step: ",[1731,20750,12000],{},[1562,20752,20714],{"href":1391},[1724,20754,20755,20758,20760,20761,20763,20764,2855],{},[1593,20756,20757],{},"Save keystroke not working?",[1981,20759],{},"\nRe-record the ",[1731,20762,12014],{}," keystroke in the ",[1731,20765,6944],{},[1724,20767,20768,20771,20773,20774,20776],{},[1593,20769,20770],{},"Save happens too fast?",[1981,20772],{},"\nIncrease the wait time in the ",[1731,20775,349],{}," step to ensure save completes.",[1724,20778,20779,20781,20783],{},[1593,20780,12031],{},[1981,20782],{},"\nReselect the \"Next\" button at the bottom of the table.",[1724,20785,20786,20789,20791,20792,20794,20795,1610],{},[1593,20787,20788],{},"Jump goes to the wrong step?",[1981,20790],{},"\nSet the ",[1731,20793,1070],{}," to return to ",[1731,20796,2535],{},[1558,20798,2118,20799],{},[1562,20800,2121],{"href":82},{"title":1636,"searchDepth":1637,"depth":1637,"links":20802},[20803,20804,20805,20806,20807],{"id":16236,"depth":1640,"text":16237},{"id":20553,"depth":1640,"text":20554},{"id":20569,"depth":1640,"text":20570},{"id":20671,"depth":1640,"text":20672},{"id":1967,"depth":1640,"text":1398},"2024-01-07","Learn how to automate LinkedIn Sales Navigator lead connections and personalized messaging using axiom.ai. This guide covers scraping leads, configuring connection steps, and sending custom messages at scale.",{"read":3151,"level":2140,"video":20811,"templateId":4182,"type":2143,"format":2144,"intent_type":2675,"intent":2676,"tags":20812,"platfrom":20814},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FOK6te1y9biM",[13097,20813,2679,2680],"connect",[16510,20815],"Sale Navigator","\u002Fguides\u002Fsales-navigator-connect",{"title":20526,"description":20809},"guides\u002Fsales-navigator-connect","mgHNdbRiUVSON9pSGTXlf-OscbCyDHS8q0WoGSdy_0I",{"id":20821,"title":20822,"body":20823,"date":21120,"description":21121,"extension":1643,"meta":21122,"navigation":1646,"order":1641,"path":21128,"seo":21129,"stem":21130,"__hash__":21131},"guides\u002Fguides\u002Fscrape-amazon.md","How to Scrape Amazon for Product Data (Fast and Easy)",{"type":1555,"value":20824,"toc":21112},[20825,20827,20830,20832,20834,20843,20847,20854,20858,20860,20864,20998,21002,21004,21006,21010,21012,21014,21090],[1617,20826],{},[1558,20828,20829],{},"This Amazon scraper template pulls data from Amazon to a Google Sheet. It cycles through Amazon product links in the sheet, extracts data, and updates the sheet. After processing, it deletes each link. Configurartion takes minutes.",[1662,20831],{},[1612,20833,1667],{"id":1666},[1558,20835,1670,20836,20838,20839,20842],{},[1593,20837,1673],{},", presuming you already have an account. Name your sheet something like ",[1593,20840,20841],{},"\"Amazon Scraper\""," and set up a tab called 'Amazon product links\"**. Add another tab called 'Data'.",[1612,20844,20846],{"id":20845},"install-the-amazon-scraper","Install the Amazon Scraper",[1558,20848,20849,20850,1696,20852,1700],{},"To install this Amazon scraper click ",[1593,20851,1695],{},[1593,20853,1699],{},[1558,20855,1703,20856,1610],{},[1593,20857,1706],{},[1558,20859,1709],{},[1612,20861,20863],{"id":20862},"configure-your-amazon-scraper-in-minutes","Configure your Amazon scraper in minutes",[1718,20865,20866],{},[1721,20867,20868,20886],{},[1724,20869,20870,1729,20872,20874],{},[1593,20871,1986],{},[1731,20873,1733],{},[1721,20875,20876,20880],{},[1724,20877,20878,1741],{},[1731,20879,1740],{},[1724,20881,20882,7507,20884,1610],{},[1731,20883,1746],{},[1731,20885,7510],{},[1724,20887,20888,1729,20890,20892],{},[1593,20889,2535],{},[1731,20891,667],{},[1721,20893,20894,20910,20921,20942,20970],{},[1724,20895,20896,1729,20898,20900],{},[1593,20897,2544],{},[1731,20899,1043],{},[1721,20901,20902],{},[1724,20903,20904,1771,20906,1775,20908,7533],{},[1731,20905,1770],{},[1731,20907,1774],{},[1731,20909,1778],{},[1724,20911,20912,1729,20914,20916],{},[1593,20913,2562],{},[1731,20915,14958],{},[1721,20917,20918],{},[1724,20919,20920],{},"No change required.",[1724,20922,20923,1729,20925,20927],{},[1593,20924,2570],{},[1731,20926,1787],{},[1721,20928,20929,20937],{},[1724,20930,20931,3617,20933,20936],{},[1731,20932,1794],{},[1562,20934,20935],{"href":1387},"Point and click"," to select the data you wish to scrape.",[1724,20938,20939,20941],{},[1731,20940,1800],{},": Set to match the number of columns of data you selected to scrape.",[1724,20943,20944,1729,20946,20948],{},[1593,20945,2586],{},[1731,20947,4914],{},[1721,20949,20950,20954,20958,20964],{},[1724,20951,20952,1741],{},[1731,20953,1740],{},[1724,20955,20956,1894],{},[1731,20957,1746],{},[1724,20959,20960,1900,20962,1610],{},[1731,20961,1899],{},[1731,20963,1837],{},[1724,20965,20966,1801,20968,1610],{},[1731,20967,1908],{},[1731,20969,7610],{},[1724,20971,20972,1729,20974,20976],{},[1593,20973,2594],{},[1731,20975,1920],{},[1721,20977,20978,20982,20986,20992],{},[1724,20979,20980,1741],{},[1731,20981,1740],{},[1724,20983,20984,1931],{},[1731,20985,1746],{},[1724,20987,20988,1801,20990,1610],{},[1731,20989,1936],{},[1731,20991,1804],{},[1724,20993,20994,1801,20996,1610],{},[1731,20995,1943],{},[1731,20997,1804],{},[1612,20999,21001],{"id":21000},"run-your-amazon-scraper","Run your Amazon scraper",[1558,21003,1952],{},[1612,21005,1956],{"id":1955},[1558,21007,1959,21008,1964],{},[1562,21009,1963],{"href":1962},[1612,21011,1398],{"id":1967},[1558,21013,1970],{},[1718,21015,21016],{},[1721,21017,21018,21033,21045,21058,21069,21082],{},[1724,21019,21020,21022,1983,21024,1987,21027,21029,21030,21032],{},[1593,21021,1979],{},[1981,21023],{},[1731,21025,21026],{},"Step 1.0 – Read data from a Google Sheet",[1731,21028,1990],{},". For example, ",[1731,21031,3346],{}," will scrape 100 rows.",[1724,21034,21035,21037,1983,21039,21042,21043,1610],{},[1593,21036,2000],{},[1981,21038],{},[1731,21040,21041],{},"Step 2.3 – Get data from bot's current page",", try reselecting or using ",[1562,21044,9082],{"href":1383},[1724,21046,21047,21050,2029,21052,2033,21054,2037,21056,1610],{},[1593,21048,21049],{},"Slow running scraper?",[1981,21051],{},[1731,21053,2032],{},[1731,21055,2036],{},[1731,21057,1804],{},[1724,21059,21060,21063,21065,21066,21068],{},[1593,21061,21062],{},"Want to speed the scraper up?",[1981,21064],{},"\nSet ",[1731,21067,1800],{}," to match the number of columns you selected to scrape.",[1724,21070,21071,21073,1983,21075,2080,21078,2101,21080,1610],{},[1593,21072,2094],{},[1981,21074],{},[1731,21076,21077],{},"Step 2.4 – Write Data to a Google Sheet",[1731,21079,2100],{},[1731,21081,1837],{},[1724,21083,21084,21086,2111,21088,2115],{},[1593,21085,2108],{},[1981,21087],{},[1731,21089,2114],{},[1558,21091,2118,21092,21094,21095,4902,21099,21103,21104,21107,21108],{},[1562,21093,2121],{"href":82},"\nLooking to ",[1562,21096,21098],{"href":21097},"\u002Fblog\u002Fscrape-amazon-asins","scrape ASINs",[1562,21100,21102],{"href":21101},"\u002Fblog\u002Famazon-posts","automate Amazon posts"," follow these ",[1562,21105,10493],{"href":21106},"\u002Fblog",". Read this link If you want to ",[1562,21109,21111],{"href":21110},"\u002Fblog\u002Fhow-to-scrape-product-details-from-amazon-books","scrape Amazon books.",{"title":1636,"searchDepth":1637,"depth":1637,"links":21113},[21114,21115,21116,21117,21118,21119],{"id":1666,"depth":1640,"text":1667},{"id":20845,"depth":1640,"text":20846},{"id":20862,"depth":1640,"text":20863},{"id":21000,"depth":1640,"text":21001},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"2023-01-20","Learn how to scrape Amazon product data into Google Sheets using axiom.ai's no-code automation tool. This guide covers setting up, configuring, and running an Amazon scraper for efficient data extraction.",{"pinned":1646,"read":9111,"level":2140,"video":21123,"templateId":6363,"type":2143,"format":2144,"intent_type":2675,"intent":5626,"tags":21124,"platfrom":21126},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FqDFksZ4GLG0",[2149,21125],"google sheet",[21127],"Amazon","\u002Fguides\u002Fscrape-amazon",{"title":20822,"description":21121},"guides\u002Fscrape-amazon","VdVhD1jorL94z-t9X2ZmOBybBKbpeflNOxF6cesCxIo",{"id":21133,"title":21134,"body":21135,"date":1641,"description":21396,"extension":1643,"meta":21397,"navigation":1646,"order":1641,"path":21401,"seo":21402,"stem":21403,"__hash__":21404},"guides\u002Fguides\u002Fscrape-html-extract-data-with-ai.md","How to extract data from HTML with an AI",{"type":1555,"value":21136,"toc":21390},[21137,21139,21153,21155,21161,21163,21166,21197,21201,21380,21382,21384],[1617,21138],{},[1558,21140,21141,21142,21144,21145,21148,21149,21152],{},"Learn how simple it is to create a web scraper that loops through URLs in a Google Sheets, scrapes the HTML, and then uses ",[1562,21143,739],{"href":740}," to extract data—all by combining just a few steps and completely bypassing the need for CSS selectors. get started quickly with this ",[1562,21146,21147],{"href":7739},"ChatGPT web scraper template."," Visit these pages to learn more about getting started with ",[1562,21150,21151],{"href":619},"extracting data"," and using our [builder.](\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fbuilder A ChatGPT subscription is required to run this bot.",[1612,21154,8720],{"id":8719},[1558,21156,8725,21157,8729,21159,12823],{},[1593,21158,8728],{},[1593,21160,8732],{},[1612,21162,8672],{"id":8671},[1558,21164,21165],{},"Separate your URLs row by row in the same column.",[8679,21167,21168,21176],{},[8682,21169,21170],{},[8685,21171,21172,21174],{},[8688,21173,8690],{},[8688,21175,8693],{},[8695,21177,21178,21185,21191],{},[8685,21179,21180,21183],{},[8700,21181,21182],{},"Insert your URLs like this",[8700,21184,13456],{},[8685,21186,21187,21189],{},[8700,21188,21182],{},[8700,21190,13456],{},[8685,21192,21193,21195],{},[8700,21194,21182],{},[8700,21196,13456],{},[1612,21198,21200],{"id":21199},"create-your-bot","Create your bot",[1718,21202,21203],{},[1721,21204,21205,21233,21251,21267,21292,21318,21351],{},[1724,21206,21207,1729,21209,21211],{},[1593,21208,1728],{},[1731,21210,1733],{},[1721,21212,21213,21217,21221,21227],{},[1724,21214,21215,1741],{},[1731,21216,1740],{},[1724,21218,21219,9551],{},[1731,21220,1746],{},[1724,21222,21223,1801,21225,1610],{},[1731,21224,8769],{},[1731,21226,8773],{},[1724,21228,21229,1801,21231,1610],{},[1731,21230,6866],{},[1731,21232,8781],{},[1724,21234,21235,1729,21237,21239],{},[1593,21236,1752],{},[1731,21238,667],{},[1721,21240,21241],{},[1724,21242,21243,1771,21246,21248,21249,1610],{},[1731,21244,21245],{},"Loop source",[1731,21247,2630],{},", then select ",[1731,21250,1778],{},[1724,21252,21253,1729,21255,21257],{},[1593,21254,1761],{},[1731,21256,1043],{},[1721,21258,21259],{},[1724,21260,21261,1771,21263,1775,21265,1610],{},[1731,21262,1770],{},[1731,21264,2630],{},[1731,21266,1778],{},[1724,21268,21269,1729,21271,21273],{},[1593,21270,1784],{},[1731,21272,1787],{},[1721,21274,21275,21280],{},[1724,21276,21277,21279],{},[1731,21278,1794],{},": Click and choose the outermost HTML element to scrape.",[1724,21281,21282,1801,21285,21288,21289,1610],{},[1731,21283,21284],{},"Data type",[1731,21286,21287],{},"\"Select HTML\"",". See how ",[1562,21290,21291],{"href":1387},"here",[1724,21293,21294,1729,21296,21298],{},[1593,21295,1809],{},[1731,21297,7559],{},[1721,21299,21300,21304,21310],{},[1724,21301,21302,1820],{},[1731,21303,1819],{},[1724,21305,21306,1863,21308,1610],{},[1731,21307,2100],{},[1731,21309,1837],{},[1724,21311,21312,21314,21315,1610],{},[1731,21313,1843],{},": Enter the fields you want to extract, e.g. ",[1731,21316,21317],{},"\"name, email, job title\"",[1724,21319,21320,1729,21322,21324],{},[1593,21321,1852],{},[1731,21323,4914],{},[1721,21325,21326,21331,21336,21345],{},[1724,21327,21328,21330],{},[1731,21329,1740],{},": Select your Google Sheet or paste the URL.",[1724,21332,21333,21335],{},[1731,21334,1746],{},": Choose a sheet tab or leave blank for the first tab.",[1724,21337,21338,1771,21340,5097,21342,1610],{},[1731,21339,2100],{},[1731,21341,2630],{},[1731,21343,21344],{},"scraped-link-data",[1724,21346,21347,1801,21349,1610],{},[1731,21348,16746],{},[1731,21350,7610],{},[1724,21352,21353,1729,21355,21357],{},[1593,21354,1880],{},[1731,21356,1920],{},[1721,21358,21359,21364,21368,21374],{},[1724,21360,21361,21363],{},[1731,21362,1740],{},": Select the same Google Sheet.",[1724,21365,21366,20169],{},[1731,21367,1746],{},[1724,21369,21370,1801,21372,1610],{},[1731,21371,13055],{},[1731,21373,1804],{},[1724,21375,21376,1801,21378,1610],{},[1731,21377,13063],{},[1731,21379,1804],{},[1612,21381,2423],{"id":2422},[1617,21383],{},[1558,21385,21386,21387,21389],{},"In just seven steps you can create a simple web scraper to extract data from any website with ",[1562,21388,739],{"href":740}," and write it to a Google Sheet. The super cool thing is that this scraper does not rely on CSS selectors to extract data that can change, because it uses AI to extract the data. So this design pattern will work on any website.",{"title":1636,"searchDepth":1637,"depth":1637,"links":21391},[21392,21393,21394,21395],{"id":8719,"depth":1640,"text":8720},{"id":8671,"depth":1640,"text":8672},{"id":21199,"depth":1640,"text":21200},{"id":2422,"depth":1640,"text":2423},"Learn how to extract data from HTML using AI (ChatGPT) and axiom.ai. This guide covers looping through URLs in Google Sheets and automating data extraction without CSS selectors.",{"pinned":1646,"type":2143,"format":2144,"intent_type":3377,"intent":2146,"tags":21398,"platfrom":21400},[2149,2148,21399],"llm",[3380,739],"\u002Fguides\u002Fscrape-html-extract-data-with-ai",{"title":21134,"description":21396},"guides\u002Fscrape-html-extract-data-with-ai","rj8l-FN_hxQKJ2B_uZy_AxnJvFoaoTbJpMTF8Tb2THE",{"id":21406,"title":21407,"body":21408,"date":2669,"description":21663,"extension":1643,"meta":21664,"navigation":1646,"order":1641,"path":21668,"seo":21669,"stem":21670,"__hash__":21671},"guides\u002Fguides\u002Fscrape-likes-from-instagram-posts.md","How to scrape users from likes on Instagram posts",{"type":1555,"value":21409,"toc":21655},[21410,21412,21415,21417,21419,21429,21433,21441,21445,21447,21451,21577,21581,21586,21588,21592,21594,21598,21648],[1617,21411],{},[1558,21413,21414],{},"This Instagram bot scrapes post likes for user handles and profile links, limited to 100 per post by Instagram. It reads a post link from Google Sheets, opens it in Chrome, likes the post, and scrapes the user data. Afterward, it deletes the row from Google Sheets and moves on to the next post.",[1662,21416],{},[1612,21418,2480],{"id":2479},[1558,21420,21421,21422,21424,21425,21428],{},"Create a new Google Sheet. You can do this in your Chrome browser by entering the shortcut  ",[1593,21423,1673],{},", presuming you already have an account. Name your sheet something like  ",[1593,21426,21427],{},"\"Instagram likes\"",", create two tabs links and data.",[1612,21430,21432],{"id":21431},"install-the-instagram-like-scraper","Install the Instagram like scraper",[1558,21434,21435,21436,21438,21439,1700],{},"To install this Insta scraper click  ",[1593,21437,1695],{},". If you’re a new user, you’ll have to click  ",[1593,21440,1699],{},[1558,21442,1703,21443,1610],{},[1593,21444,1706],{},[1558,21446,1709],{},[1612,21448,21450],{"id":21449},"configure-your-instagram-like-scraper-in-5-easy-steps","Configure your Instagram Like scraper in 5 easy steps",[1718,21452,21453],{},[1721,21454,21455,21472],{},[1724,21456,21457,1729,21459,21461],{},[1593,21458,1728],{},[1731,21460,1733],{},[1721,21462,21463,21467],{},[1724,21464,21465,1741],{},[1731,21466,1740],{},[1724,21468,21469,21471],{},[1731,21470,1746],{},": Choose the tab with the post links in it.",[1724,21473,21474,1729,21476,21478],{},[1593,21475,1752],{},[1731,21477,667],{},[1721,21479,21480,21497,21509,21520,21545,21561],{},[1724,21481,21482,1729,21484,21486],{},[1593,21483,1761],{},[1731,21485,14409],{},[1721,21487,21488],{},[1724,21489,21490,1771,21492,1775,21494,21496],{},[1731,21491,1770],{},[1731,21493,2630],{},[1731,21495,1866],{},", then choose the column with the post links.",[1724,21498,21499,1729,21501,21504],{},[1593,21500,1784],{},[1731,21502,21503],{},"Click element: Click on like",[1721,21505,21506],{},[1724,21507,21508],{},"Preconfigured.",[1724,21510,21511,1729,21513,21516],{},[1593,21512,1809],{},[1731,21514,21515],{},"Get data from bot's current page: Scrape likes",[1721,21517,21518],{},[1724,21519,21508],{},[1724,21521,21522,1729,21524,21527],{},[1593,21523,1852],{},[1731,21525,21526],{},"Append or merge data: Post link + likes",[1721,21528,21529,21537],{},[1724,21530,21531,1771,21533,14719,21535,1610],{},[1731,21532,1862],{},[1731,21534,2630],{},[1731,21536,1866],{},[1724,21538,21539,1771,21541,1775,21543,1610],{},[1731,21540,1872],{},[1731,21542,2630],{},[1731,21544,1837],{},[1724,21546,21547,1729,21549,21551],{},[1593,21548,1880],{},[1731,21550,4914],{},[1721,21552,21553,21557],{},[1724,21554,21555,1741],{},[1731,21556,1740],{},[1724,21558,21559,14394],{},[1731,21560,1746],{},[1724,21562,21563,1729,21565,21567],{},[1593,21564,1917],{},[1731,21566,1920],{},[1721,21568,21569,21573],{},[1724,21570,21571,1741],{},[1731,21572,1740],{},[1724,21574,21575,14394],{},[1731,21576,1746],{},[1612,21578,21580],{"id":21579},"run-your-instagram-like-scraper","Run your Instagram like scraper",[1558,21582,21583,21584,1610],{},"To test the Instagram bot, execute it on the Desktop, monitor its operation, and then verify the scraped data in the Google Sheet. If you wish to schedule the bot ",[1562,21585,2620],{"href":638},[1612,21587,1956],{"id":1955},[1558,21589,1959,21590,1964],{},[1562,21591,1963],{"href":1962},[1612,21593,1398],{"id":1967},[1558,21595,2635,21596,1610],{},[1562,21597,2620],{"href":638},[1718,21599,21600],{},[1721,21601,21602,21613,21636],{},[1724,21603,21604,21607,1983,21609,21612],{},[1593,21605,21606],{},"Like button not clicked?",[1981,21608],{},[1731,21610,21611],{},"Step 2.2 – Click element: Click on like",", reselect the like button on a post.",[1724,21614,21615,21618,1983,21620,21623,21624,21627,21628,21630,1575,21633,1610],{},[1593,21616,21617],{},"No results scraped?",[1981,21619],{},[1731,21621,21622],{},"Step 2.3 – Get data from bot's current page: Scrape likes",", check that the ",[1562,21625,9082],{"href":21626},"\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fselector-tool\u002Fcustom-css-selectors\u002F"," used are correct:",[1981,21629],{},[1731,21631,21632],{},"'[role=\"dialog\"] span div'",[1731,21634,21635],{},"'[role=\"dialog\"] [role=\"link\"]'",[1724,21637,21638,21640,1983,21642,3106,21644,2101,21646,1610],{},[1593,21639,2094],{},[1981,21641],{},[1731,21643,15077],{},[1731,21645,2100],{},[1731,21647,1903],{},[1558,21649,2118,21650,21652,21653],{},[1562,21651,2121],{"href":82},"\nIntrested in automating Instagram posting, learn more read this full in-depth guide on automating ",[1562,21654,14572],{"href":14571},{"title":1636,"searchDepth":1637,"depth":1637,"links":21656},[21657,21658,21659,21660,21661,21662],{"id":2479,"depth":1640,"text":2480},{"id":21431,"depth":1640,"text":21432},{"id":21449,"depth":1640,"text":21450},{"id":21579,"depth":1640,"text":21580},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"Learn how to scrape users from Instagram post likes and export the data to Google Sheets using axiom.ai. This guide covers setting up, configuring, and running an Instagram likes scraper for user data extraction.",{"read":2672,"level":2140,"video":21665,"templateId":6308,"type":2143,"format":2144,"intent_type":13095,"intent":5626,"tags":21666,"platfrom":21667},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FYhChBarQcuo",[13097,15099,15100,2149],[13099],"\u002Fguides\u002Fscrape-likes-from-instagram-posts",{"title":21407,"description":21663},"guides\u002Fscrape-likes-from-instagram-posts","tjOPu4FmD472dfYRFDLBeOS_YGIRlrCE6eRQefPFQqQ",{"id":21673,"title":21674,"body":21675,"date":1641,"description":21767,"extension":1643,"meta":21768,"navigation":1646,"order":1641,"path":21772,"seo":21773,"stem":21774,"__hash__":21775},"guides\u002Fguides\u002Fscrape-links-export-to-csv.md","How to extract links and write to a CSV",{"type":1555,"value":21676,"toc":21763},[21677,21679,21686,21688,21690,21698,21756,21758,21760],[1617,21678],{},[1558,21680,21681,21682,21685],{},"Learn how to scrape links from a webpage into a ",[1562,21683,21684],{"href":1016},"CSV"," saved to your downloads folder by combing a few steps using our [builder.](\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Fbuilder",[1612,21687,8720],{"id":8719},[1617,21689],{},[1558,21691,8725,21692,21694,21695,12823],{},[1593,21693,8728],{}," and then select ",[1593,21696,21697],{},"\"Add first step\".",[1718,21699,21700],{},[1721,21701,21702,21734],{},[1724,21703,21704,1729,21706,21708],{},[1593,21705,1986],{},[1731,21707,14912],{},[1721,21709,21710,21715,21720,21729],{},[1724,21711,21712,21714],{},[1731,21713,5526],{},": Enter the URL of the page from which to scrape links.",[1724,21716,21717,21719],{},[1731,21718,1794],{},": Choose the links you wish to scrape.",[1724,21721,21722,21724,21725,21728],{},[1731,21723,17477],{}," (optional): Select the ",[1593,21726,21727],{},"\"Next\""," button for pagination if present.",[1724,21730,21731,21733],{},[1731,21732,14927],{},": Set the maximum number of links to scrape.",[1724,21735,21736,1729,21738,21741],{},[1593,21737,2535],{},[1731,21739,21740],{},"Export to CSV",[1721,21742,21743,21751],{},[1724,21744,21745,1771,21747,21248,21749,1610],{},[1731,21746,21740],{},[1593,21748,1833],{},[1593,21750,21344],{},[1724,21752,21753,21755],{},[1731,21754,3267],{},": Name your CSV file.",[1612,21757,2423],{"id":2422},[1617,21759],{},[1558,21761,21762],{},"Create an automation with just two steps that extract links from any website. In the first step, simply select the links, and then, in the second step, write the scraped data to a CSV.",{"title":1636,"searchDepth":1637,"depth":1637,"links":21764},[21765,21766],{"id":8719,"depth":1640,"text":8720},{"id":2422,"depth":1640,"text":2423},"Learn how to make a bot that will scrape links from a webpage then export them into a CSV.",{"pinned":1646,"type":2143,"format":1718,"intent_type":3377,"intent":5626,"tags":21769,"platfrom":21771},[2149,21770],"csv",[3380],"\u002Fguides\u002Fscrape-links-export-to-csv",{"title":21674,"description":21767},"guides\u002Fscrape-links-export-to-csv","1sTMACaO_dDCy4SEf_ZaM48BBE6A94X-Ji62cXEaPlU",{"id":21777,"title":21778,"body":21779,"date":2669,"description":21974,"extension":1643,"meta":21975,"navigation":1646,"order":1641,"path":17419,"seo":21979,"stem":21980,"__hash__":21981},"guides\u002Fguides\u002Fscrape-links-from-a-website.md","How to scrape links from a website into a Google Sheet",{"type":1555,"value":21780,"toc":21966},[21781,21783,21786,21788,21794,21796,21803,21807,21815,21820,21822,21826,21888,21892,21895,21897,21901,21903,21905,21962],[1617,21782],{},[1558,21784,21785],{},"This Link Scraper template extracts links from different webpages like listings, paginated, scrolling, and feed pages, and write them into a Google Sheet. It takes only a minute to set up.",[1662,21787],{},[1558,21789,21790,21791],{},"We recommend scraping links with one Axiom then scraping the pages with another ",[1562,21792,21793],{"href":16542},"see this template.",[1612,21795,1667],{"id":1666},[1558,21797,1670,21798,21800,21801,1610],{},[1593,21799,1673],{},", presuming you already have an account. Name your sheet something like 'Link Scraper’ and set up a tab called ",[1593,21802,1681],{},[1612,21804,21806],{"id":21805},"install-the-link-scraper","Install the link scraper",[1558,21808,21809,21810,21812,21813,1700],{},"To install this Web scraper template click  ",[1593,21811,1695],{},".  If you’re a new user, you’ll have to click  ",[1593,21814,1699],{},[1558,21816,21817,21818,1610],{},"Once installed, click  ",[1593,21819,1706],{},[1558,21821,1709],{},[1612,21823,21825],{"id":21824},"configure-your-link-scraper-in-a-minute","Configure your Link scraper in a minute",[1718,21827,21828],{},[1721,21829,21830,21860],{},[1724,21831,21832,1729,21834,21836],{},[1593,21833,1986],{},[1731,21835,14912],{},[1721,21837,21838,21843,21850,21855],{},[1724,21839,21840,21842],{},[1731,21841,5526],{},": Enter the URL of the page you want to scrape.",[1724,21844,21845,3617,21847,21849],{},[1731,21846,1794],{},[1562,21848,20935],{"href":1387}," to select the links you wish to scrape.",[1724,21851,21852,21854],{},[1731,21853,17477],{}," (if any): Select the \"Next\" button if the page is paginated.",[1724,21856,21857,21859],{},[1731,21858,1800],{},": Set the number of links you wish to scrape.",[1724,21861,21862,1729,21864,21866],{},[1593,21863,2535],{},[1731,21865,4914],{},[1721,21867,21868,21872,21876,21882],{},[1724,21869,21870,1741],{},[1731,21871,1740],{},[1724,21873,21874,1894],{},[1731,21875,1746],{},[1724,21877,21878,1900,21880,1610],{},[1731,21879,1899],{},[1731,21881,15054],{},[1724,21883,21884,1801,21886,1610],{},[1731,21885,16746],{},[1731,21887,7610],{},[1612,21889,21891],{"id":21890},"run-your-link-scraper","Run your link scraper",[1558,21893,21894],{},"We suggest running a test first, setting max-results to 10, and reviewing the data.",[1612,21896,1956],{"id":1955},[1558,21898,1959,21899,1964],{},[1562,21900,1963],{"href":1962},[1612,21902,1398],{"id":1967},[1558,21904,1970],{},[1718,21906,21907],{},[1721,21908,21909,21921,21933,21941,21954],{},[1724,21910,21911,21913,1983,21915,21918,21919,1610],{},[1593,21912,2000],{},[1981,21914],{},[1731,21916,21917],{},"Step 1.0 – Get data from bot's current page",", try re-selecting or use ",[1562,21920,9082],{"href":1383},[1724,21922,21923,21925,2029,21927,2033,21929,2037,21931,1610],{},[1593,21924,21049],{},[1981,21926],{},[1731,21928,2032],{},[1731,21930,2036],{},[1731,21932,18832],{},[1724,21934,21935,21937,21065,21939,21068],{},[1593,21936,21062],{},[1981,21938],{},[1731,21940,1800],{},[1724,21942,21943,21945,1983,21947,2080,21950,2101,21952,1610],{},[1593,21944,2094],{},[1981,21946],{},[1731,21948,21949],{},"Step 2.0 – Write Data to a Google Sheet",[1731,21951,2100],{},[1731,21953,15054],{},[1724,21955,21956,21958,2111,21960,2115],{},[1593,21957,2108],{},[1981,21959],{},[1731,21961,2114],{},[1558,21963,2118,21964],{},[1562,21965,2121],{"href":82},{"title":1636,"searchDepth":1637,"depth":1637,"links":21967},[21968,21969,21970,21971,21972,21973],{"id":1666,"depth":1640,"text":1667},{"id":21805,"depth":1640,"text":21806},{"id":21824,"depth":1640,"text":21825},{"id":21890,"depth":1640,"text":21891},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"Learn how to scrape links from a website and export them to Google Sheets using axiom.ai's no-code automation tool. This guide covers setting up, configuring, and running a link scraper for efficient data extraction.",{"read":3151,"level":2140,"video":21976,"templateId":6271,"type":2143,"format":2144,"intent_type":3377,"intent":5626,"tags":21977,"platfrom":21978},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FzUHHWz6Ycgk",[2149,16805,21125],[3380],{"title":21778,"description":21974},"guides\u002Fscrape-links-from-a-website","8HHW7YgcBmNnyHuxefIHcgELrxoYKr5LKyQLWNrVV8U",{"id":21983,"title":21984,"body":21985,"date":21120,"description":22249,"extension":1643,"meta":22250,"navigation":1646,"order":1641,"path":22255,"seo":22256,"stem":22257,"__hash__":22258},"guides\u002Fguides\u002Fscrape-spotify-webplayer.md","How to Scrape Spotify Discography: Step-by-Step",{"type":1555,"value":21986,"toc":22242},[21987,21989,21992,21994,21996,22004,22008,22013,22017,22019,22125,22129,22134,22136,22141,22143,22147,22238],[1617,21988],{},[1558,21990,21991],{},"This Spotify Discography Scraper operates by reading artist profile links from a Google Sheet, opening them in Chrome, and navigating to the discography section to scrape album links. It collects data such as album title, copyright, and release date, saving this information into another Google Sheet. After processing each entry, the bot deletes it from the initial sheet and continues to the next.",[1662,21993],{},[1612,21995,2480],{"id":2479},[1558,21997,1670,21998,2711,22000,22003],{},[1593,21999,1673],{},[1593,22001,22002],{},"\"Spotify scraper\"",". Set up two tabs in Google Sheets: one for artist profile links and another for scraped data.",[1612,22005,22007],{"id":22006},"install-the-spotify-discography-scraper","Install the Spotify discography scraper",[1558,22009,22010,22011,1700],{},"To install this Spotify Discography Scraper click '**\"Install template'. If you’re a new user, you’ll have to click ",[1593,22012,1699],{},[1558,22014,1703,22015,1610],{},[1593,22016,1706],{},[1558,22018,1709],{},[1718,22020,22021,22123],{},[1721,22022,22023,22040],{},[1724,22024,22025,1729,22027,22029],{},[1593,22026,1728],{},[1731,22028,1733],{},[1721,22030,22031,22035],{},[1724,22032,22033,1741],{},[1731,22034,1740],{},[1724,22036,22037,22039],{},[1731,22038,1746],{},": Choose the tab with the artist profile links.",[1724,22041,22042,1729,22044,22046],{},[1593,22043,1752],{},[1731,22045,667],{},[1721,22047,22048,22070,22075,22106],{},[1724,22049,22050,1729,22052,22055],{},[1593,22051,1761],{},[1731,22053,22054],{},"Go to page: Artist page",[1721,22056,22057],{},[1724,22058,22059,1771,22061,1775,22063,22065,22066,22069],{},[1731,22060,1770],{},[1731,22062,1833],{},[1731,22064,1866],{},", then append ",[1731,22067,22068],{},"\u002Fdiscography\u002Fall"," after the token.",[1724,22071,22072,11867],{},[1593,22073,22074],{},"2.2 – 2.3",[1724,22076,22077,1729,22079,22082],{},[1593,22078,1852],{},[1731,22080,22081],{},"Loop through data: Album links",[1721,22083,22084,22089],{},[1724,22085,22086,11867],{},[1593,22087,22088],{},"2.4.1 – 2.4.2",[1724,22090,22091,1729,22094,22096],{},[1593,22092,22093],{},"2.4.3",[1731,22095,4914],{},[1721,22097,22098],{},[1724,22099,22100,22102,22103,1610],{},[1731,22101,1899],{},": Ensure this is set to ",[1731,22104,22105],{},"[scraped-data]",[1724,22107,22108,1729,22110,22112],{},[1593,22109,1880],{},[1731,22111,1920],{},[1721,22113,22114,22118],{},[1724,22115,22116,1741],{},[1731,22117,1740],{},[1724,22119,22120,22122],{},[1731,22121,1746],{},": Choose the tab with artist links.",[1558,22124,2610],{},[1612,22126,22128],{"id":22127},"run-your-spotify-discography-scraper","Run your Spotify discography scraper",[1558,22130,22131,22132,1610],{},"To test this Spotify scraper, initiate the bot with the cloud lo runner and let it run a few loops. Then, stop the bot and review the data in the linked Google Sheet for accuracy and completeness. If you wish to schedule the bot ",[1562,22133,2620],{"href":638},[1612,22135,1956],{"id":1955},[1558,22137,1959,22138,22140],{},[1562,22139,1963],{"href":1962},", you can use our no-code bot builder to customize any bot according to your requirements. For example simply click 'Select' in Step 2.4.2 and point and click to chose different data to scrape.",[1612,22142,1398],{"id":1967},[1558,22144,2635,22145,1610],{},[1562,22146,2620],{"href":638},[1718,22148,22149],{},[1721,22150,22151,22168,22179,22189,22206,22217,22228],{},[1724,22152,22153,22156,1983,22158,22161,22162,22164,22165,22167],{},[1593,22154,22155],{},"Artist page not loading?",[1981,22157],{},[1731,22159,22160],{},"Step 2.1 – Go to page: Artist page",", check that the URL ends with ",[1731,22163,22068],{}," after the ",[1731,22166,1866],{}," token.",[1724,22169,22170,22173,1983,22175,22178],{},[1593,22171,22172],{},"Display not being changed to grid format?",[1981,22174],{},[1731,22176,22177],{},"Step 2.2 – Click element: Grid layout",", reselect the grid icon from the artist page.",[1724,22180,22181,22183,1983,22185,22188],{},[1593,22182,9076],{},[1981,22184],{},[1731,22186,22187],{},"Step 2.3 – Get a list of links to pages from bot's current page: Album links",", reselect album links on the artist's discography page.",[1724,22190,22191,22194,1983,22196,22199,22200,22202,22203,1610],{},[1593,22192,22193],{},"Album links not loading?",[1981,22195],{},[1731,22197,22198],{},"Step 2.4.1 – Go to page: Album",", confirm that ",[1731,22201,1770],{}," is set with ",[1731,22204,22205],{},"[link-data?*&0]",[1724,22207,22208,22211,1983,22213,22216],{},[1593,22209,22210],{},"No elements found?",[1981,22212],{},[1731,22214,22215],{},"Step 2.4.2 – Get data from bot's current page: Scrape Album",", reselect data from within an album page.",[1724,22218,22219,22222,1983,22224,22227],{},[1593,22220,22221],{},"Scraped data not writing?",[1981,22223],{},[1731,22225,22226],{},"Step 2.4.3 – Write data to a Google Sheet",", check that the correct sheet and tab are selected.",[1724,22229,22230,22233,1983,22235,22237],{},[1593,22231,22232],{},"Bot scrapes same artist every loop?",[1981,22234],{},[1731,22236,11645],{},", confirm the correct sheet tab (with artist links) is selected.",[1558,22239,2118,22240],{},[1562,22241,2121],{"href":82},{"title":1636,"searchDepth":1637,"depth":1637,"links":22243},[22244,22245,22246,22247,22248],{"id":2479,"depth":1640,"text":2480},{"id":22006,"depth":1640,"text":22007},{"id":22127,"depth":1640,"text":22128},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"Learn how to scrape Spotify discography data and export it to Google Sheets using axiom.ai's no-code automation tool. This guide covers setting up, configuring, and running a Spotify scraper for album and artist data extraction.",{"pinned":1646,"read":2672,"level":17700,"video":22251,"templateId":6368,"type":2143,"format":2144,"intent_type":2675,"intent":5626,"tags":22252,"platfrom":22253},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FRL55fL4HOGk",[2149,21125],[22254],"Spotify","\u002Fguides\u002Fscrape-spotify-webplayer",{"title":21984,"description":22249},"guides\u002Fscrape-spotify-webplayer","pb388OX_wCAK_EDtYlyA-m8N48rEE1eZLTplX_fmuUg",{"id":22260,"title":22261,"body":22262,"date":1641,"description":22641,"extension":1643,"meta":22642,"navigation":1646,"order":1641,"path":22646,"seo":22647,"stem":22648,"__hash__":22649},"guides\u002Fguides\u002Fslack.md","How to automate Slack with axiom.ai",{"type":1555,"value":22263,"toc":22630},[22264,22266,22274,22276,22278,22291,22295,22297,22300,22345,22349,22352,22393,22397,22401,22403,22406,22409,22451,22461,22473,22479,22481,22483,22490,22493,22495,22497,22500,22504,22506,22509,22567,22570,22619,22623,22625,22627],[1617,22265],{},[1558,22267,22268,22273],{},[1562,22269,22272],{"href":22270,"rel":22271},"https:\u002F\u002Fslack.com\u002Fintl\u002Fen-gb\u002Ffeatures\u002Fworkflow-automation",[1633],"Slack Workflow Builder"," allows you to automate various actions within your Slack workflow. Using a webhook to trigger these workflows can enhance these workflows. Even better - you can pass data from your axiom.ai automation into your Slack workflow. Let's dive in.",[1612,22275,2173],{"id":2172},[1617,22277],{},[1558,22279,22280,22281,22286,22287,22290],{},"To get started, you'll need to have a ",[1562,22282,22285],{"href":22283,"rel":22284},"https:\u002F\u002Fslack.com",[1633],"Slack"," account that has access to ",[1562,22288,22272],{"href":22270,"rel":22289},[1633],". You'll also need to have the axiom.ai extension installed and be logged in.",[1612,22292,22294],{"id":22293},"trigger-a-slack-workflow-with-an-axiomai-automation","Trigger a Slack workflow with an axiom.ai automation",[1617,22296],{},[1558,22298,22299],{},"Learn how to trigger a Slack workflow from an axiom.ai automation.",[1718,22301,22302],{},[2182,22303,22304,22310,22316,22322,22328,22334,22339],{},[1724,22305,22306,22309],{},[1593,22307,22308],{},"Create Slack workflow",": Head to the Slack app and open the Workflow Builder.",[1724,22311,22312,22315],{},[1593,22313,22314],{},"Create workflow",": Click \"+ New workflow\" to get started.",[1724,22317,22318,22321],{},[1593,22319,22320],{},"Start the workflow",": Click \"Choose an event\" to select a workflow trigger, select \"From a webhook\".",[1724,22323,22324,22327],{},[1593,22325,22326],{},"Variables",": To set up variables, click \"Set up variables\" – this is required to be able to send data to your workflow and allows the data to be used later.",[1724,22329,22330,22333],{},[1593,22331,22332],{},"Add steps",": Add steps that meet your requirements – you can use the variables above in certain steps by clicking \"{} Insert a variable\" in the step setup window.",[1724,22335,22336,22338],{},[1593,22337,13849],{},": Click \"Finish up\" to save your workflow, follow their steps and then click \"Publish\" to publish your workflow.",[1724,22340,22341,22344],{},[1593,22342,22343],{},"Web request URL",": After saving, re-open your workflow and click on the \"Starts with a webhook\" trigger, copy the \"Web request URL\" and save this for later use.",[2219,22346],{"src":22347,"alt":22348},"\u002Fdocs\u002Fguides\u002Ftrigger-slack-workflow-example.png","set up a slack workflow in slack",[1558,22350,22351],{},"Now, let's head over to the axiom.ai extension. We are going to assume that you already have an automation created to capture the data that you wish to pass into your Slack workflow.",[1718,22353,22354],{},[1721,22355,22356],{},[1724,22357,22358,2238,22360,22362,22363],{},[1731,22359,1605],{},[1562,22361,1605],{"href":1194}," step to your automation.\n",[1721,22364,22365,22374],{},[1724,22366,22367,22369,22370,22373],{},[1731,22368,2204],{},": Paste the ",[1593,22371,22372],{},"\"Web request URL\""," you copied from Slack.",[1724,22375,22376,22378,22379],{},[1731,22377,17948],{},": Match the format shown in your Slack workflow.\n",[1721,22380,22381,22387],{},[1724,22382,22383,22384,1610],{},"To check the structure, open your workflow and click on ",[1593,22385,22386],{},"\"Starts with a webhook\"",[1724,22388,7805,22389,22392],{},[1593,22390,22391],{},"\"Insert Data\""," option in Axiom to add tokens from your automation into the payload.",[2219,22394],{"src":22395,"alt":22396},"\u002Fdocs\u002Fguides\u002Ftrigger-slack-workflow-trigger-webhook.png","set up 'trigger webhook' step in axiom.ai to trigger a slack workflow using the slack workflow payload format",[2266,22398,22400],{"id":22399},"triggering-a-slack-workflow-with-run-notifications","Triggering a Slack Workflow with Run Notifications",[1617,22402],{},[1558,22404,22405],{},"Setting up run notifications when an automation run completes can be a helpful way of keeping on top of your automations when they are running unattended. To do this, follow the instructions above to set up your Slack Workflow. The only change that is required is that your Slack Workflow has two variables set up as \"text\" variables: \"status\" and \"log\", see step 4 above for more details.",[1558,22407,22408],{},"Then, head into your axiom.ai automation and follow the steps below:",[1718,22410,22411],{},[2182,22412,22413,22419,22428,22434,22443],{},[1724,22414,22415,22418],{},[1593,22416,22417],{},"Open your automation",": Open the Axiom automation you want to configure.",[1724,22420,22421,22424,22425,1610],{},[1593,22422,22423],{},"Go to settings",": Navigate to ",[1593,22426,22427],{},"Settings → Set up notifications",[1724,22429,22430,22433],{},[1593,22431,22432],{},"Enable notification types",": Toggle on the options you'd like to be notified of — when a run fails, when it succeeds with warnings, or when it fully succeeds.",[1724,22435,22436,22439,22440,1610],{},[1593,22437,22438],{},"Enable webhook notifications",": Turn on ",[1593,22441,22442],{},"Notify by webhook",[1724,22444,22445,22369,22448,22450],{},[1593,22446,22447],{},"Enter webhook URL",[1593,22449,22343],{}," from the Slack workflow setup.",[1558,22452,22453,22455,22456,22458,22459,1610],{},[2434,22454,16535],{}," Using the ",[1562,22457,9794],{"href":900}," step before a step allows you to add metadata to the error message produced by that step. This metadata will appear in the \"log\" that is sent if the automation fails - adding more context to your error messages. For more tips on debugging, see ",[1562,22460,4923],{"href":1487},[1558,22462,22463,22464,22466,22467,22472],{},"To pass custom data to your Slack Workflow, we would still recommend using the ",[1562,22465,1605],{"href":1194}," step method described in the section above. These can be used together but we recommend referring to Slack's ",[1562,22468,22471],{"href":22469,"rel":22470},"https:\u002F\u002Fapi.slack.com\u002Fapis\u002Frate-limits",[1633],"Rate Limit"," documentation for their API rate limits.",[1558,22474,22475,22476,13812],{},"To learn more about Run Notifications, see the ",[1562,22477,22478],{"href":875},"Run Notifications",[1612,22480,2403],{"id":2402},[1617,22482],{},[1558,22484,22485,22486,22489],{},"Ensure that your workflow has been published and then hit \"Run\" in your axiom.ai automation. If there are error messages, review these error messages for next steps. ",[1562,22487,22488],{"href":82},"Contact us"," if you are unsure of the errors that you are experiencing.",[1558,22491,22492],{},"If successful, your workflow steps will be performed. For example, if this is set to send a message in a channel, check the channel that you have set within the workflow.",[1612,22494,8313],{"id":8312},[1617,22496],{},[1558,22498,22499],{},"Let's dive into some example use cases.",[2266,22501,22503],{"id":22502},"automate-the-creation-of-a-daily-spreadsheet","Automate the creation of a daily spreadsheet",[1617,22505],{},[1558,22507,22508],{},"Automating the creation of a new spreadsheet on a daily basis and sending this to your team can be a useful way of tracking information within your teams. To get started, create a new Slack workflow:",[1718,22510,22511],{},[2182,22512,22513,22519,22525,22531,22537,22543,22549,22555,22561],{},[1724,22514,22515,22518],{},[1593,22516,22517],{},"Create Slack workflow:"," Head to the Slack app and open the Workflow Builder.",[1724,22520,22521,22524],{},[1593,22522,22523],{},"Create workflow:"," Click \"+ New workflow\" to get started.",[1724,22526,22527,22530],{},[1593,22528,22529],{},"Start the workflow:"," Click \"Choose an event\" to select a workflow trigger, select \"From a webhook\".",[1724,22532,22533,22536],{},[1593,22534,22535],{},"Variables:"," To set up variables, click \"Set up variables\" - add two \"test\" variables, one called \"date\" and another called \"url\".",[1724,22538,22539,22542],{},[1593,22540,22541],{},"Add steps:"," Add a \"Send a message to a channel\" from the \"Messages\" section of the steps. Select the channel you wish to use in the \"Select a channel\" dropdown.",[1724,22544,22545,22548],{},[1593,22546,22547],{},"Construct message:"," Create a message you'd like to send to the team, use the \"{} Insert a variable\" button to insert variables.",[1724,22550,22551,22554],{},[1593,22552,22553],{},"Add a button:"," Click \"+ Add button\", add a \"Button label\", change the \"Behaviour\" to \"Open Link\" and use the \"{}\" button to input the \"url\". This will allow the spreadsheet to be opened with a click.",[1724,22556,22557,22560],{},[1593,22558,22559],{},"Save:"," Click \"Finish up\" to save your workflow, follow their steps and then click \"Publish\" to publish your workflow.",[1724,22562,22563,22566],{},[1593,22564,22565],{},"Web request URL:"," After saving, re-open your workflow and click on the \"Starts with a webhook\" trigger, copy the \"Web request URL\" and save this for later use.",[1558,22568,22569],{},"Now, open your axiom.ai extension and follow the steps below:",[1718,22571,22572],{},[2182,22573,22574,22580,22589,22598,22607,22613],{},[1724,22575,22576,22579],{},[1593,22577,22578],{},"Create a new automation:"," Open the extension and click \"+ New Automation\" to get started.",[1724,22581,22582,22585,22586,22588],{},[1593,22583,22584],{},"Get date:"," To get the current date use the ",[1562,22587,9138],{"href":968}," step. Select the format from in the step.",[1724,22590,22591,22594,22595,22597],{},[1593,22592,22593],{},"Create Google Sheet:"," Use the ",[1562,22596,10961],{"href":952}," step to create a new spreadsheet, use the output from the \"Date and time\" step to construct your \"Sheet name\".",[1724,22599,22600,22603,22604,22606],{},[1593,22601,22602],{},"Trigger webhook:"," Add a ",[1562,22605,1605],{"href":1194}," step to your automation, add the \"Web request URL\" from Slack to the \"Endpoint\" input.",[1724,22608,22609,22612],{},[1593,22610,22611],{},"Payload:"," To construct the \"Payload\" in the \"Trigger webhook\" step, follow the format that is set out within the Slack workflow. Use the \"Insert Data\" option within Axiom to input data from your automation.",[1724,22614,22615,22618],{},[1593,22616,22617],{},"Schedule:"," If your plan supports it, navigate to \"Settings\", then \"Schedule\" to set up a schedule to run daily, or more frequently.",[2219,22620],{"src":22621,"alt":22622},"\u002Fdocs\u002Fguides\u002Ftrigger-slack-workflow-example-gsheets.png","axiom.ai builder showing automation to automatically create new google sheet",[1612,22624,2423],{"id":2422},[1617,22626],{},[1558,22628,22629],{},"Automating the triggering of Slack workflows from axiom.ai allows you to send data to your Slack workflows. This can offer a wide range of automation opportunities, from automatically generating Google Sheets to notifying your team of data that has been scraped from a website, there are many options that you can use.",{"title":1636,"searchDepth":1637,"depth":1637,"links":22631},[22632,22633,22636,22637,22640],{"id":2172,"depth":1640,"text":2173},{"id":22293,"depth":1640,"text":22294,"children":22634},[22635],{"id":22399,"depth":1637,"text":22400},{"id":2402,"depth":1640,"text":2403},{"id":8312,"depth":1640,"text":8313,"children":22638},[22639],{"id":22502,"depth":1637,"text":22503},{"id":2422,"depth":1640,"text":2423},"Learn how to trigger a Slack Workflow using an axiom.ai automation to send messages or automatically perform tasks within your automations",{"type":2143,"format":2144,"intent_type":2145,"intent":2454,"tags":22643,"platfrom":22645},[2456,2457,22644],"integration",[22285],"\u002Fguides\u002Fslack",{"title":22261,"description":22641},"guides\u002Fslack","x5--DXeHbXDxGgORit0jXg9IGbMabiuQAQbFmpBiT6s",{"id":22651,"title":22652,"body":22653,"date":1641,"description":23928,"extension":1643,"meta":23929,"navigation":1646,"order":1641,"path":23933,"seo":23934,"stem":23935,"__hash__":23936},"guides\u002Fguides\u002Fsupabase.md","How to automate Supabase with axiom.ai",{"type":1555,"value":22654,"toc":23918},[22655,22657,22665,22667,22669,22672,22708,22711,22715,22717,22720,22724,22726,22729,22735,22794,22797,22928,22935,23142,23149,23160,23166,23443,23448,23458,23462,23464,23469,23472,23506,23513,23529,23532,23723,23728,23831,23844,23848,23850,23855,23862,23865,23889,23892,23894,23896,23901,23903,23905,23907,23910,23912,23915],[1617,22656],{},[1558,22658,22659,22664],{},[1562,22660,22663],{"href":22661,"rel":22662},"https:\u002F\u002Fsupabase.com",[1633],"Supabase"," is an open source Firebase alternative offering Postgres databases, Authentication, instant APIs, Edge Functions, Realtime subscriptions, Storage, and Vector embeddings. Combining Supabase with axiom.ai can be a powerful way of levelling up your automations. From storing the data that you scrape from webpages, to retrieving data to be used in your automation, there is a lot you can achieve.",[1612,22666,2173],{"id":2172},[1617,22668],{},[1558,22670,22671],{},"To get started, you will need to have the following steps completed:",[1718,22673,22674],{},[2182,22675,22676,22681,22691,22700],{},[1724,22677,22678],{},[1593,22679,22680],{},"Sign up to Supabase",[1724,22682,22683,3617,22686],{},[1593,22684,22685],{},"Create a database and a table",[1562,22687,22690],{"href":22688,"rel":22689},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fdatabase\u002Ftables",[1633],"Supabase | Tables and Data",[1724,22692,22693,22696,22697],{},[1593,22694,22695],{},"Retrieve your project URL",": Go to ",[1593,22698,22699],{},"Project settings → API → Project URL",[1724,22701,22702,22696,22705],{},[1593,22703,22704],{},"Retrieve your API key",[1593,22706,22707],{},"Project settings → API → Project API Keys",[1558,22709,22710],{},"Throughout this guide we will be using a \"Customers\" table, any code provided will need to be modified to your specific use case.",[1612,22712,22714],{"id":22713},"working-with-supabase-data-in-axiomai","Working with Supabase data in axiom.ai",[1617,22716],{},[1558,22718,22719],{},"There are various actions that you can perform with the Supabase API and axiom.ai. To learn more about the Supabase API, and see examples specific to your table, head into your Supabase dashboard, click \"API docs\" and find your table in the sidebar. Let's dive into some use cases.",[2266,22721,22723],{"id":22722},"write-data-to-a-supabase-table","Write data to a Supabase table",[1617,22725],{},[1558,22727,22728],{},"To write data to your Supabase database, set up your axiom.ai automation as normal. When you are ready to send your data, continue this guide.",[1558,22730,22731,22732,22734],{},"To get started, add a ",[1562,22733,3918],{"href":1226}," step to your automation, we will then create variables to store key information used throughout the script. We will break down this script into sections, but this should all be combined into a single script in a single \"Write Javascript\" step.",[2346,22736,22738],{"className":2383,"code":22737,"language":2385,"meta":1636,"style":1636},"\u002F\u002F Change the [google-sheet-data] token to the token that stores your data and replace any item in \u003C> with your data.\nconst ogData = [google-sheet-data];\nconst supabase_url = \"\u003CPROJECT_URL>\u002Frest\u002Fv1\u002F\u003CTABLE_NAME>\";\nconst api_key = \"\u003CAPI_KEY>\";\n",[1731,22739,22740,22745,22766,22780],{"__ignoreMap":1636},[2354,22741,22742],{"class":2356,"line":2357},[2354,22743,22744],{"class":4535},"\u002F\u002F Change the [google-sheet-data] token to the token that stores your data and replace any item in \u003C> with your data.\n",[2354,22746,22747,22749,22752,22754,22757,22759,22762,22764],{"class":2356,"line":1640},[2354,22748,3932],{"class":3608},[2354,22750,22751],{"class":3505}," ogData",[2354,22753,3938],{"class":3608},[2354,22755,22756],{"class":2395}," [google",[2354,22758,18774],{"class":3608},[2354,22760,22761],{"class":2395},"sheet",[2354,22763,18774],{"class":3608},[2354,22765,18777],{"class":2395},[2354,22767,22768,22770,22773,22775,22778],{"class":2356,"line":1637},[2354,22769,3932],{"class":3608},[2354,22771,22772],{"class":3505}," supabase_url",[2354,22774,3938],{"class":3608},[2354,22776,22777],{"class":2364}," \"\u003CPROJECT_URL>\u002Frest\u002Fv1\u002F\u003CTABLE_NAME>\"",[2354,22779,3944],{"class":2395},[2354,22781,22782,22784,22787,22789,22792],{"class":2356,"line":1647},[2354,22783,3932],{"class":3608},[2354,22785,22786],{"class":3505}," api_key",[2354,22788,3938],{"class":3608},[2354,22790,22791],{"class":2364}," \"\u003CAPI_KEY>\"",[2354,22793,3944],{"class":2395},[1558,22795,22796],{},"Next, we will add a helper function that ensures that your data is formatted in a way that Supabase expects:",[2346,22798,22800],{"className":2383,"code":22799,"language":2385,"meta":1636,"style":1636},"const format = (data) => {\n    const formatted_data = [];\n    for (var i = 0; i \u003C data.length; i++) {\n        \u002F\u002F Follow the format and add your own column names, incrementing the value in the second [] for each new piece of data.\n        formatted_data.push({\"first_name\": data[i][0], \"last_name\": data[i][1], \"email\": data[i][2]});\n    }\n  \n  return formatted_data;\n}\n",[1731,22801,22802,22821,22832,22864,22869,22909,22913,22917,22924],{"__ignoreMap":1636},[2354,22803,22804,22806,22809,22811,22813,22815,22817,22819],{"class":2356,"line":2357},[2354,22805,3932],{"class":3608},[2354,22807,22808],{"class":3993}," format",[2354,22810,3938],{"class":3608},[2354,22812,4141],{"class":2395},[2354,22814,3461],{"class":2360},[2354,22816,6630],{"class":2395},[2354,22818,4005],{"class":3608},[2354,22820,4008],{"class":2395},[2354,22822,22823,22825,22828,22830],{"class":2356,"line":1640},[2354,22824,18440],{"class":3608},[2354,22826,22827],{"class":3505}," formatted_data",[2354,22829,3938],{"class":3608},[2354,22831,6572],{"class":2395},[2354,22833,22834,22837,22839,22841,22843,22845,22847,22849,22851,22854,22856,22859,22862],{"class":2356,"line":1637},[2354,22835,22836],{"class":3608},"    for",[2354,22838,4141],{"class":2395},[2354,22840,6563],{"class":3608},[2354,22842,19556],{"class":2395},[2354,22844,6569],{"class":3608},[2354,22846,19561],{"class":3505},[2354,22848,19564],{"class":2395},[2354,22850,19567],{"class":3608},[2354,22852,22853],{"class":2395}," data.",[2354,22855,19573],{"class":3505},[2354,22857,22858],{"class":2395},"; i",[2354,22860,22861],{"class":3608},"++",[2354,22863,18429],{"class":2395},[2354,22865,22866],{"class":2356,"line":1647},[2354,22867,22868],{"class":4535},"        \u002F\u002F Follow the format and add your own column names, incrementing the value in the second [] for each new piece of data.\n",[2354,22870,22871,22874,22876,22879,22882,22885,22887,22890,22893,22895,22897,22899,22902,22904,22906],{"class":2356,"line":3523},[2354,22872,22873],{"class":2395},"        formatted_data.",[2354,22875,6642],{"class":3993},[2354,22877,22878],{"class":2395},"({",[2354,22880,22881],{"class":2364},"\"first_name\"",[2354,22883,22884],{"class":2395},": data[i][",[2354,22886,18832],{"class":3505},[2354,22888,22889],{"class":2395},"], ",[2354,22891,22892],{"class":2364},"\"last_name\"",[2354,22894,22884],{"class":2395},[2354,22896,1804],{"class":3505},[2354,22898,22889],{"class":2395},[2354,22900,22901],{"class":2364},"\"email\"",[2354,22903,22884],{"class":2395},[2354,22905,10456],{"class":3505},[2354,22907,22908],{"class":2395},"]});\n",[2354,22910,22911],{"class":2356,"line":3595},[2354,22912,4250],{"class":2395},[2354,22914,22915],{"class":2356,"line":3673},[2354,22916,5158],{"class":2395},[2354,22918,22919,22921],{"class":2356,"line":3679},[2354,22920,18814],{"class":3608},[2354,22922,22923],{"class":2395}," formatted_data;\n",[2354,22925,22926],{"class":2356,"line":3685},[2354,22927,4256],{"class":2395},[1558,22929,22930,22931,22934],{},"Finally, we want to send the data to Supabase. There isn't anything that needs to be changed here, but you may want to use the ",[1731,22932,22933],{},"result"," in later steps of your automation, you'll need to return this value.",[2346,22936,22938],{"className":2383,"code":22937,"language":2385,"meta":1636,"style":1636},"const sendToSupabase = async () => {\n    try {\n        const response = await fetch(supabase_url, {\n            method: 'POST',\n            headers: {\n                'apikey': api_key,\n              'Authorization': `Bearer ${api_key}`,\n              'Content-Type': 'application\u002Fjson'\n            },\n            body: JSON.stringify(format(ogData))\n        });\n                               \n        if (!response.ok) {\n            console.error(\"Something went wrong with response\", response); \n            return;\n        }\n      \n        const result = await response.json();\n        console.log(result);\n    } catch (error) {\n        console.error(\"Something went wrong\", error);\n    }\n}\n",[1731,22939,22940,22957,22963,22978,22986,22990,22998,23014,23023,23027,23045,23049,23054,23064,23076,23082,23086,23090,23106,23114,23122,23134,23138],{"__ignoreMap":1636},[2354,22941,22942,22944,22947,22949,22951,22953,22955],{"class":2356,"line":2357},[2354,22943,3932],{"class":3608},[2354,22945,22946],{"class":3993}," sendToSupabase",[2354,22948,3938],{"class":3608},[2354,22950,3999],{"class":3608},[2354,22952,4002],{"class":2395},[2354,22954,4005],{"class":3608},[2354,22956,4008],{"class":2395},[2354,22958,22959,22961],{"class":2356,"line":1640},[2354,22960,4013],{"class":3608},[2354,22962,4008],{"class":2395},[2354,22964,22965,22967,22969,22971,22973,22975],{"class":2356,"line":1637},[2354,22966,4020],{"class":3608},[2354,22968,3714],{"class":3505},[2354,22970,3938],{"class":3608},[2354,22972,4027],{"class":3608},[2354,22974,4030],{"class":3993},[2354,22976,22977],{"class":2395},"(supabase_url, {\n",[2354,22979,22980,22982,22984],{"class":2356,"line":1647},[2354,22981,4038],{"class":2395},[2354,22983,4041],{"class":2364},[2354,22985,4044],{"class":2395},[2354,22987,22988],{"class":2356,"line":3523},[2354,22989,4049],{"class":2395},[2354,22991,22992,22995],{"class":2356,"line":3595},[2354,22993,22994],{"class":2364},"                'apikey'",[2354,22996,22997],{"class":2395},": api_key,\n",[2354,22999,23000,23003,23005,23007,23010,23012],{"class":2356,"line":3673},[2354,23001,23002],{"class":2364},"              'Authorization'",[2354,23004,3617],{"class":2395},[2354,23006,18475],{"class":2364},[2354,23008,23009],{"class":2395},"api_key",[2354,23011,4065],{"class":2364},[2354,23013,4044],{"class":2395},[2354,23015,23016,23019,23021],{"class":2356,"line":3679},[2354,23017,23018],{"class":2364},"              'Content-Type'",[2354,23020,3617],{"class":2395},[2354,23022,18492],{"class":2364},[2354,23024,23025],{"class":2356,"line":3685},[2354,23026,4082],{"class":2395},[2354,23028,23029,23031,23033,23035,23037,23039,23042],{"class":2356,"line":3708},[2354,23030,4087],{"class":2395},[2354,23032,11190],{"class":3505},[2354,23034,1610],{"class":2395},[2354,23036,11195],{"class":3993},[2354,23038,4159],{"class":2395},[2354,23040,23041],{"class":3993},"format",[2354,23043,23044],{"class":2395},"(ogData))\n",[2354,23046,23047],{"class":2356,"line":3761},[2354,23048,4128],{"class":2395},[2354,23050,23051],{"class":2356,"line":3775},[2354,23052,23053],{"class":2395},"                               \n",[2354,23055,23056,23058,23060,23062],{"class":2356,"line":3153},[2354,23057,4138],{"class":3608},[2354,23059,4141],{"class":2395},[2354,23061,4144],{"class":3608},[2354,23063,4147],{"class":2395},[2354,23065,23066,23068,23070,23072,23074],{"class":2356,"line":3799},[2354,23067,4153],{"class":2395},[2354,23069,4156],{"class":3993},[2354,23071,4159],{"class":2395},[2354,23073,4162],{"class":2364},[2354,23075,4502],{"class":2395},[2354,23077,23078,23080],{"class":2356,"line":3808},[2354,23079,4171],{"class":3608},[2354,23081,3944],{"class":2395},[2354,23083,23084],{"class":2356,"line":4150},[2354,23085,4179],{"class":2395},[2354,23087,23088],{"class":2356,"line":4168},[2354,23089,4133],{"class":2395},[2354,23091,23092,23094,23096,23098,23100,23102,23104],{"class":2356,"line":4176},[2354,23093,4020],{"class":3608},[2354,23095,4192],{"class":3505},[2354,23097,3938],{"class":3608},[2354,23099,4027],{"class":3608},[2354,23101,4199],{"class":2395},[2354,23103,4202],{"class":3993},[2354,23105,4205],{"class":2395},[2354,23107,23108,23110,23112],{"class":2356,"line":4182},[2354,23109,4211],{"class":2395},[2354,23111,4214],{"class":3993},[2354,23113,4217],{"class":2395},[2354,23115,23116,23118,23120],{"class":2356,"line":4187},[2354,23117,4223],{"class":2395},[2354,23119,4226],{"class":3608},[2354,23121,4229],{"class":2395},[2354,23123,23124,23126,23128,23130,23132],{"class":2356,"line":4208},[2354,23125,4211],{"class":2395},[2354,23127,4156],{"class":3993},[2354,23129,4159],{"class":2395},[2354,23131,4241],{"class":2364},[2354,23133,4244],{"class":2395},[2354,23135,23136],{"class":2356,"line":4220},[2354,23137,4250],{"class":2395},[2354,23139,23140],{"class":2356,"line":4232},[2354,23141,4256],{"class":2395},[1558,23143,23144,23145,23148],{},"To use this as is, call the ",[1731,23146,23147],{},"sendToSupabase"," function at the end of your script.",[2346,23150,23152],{"className":2383,"code":23151,"language":2385,"meta":1636,"style":1636},"sendToSupabase();\n",[1731,23153,23154],{"__ignoreMap":1636},[2354,23155,23156,23158],{"class":2356,"line":2357},[2354,23157,23147],{"class":3993},[2354,23159,4205],{"class":2395},[1558,23161,23162,23163,23165],{},"If you are using a large amount of data and you are struggling to pass it all in a single call, you may require the use of batching - breaking down the data and sending it as smaller chunks. This can also help work around the possibility of Supabase not writing rows due to an issue with a single row of data. We will need to use a slightly modified ",[1731,23164,23147],{}," function:",[2346,23167,23169],{"className":2383,"code":23168,"language":2385,"meta":1636,"style":1636},"\u002F\u002F Change this to meet your requirements.\nconst batchSize = 10;\n\nconst sendToSupabase = async () => {\n    for (var i = 0; i \u003C ogData.length; i += batchSize) {\n        try {\n            const response = await fetch(supabase_url, {\n                method: 'POST',\n                headers: {\n                    'apikey': api_key,\n                    'Authorization': `Bearer ${api_key}`,\n                    'Content-Type': 'application\u002Fjson'\n                },\n                body: JSON.stringify(format(ogData.slice(i, i + batchSize)))\n            });\n                               \n            if (!response.ok) {\n                console.error(\"Something went wrong with response\", response); \n                return;\n            }\n      \n            const result = await response.json();\n            console.log(result);\n        } catch (e) {\n            console.log(\"Something went wrong\", e);\n        }\n    }\n}\n",[1731,23170,23171,23176,23188,23192,23208,23237,23244,23259,23268,23273,23280,23295,23304,23309,23336,23341,23345,23356,23369,23376,23380,23384,23400,23408,23418,23431,23435,23439],{"__ignoreMap":1636},[2354,23172,23173],{"class":2356,"line":2357},[2354,23174,23175],{"class":4535},"\u002F\u002F Change this to meet your requirements.\n",[2354,23177,23178,23180,23182,23184,23186],{"class":2356,"line":1640},[2354,23179,3932],{"class":3608},[2354,23181,19636],{"class":3505},[2354,23183,3938],{"class":3608},[2354,23185,19542],{"class":3505},[2354,23187,3944],{"class":2395},[2354,23189,23190],{"class":2356,"line":1637},[2354,23191,3520],{"emptyLinePlaceholder":1646},[2354,23193,23194,23196,23198,23200,23202,23204,23206],{"class":2356,"line":1647},[2354,23195,3932],{"class":3608},[2354,23197,22946],{"class":3993},[2354,23199,3938],{"class":3608},[2354,23201,3999],{"class":3608},[2354,23203,4002],{"class":2395},[2354,23205,4005],{"class":3608},[2354,23207,4008],{"class":2395},[2354,23209,23210,23212,23214,23216,23218,23220,23222,23224,23226,23229,23231,23233,23235],{"class":2356,"line":3523},[2354,23211,22836],{"class":3608},[2354,23213,4141],{"class":2395},[2354,23215,6563],{"class":3608},[2354,23217,19556],{"class":2395},[2354,23219,6569],{"class":3608},[2354,23221,19561],{"class":3505},[2354,23223,19564],{"class":2395},[2354,23225,19567],{"class":3608},[2354,23227,23228],{"class":2395}," ogData.",[2354,23230,19573],{"class":3505},[2354,23232,19564],{"class":2395},[2354,23234,19578],{"class":3608},[2354,23236,19581],{"class":2395},[2354,23238,23239,23242],{"class":2356,"line":3595},[2354,23240,23241],{"class":3608},"        try",[2354,23243,4008],{"class":2395},[2354,23245,23246,23249,23251,23253,23255,23257],{"class":2356,"line":3673},[2354,23247,23248],{"class":3608},"            const",[2354,23250,3714],{"class":3505},[2354,23252,3938],{"class":3608},[2354,23254,4027],{"class":3608},[2354,23256,4030],{"class":3993},[2354,23258,22977],{"class":2395},[2354,23260,23261,23264,23266],{"class":2356,"line":3679},[2354,23262,23263],{"class":2395},"                method: ",[2354,23265,4041],{"class":2364},[2354,23267,4044],{"class":2395},[2354,23269,23270],{"class":2356,"line":3685},[2354,23271,23272],{"class":2395},"                headers: {\n",[2354,23274,23275,23278],{"class":2356,"line":3708},[2354,23276,23277],{"class":2364},"                    'apikey'",[2354,23279,22997],{"class":2395},[2354,23281,23282,23285,23287,23289,23291,23293],{"class":2356,"line":3761},[2354,23283,23284],{"class":2364},"                    'Authorization'",[2354,23286,3617],{"class":2395},[2354,23288,18475],{"class":2364},[2354,23290,23009],{"class":2395},[2354,23292,4065],{"class":2364},[2354,23294,4044],{"class":2395},[2354,23296,23297,23300,23302],{"class":2356,"line":3775},[2354,23298,23299],{"class":2364},"                    'Content-Type'",[2354,23301,3617],{"class":2395},[2354,23303,18492],{"class":2364},[2354,23305,23306],{"class":2356,"line":3153},[2354,23307,23308],{"class":2395},"                },\n",[2354,23310,23311,23314,23316,23318,23320,23322,23324,23327,23329,23331,23333],{"class":2356,"line":3799},[2354,23312,23313],{"class":2395},"                body: ",[2354,23315,11190],{"class":3505},[2354,23317,1610],{"class":2395},[2354,23319,11195],{"class":3993},[2354,23321,4159],{"class":2395},[2354,23323,23041],{"class":3993},[2354,23325,23326],{"class":2395},"(ogData.",[2354,23328,19595],{"class":3993},[2354,23330,19598],{"class":2395},[2354,23332,10060],{"class":3608},[2354,23334,23335],{"class":2395}," batchSize)))\n",[2354,23337,23338],{"class":2356,"line":3808},[2354,23339,23340],{"class":2395},"            });\n",[2354,23342,23343],{"class":2356,"line":4150},[2354,23344,23053],{"class":2395},[2354,23346,23347,23350,23352,23354],{"class":2356,"line":4168},[2354,23348,23349],{"class":3608},"            if",[2354,23351,4141],{"class":2395},[2354,23353,4144],{"class":3608},[2354,23355,4147],{"class":2395},[2354,23357,23358,23361,23363,23365,23367],{"class":2356,"line":4176},[2354,23359,23360],{"class":2395},"                console.",[2354,23362,4156],{"class":3993},[2354,23364,4159],{"class":2395},[2354,23366,4162],{"class":2364},[2354,23368,4502],{"class":2395},[2354,23370,23371,23374],{"class":2356,"line":4182},[2354,23372,23373],{"class":3608},"                return",[2354,23375,3944],{"class":2395},[2354,23377,23378],{"class":2356,"line":4187},[2354,23379,4471],{"class":2395},[2354,23381,23382],{"class":2356,"line":4208},[2354,23383,4133],{"class":2395},[2354,23385,23386,23388,23390,23392,23394,23396,23398],{"class":2356,"line":4220},[2354,23387,23248],{"class":3608},[2354,23389,4192],{"class":3505},[2354,23391,3938],{"class":3608},[2354,23393,4027],{"class":3608},[2354,23395,4199],{"class":2395},[2354,23397,4202],{"class":3993},[2354,23399,4205],{"class":2395},[2354,23401,23402,23404,23406],{"class":2356,"line":4232},[2354,23403,4153],{"class":2395},[2354,23405,4214],{"class":3993},[2354,23407,4217],{"class":2395},[2354,23409,23410,23413,23415],{"class":2356,"line":4247},[2354,23411,23412],{"class":2395},"        } ",[2354,23414,4226],{"class":3608},[2354,23416,23417],{"class":2395}," (e) {\n",[2354,23419,23420,23422,23424,23426,23428],{"class":2356,"line":4253},[2354,23421,4153],{"class":2395},[2354,23423,4214],{"class":3993},[2354,23425,4159],{"class":2395},[2354,23427,4241],{"class":2364},[2354,23429,23430],{"class":2395},", e);\n",[2354,23432,23433],{"class":2356,"line":4259},[2354,23434,4179],{"class":2395},[2354,23436,23437],{"class":2356,"line":4264},[2354,23438,4250],{"class":2395},[2354,23440,23441],{"class":2356,"line":6257},[2354,23442,4256],{"class":2395},[1558,23444,23445,23446,23148],{},"To use this, call the ",[1731,23447,23147],{},[2346,23449,23450],{"className":2383,"code":23151,"language":2385,"meta":1636,"style":1636},[1731,23451,23452],{"__ignoreMap":1636},[2354,23453,23454,23456],{"class":2356,"line":2357},[2354,23455,23147],{"class":3993},[2354,23457,4205],{"class":2395},[2266,23459,23461],{"id":23460},"read-data-from-a-supabase-table","Read data from a Supabase table",[1617,23463],{},[1558,23465,23466,23467,16085],{},"Reading data from a Supabase table allows you to make use of this data within your axiom.ai automations. To get started, add a ",[1562,23468,3918],{"href":1226},[1558,23470,23471],{},"We will first create variables to store key information used throughout the script. We will break down this script into sections, but this should all be combined into a single script in a single \"Write Javascript\" step.",[2346,23473,23475],{"className":2383,"code":23474,"language":2385,"meta":1636,"style":1636},"\u002F\u002F Replace any item in \u003C> with your data.\nconst supabase_url = \"\u003CPROJECT_URL>\u002Frest\u002Fv1\u002F\u003CTABLE_NAME>\";\nconst api_key = \"\u003CAPI_KEY>\";\n",[1731,23476,23477,23482,23494],{"__ignoreMap":1636},[2354,23478,23479],{"class":2356,"line":2357},[2354,23480,23481],{"class":4535},"\u002F\u002F Replace any item in \u003C> with your data.\n",[2354,23483,23484,23486,23488,23490,23492],{"class":2356,"line":1640},[2354,23485,3932],{"class":3608},[2354,23487,22772],{"class":3505},[2354,23489,3938],{"class":3608},[2354,23491,22777],{"class":2364},[2354,23493,3944],{"class":2395},[2354,23495,23496,23498,23500,23502,23504],{"class":2356,"line":1637},[2354,23497,3932],{"class":3608},[2354,23499,22786],{"class":3505},[2354,23501,3938],{"class":3608},[2354,23503,22791],{"class":2364},[2354,23505,3944],{"class":2395},[1558,23507,23508,23509,23512],{},"Your ",[1731,23510,23511],{},"supabase_url"," variable will need to be slightly modified, depending on what data you are looking to return, for example:",[1721,23514,23515,23518,23521],{},[1724,23516,23517],{},"Return all columns: \"\u003CPROJECT_URL>\u002Frest\u002Fv1\u002F\u003CTABLE_NAME>?select=*\"",[1724,23519,23520],{},"Return specific columns: \"\u003CPROJECT_URL>\u002Frest\u002Fv1\u002F\u003CTABLE_NAME>?select=some_column,other_column\"",[1724,23522,23523,23524,1610],{},"Filtered: \"\u003CPROJECT_URL>\u002Frest\u002Fv1\u002F\u003CTABLE_NAME>?id=eq.1\", ",[1562,23525,23528],{"href":23526,"rel":23527},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fno-code-tool\u002Freference\u002Fjavascript\u002Fusing-filters",[1633],"learn more",[1558,23530,23531],{},"Next, we will want to retrieve the data from your Supabase database. You won't need to make any changes to this code:",[2346,23533,23535],{"className":2383,"code":23534,"language":2385,"meta":1636,"style":1636},"const retrieveData = async () => {\n    try {\n      const response = await fetch(supabase_url, {\n        headers: {\n          'apikey': api_key,\n          'Authorization': `Bearer ${api_key}`\n        }\n      });\n        \n      if (!response.ok) {\n        console.error(\"Something went wrong\");\n        return;\n      }\n      \n      const result = await response.json();\n      return result;\n    } catch(e) {\n      console.error(\"Something went wrong\", e);\n    }\n}\n\nconst data = await retrieveData();\n",[1731,23536,23537,23554,23560,23574,23579,23586,23600,23604,23609,23613,23624,23636,23642,23647,23651,23667,23675,23684,23696,23700,23704,23708],{"__ignoreMap":1636},[2354,23538,23539,23541,23544,23546,23548,23550,23552],{"class":2356,"line":2357},[2354,23540,3932],{"class":3608},[2354,23542,23543],{"class":3993}," retrieveData",[2354,23545,3938],{"class":3608},[2354,23547,3999],{"class":3608},[2354,23549,4002],{"class":2395},[2354,23551,4005],{"class":3608},[2354,23553,4008],{"class":2395},[2354,23555,23556,23558],{"class":2356,"line":1640},[2354,23557,4013],{"class":3608},[2354,23559,4008],{"class":2395},[2354,23561,23562,23564,23566,23568,23570,23572],{"class":2356,"line":1637},[2354,23563,18533],{"class":3608},[2354,23565,3714],{"class":3505},[2354,23567,3938],{"class":3608},[2354,23569,4027],{"class":3608},[2354,23571,4030],{"class":3993},[2354,23573,22977],{"class":2395},[2354,23575,23576],{"class":2356,"line":1647},[2354,23577,23578],{"class":2395},"        headers: {\n",[2354,23580,23581,23584],{"class":2356,"line":3523},[2354,23582,23583],{"class":2364},"          'apikey'",[2354,23585,22997],{"class":2395},[2354,23587,23588,23591,23593,23595,23597],{"class":2356,"line":3595},[2354,23589,23590],{"class":2364},"          'Authorization'",[2354,23592,3617],{"class":2395},[2354,23594,18475],{"class":2364},[2354,23596,23009],{"class":2395},[2354,23598,23599],{"class":2364},"}`\n",[2354,23601,23602],{"class":2356,"line":3673},[2354,23603,4179],{"class":2395},[2354,23605,23606],{"class":2356,"line":3679},[2354,23607,23608],{"class":2395},"      });\n",[2354,23610,23611],{"class":2356,"line":3685},[2354,23612,4799],{"class":2395},[2354,23614,23615,23618,23620,23622],{"class":2356,"line":3708},[2354,23616,23617],{"class":3608},"      if",[2354,23619,4141],{"class":2395},[2354,23621,4144],{"class":3608},[2354,23623,4147],{"class":2395},[2354,23625,23626,23628,23630,23632,23634],{"class":2356,"line":3761},[2354,23627,4211],{"class":2395},[2354,23629,4156],{"class":3993},[2354,23631,4159],{"class":2395},[2354,23633,4241],{"class":2364},[2354,23635,6604],{"class":2395},[2354,23637,23638,23640],{"class":2356,"line":3775},[2354,23639,3764],{"class":3608},[2354,23641,3944],{"class":2395},[2354,23643,23644],{"class":2356,"line":3153},[2354,23645,23646],{"class":2395},"      }\n",[2354,23648,23649],{"class":2356,"line":3799},[2354,23650,4133],{"class":2395},[2354,23652,23653,23655,23657,23659,23661,23663,23665],{"class":2356,"line":3808},[2354,23654,18533],{"class":3608},[2354,23656,4192],{"class":3505},[2354,23658,3938],{"class":3608},[2354,23660,4027],{"class":3608},[2354,23662,4199],{"class":2395},[2354,23664,4202],{"class":3993},[2354,23666,4205],{"class":2395},[2354,23668,23669,23672],{"class":2356,"line":4150},[2354,23670,23671],{"class":3608},"      return",[2354,23673,23674],{"class":2395}," result;\n",[2354,23676,23677,23679,23681],{"class":2356,"line":4168},[2354,23678,4223],{"class":2395},[2354,23680,4226],{"class":3608},[2354,23682,23683],{"class":2395},"(e) {\n",[2354,23685,23686,23688,23690,23692,23694],{"class":2356,"line":4176},[2354,23687,18551],{"class":2395},[2354,23689,4156],{"class":3993},[2354,23691,4159],{"class":2395},[2354,23693,4241],{"class":2364},[2354,23695,23430],{"class":2395},[2354,23697,23698],{"class":2356,"line":4182},[2354,23699,4250],{"class":2395},[2354,23701,23702],{"class":2356,"line":4187},[2354,23703,4256],{"class":2395},[2354,23705,23706],{"class":2356,"line":4208},[2354,23707,3520],{"emptyLinePlaceholder":1646},[2354,23709,23710,23712,23715,23717,23719,23721],{"class":2356,"line":4220},[2354,23711,3932],{"class":3608},[2354,23713,23714],{"class":3505}," data",[2354,23716,3938],{"class":3608},[2354,23718,4027],{"class":3608},[2354,23720,23543],{"class":3993},[2354,23722,4205],{"class":2395},[1558,23724,6669,23725,23727],{},[1731,23726,3461],{}," variable should now contain the data from your database. We'll need to change the format of this data and return it to allow your automation to use it, we'll use the following code, again, no changes are required:",[2346,23729,23731],{"className":2383,"code":23730,"language":2385,"meta":1636,"style":1636},"const format = () => {\n  const formatted_data = [];\n  for (var i = 0; i \u003C data.length; i++) {\n    formatted_data.push(Object.values(data[i]))\n  }\n  \n  return formatted_data;\n}\n\nreturn format();\n",[1731,23732,23733,23747,23758,23786,23801,23805,23809,23815,23819,23823],{"__ignoreMap":1636},[2354,23734,23735,23737,23739,23741,23743,23745],{"class":2356,"line":2357},[2354,23736,3932],{"class":3608},[2354,23738,22808],{"class":3993},[2354,23740,3938],{"class":3608},[2354,23742,4002],{"class":2395},[2354,23744,4005],{"class":3608},[2354,23746,4008],{"class":2395},[2354,23748,23749,23752,23754,23756],{"class":2356,"line":1640},[2354,23750,23751],{"class":3608},"  const",[2354,23753,22827],{"class":3505},[2354,23755,3938],{"class":3608},[2354,23757,6572],{"class":2395},[2354,23759,23760,23762,23764,23766,23768,23770,23772,23774,23776,23778,23780,23782,23784],{"class":2356,"line":1637},[2354,23761,19549],{"class":3608},[2354,23763,4141],{"class":2395},[2354,23765,6563],{"class":3608},[2354,23767,19556],{"class":2395},[2354,23769,6569],{"class":3608},[2354,23771,19561],{"class":3505},[2354,23773,19564],{"class":2395},[2354,23775,19567],{"class":3608},[2354,23777,22853],{"class":2395},[2354,23779,19573],{"class":3505},[2354,23781,22858],{"class":2395},[2354,23783,22861],{"class":3608},[2354,23785,18429],{"class":2395},[2354,23787,23788,23791,23793,23796,23798],{"class":2356,"line":1647},[2354,23789,23790],{"class":2395},"    formatted_data.",[2354,23792,6642],{"class":3993},[2354,23794,23795],{"class":2395},"(Object.",[2354,23797,4546],{"class":3993},[2354,23799,23800],{"class":2395},"(data[i]))\n",[2354,23802,23803],{"class":2356,"line":3523},[2354,23804,11282],{"class":2395},[2354,23806,23807],{"class":2356,"line":3595},[2354,23808,5158],{"class":2395},[2354,23810,23811,23813],{"class":2356,"line":3673},[2354,23812,18814],{"class":3608},[2354,23814,22923],{"class":2395},[2354,23816,23817],{"class":2356,"line":3679},[2354,23818,4256],{"class":2395},[2354,23820,23821],{"class":2356,"line":3685},[2354,23822,3520],{"emptyLinePlaceholder":1646},[2354,23824,23825,23827,23829],{"class":2356,"line":3708},[2354,23826,4587],{"class":3608},[2354,23828,22808],{"class":3993},[2354,23830,4205],{"class":2395},[1558,23832,23833,23834,23836,23837,23840,23841,23843],{},"Your data will now be stored in the ",[1731,23835,4597],{}," data token that is output from the \"Write Javascript\" step. Learn more about ",[1562,23838,23839],{"href":1373},"How to pass data between steps in your automation",". Use the ",[1562,23842,667],{"href":1075}," step to loop through the rows of data returned.",[1612,23845,23847],{"id":23846},"triggering-an-axiomai-automation-from-a-supabase-database-event","Triggering an axiom.ai automation from a Supabase database event",[1617,23849],{},[1558,23851,23852,23853,4948],{},"Supabase offers the ability to trigger webhooks based on events happening within your database. Triggering axiom.ai automations with webhooks requires a paid plan, see ",[1562,23854,1535],{"href":1534},[1558,23856,22731,23857,23859,23860,1610],{},[1562,23858,1110],{"href":1111}," step to your automation - we recommend adding this as the first step of your automation. For more information on setting test data, see ",[1562,23861,1110],{"href":1111},[1558,23863,23864],{},"In Supabase, head to your Dashboard, then into \"Integrations\" and \"Database Webhooks\" - it should already be installed. Click \"Create a new hook\" to create a new webhook. Configure as instructed by the user interface, specifically setting the following fields with axiom.ai data:",[1718,23866,23867],{},[2182,23868,23869,23875,23883],{},[1724,23870,23871,23874],{},[1593,23872,23873],{},"HTTP Request - Method:"," Set to 'POST'.",[1724,23876,23877,23880,23881,1610],{},[1593,23878,23879],{},"HTTP Request - URL:"," the axiom.ai endpoint is ",[1731,23882,2208],{},[1724,23884,23885,23888],{},[1593,23886,23887],{},"Headers:"," often pre-configured, 'Content-Type': 'application\u002Fjson'.",[1558,23890,23891],{},"Note, it's not currently possible to send data to axiom.ai with these webhooks - however, an automation that retrieves data from Supabase can be triggered using this method. Supabase webhooks are for notification purpose only.",[1612,23893,2403],{"id":2402},[1617,23895],{},[1558,23897,23898,23899,2855],{},"To test adding data to Supabase, click \"Run\" within the Builder - open up your Supabase dashboard and open the table to view any changes. To test retrieving data from Supabase, add an output for your data, for example, a ",[1562,23900,4914],{"href":1214},[1558,23902,4917],{},[1612,23904,2423],{"id":2422},[1617,23906],{},[1558,23908,23909],{},"Combining Supabase and axiom.ai allows you more flexibility on your data storage to power up your automations. Using Supabase opens up the possibility to connect external databases using their integrations such as S3, Stripe, Firebase and much more. We are excited to see what you build!",[1617,23911],{},[1558,23913,23914],{},"Information accurate as of November 2024.",[2438,23916,23917],{},"html pre.shiki code .sU953, html code.shiki .sU953{--shiki-default:#6E7781;--shiki-dark:#8B949E}html pre.shiki code .sjeE4, html code.shiki .sjeE4{--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .sHrmB, html code.shiki .sHrmB{--shiki-default:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbjLL, html code.shiki .sbjLL{--shiki-default:#8250DF;--shiki-dark:#D2A8FF}html pre.shiki code .sTDnQ, html code.shiki .sTDnQ{--shiki-default:#953800;--shiki-dark:#FFA657}",{"title":1636,"searchDepth":1637,"depth":1637,"links":23919},[23920,23921,23925,23926,23927],{"id":2172,"depth":1640,"text":2173},{"id":22713,"depth":1640,"text":22714,"children":23922},[23923,23924],{"id":22722,"depth":1637,"text":22723},{"id":23460,"depth":1637,"text":23461},{"id":23846,"depth":1640,"text":23847},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"Learn how to automatically send data to your Supabase databases and trigger your axiom.ai automations using triggers.",{"type":1731,"format":1718,"intent_type":23930,"intent":2454,"tags":23931,"platfrom":23932},"wokflow",[2456,2457,22644],[22663],"\u002Fguides\u002Fsupabase",{"title":22652,"description":23928},"guides\u002Fsupabase","3QWB2e30Zph2x51OK35CFrTWcGp5GoCSUP_TRpnm_bI",{"id":23938,"title":23939,"body":23940,"date":1641,"description":24306,"extension":1643,"meta":24307,"navigation":1646,"order":1641,"path":24310,"seo":24311,"stem":24312,"__hash__":24313},"guides\u002Fguides\u002Ftadabase.md","How to automate Tadabase with axiom.ai",{"type":1555,"value":23941,"toc":24295},[23942,23944,23952,23954,23956,23981,23989,23993,23996,24000,24009,24015,24018,24022,24025,24045,24079,24084,24088,24091,24107,24190,24196,24200,24204,24207,24210,24226,24260,24264,24266,24269,24276,24282,24284,24287,24293],[1617,23943],{},[1558,23945,23946,23951],{},[1562,23947,23950],{"href":23948,"rel":23949},"https:\u002F\u002Ftadabase.io",[1633],"Tadabase"," allows you to built custom applications and databases to power your workflows. When combined with axiom.ai, it's easy to send data to your Tadabase data tables and update the data as needed with their webhook systems.",[1612,23953,2173],{"id":2172},[1558,23955,22671],{},[1718,23957,23958],{},[2182,23959,23960,23963,23966,23969,23978],{},[1724,23961,23962],{},"Sign up to Tadabase.",[1724,23964,23965],{},"Create a new application.",[1724,23967,23968],{},"Create a new data table.",[1724,23970,23971,23972,23977],{},"Sign up to ",[1562,23973,23976],{"href":23974,"rel":23975},"https:\u002F\u002Fcatcher.tadabase.io",[1633],"Tadabase's Webhook Catcher"," (using the same email as your Tadabase account).",[1724,23979,23980],{},"The \"App ID\", \"API Key\" and \"API Secret\" for the application (\"Settings\" → \"API Keys\" → \"Generate New Key\").",[1558,23982,23983,23984,13812],{},"More details on how to do the steps above can be found in the ",[1562,23985,23988],{"href":23986,"rel":23987},"https:\u002F\u002Fdocs.tadabase.io\u002Fgetting-started\u002Farticle\u002Fgetting-started-with-tadabase",[1633],"Getting Started with Tadabase",[1612,23990,23992],{"id":23991},"working-with-tadabase-data-in-axiomai","Working with Tadabase data in axiom.ai",[1558,23994,23995],{},"For demonstration purposes, we will be making use of a simple \"users\" data table throughout this guide - you will need to update any code or triggers used in this guide to your own use case and data table fields.",[2266,23997,23999],{"id":23998},"creating-a-new-webhook","Creating a new webhook",[1558,24001,24002,24003,24008],{},"Tadabase has a great guide on how to set up your application to be ready to receive webhooks, you'll find their ",[1562,24004,24007],{"href":24005,"rel":24006},"https:\u002F\u002Fdocs.tadabase.io\u002Fwebhooks\u002Farticle\u002Fincoming-webhooks",[1633],"Incoming Webhooks"," documentation on their website. We recommend following this before continuing this guide.",[1558,24010,24011,24012,1610],{},"You should end up with a webhook URL similar to the following: ",[1731,24013,24014],{},"https:\u002F\u002Fcatcher.tadabase.io\u002Fwebhook\u002F\u003CID>",[1558,24016,24017],{},"You'll want to use the \"Field Slug\" for the fields that you wish to edit or update - you can find these by heading into the data table, then into the \"Fields\" tab.",[2266,24019,24021],{"id":24020},"creating-a-single-record","Creating a single record",[1558,24023,24024],{},"To create a single record, you'll need the webhook URL that was created in the previous section. Then, in your axiom.ai automation set up your automation as normal, once you are ready to send your data, add the following step:",[1718,24026,24027],{},[2182,24028,24029,24033,24039],{},[1724,24030,9925,24031,16085],{},[1562,24032,1605],{"href":1194},[1724,24034,24035,24036,24038],{},"Add the webhook URL in the ",[1731,24037,2204],{}," field.",[1724,24040,24041,24042,24044],{},"Configure the ",[1731,24043,17948],{}," field based on your data table fields. See an example below.",[2346,24046,24048],{"className":9309,"code":24047,"language":4202,"meta":1636,"style":1636},"{\n    \"name\": \"Jane Doe\",\n    \"email\": \"example@axiom.ai\"\n}\n",[1731,24049,24050,24054,24065,24075],{"__ignoreMap":1636},[2354,24051,24052],{"class":2356,"line":2357},[2354,24053,9317],{"class":2395},[2354,24055,24056,24058,24060,24063],{"class":2356,"line":1640},[2354,24057,11118],{"class":9322},[2354,24059,3617],{"class":2395},[2354,24061,24062],{"class":2364},"\"Jane Doe\"",[2354,24064,4044],{"class":2395},[2354,24066,24067,24070,24072],{"class":2356,"line":1637},[2354,24068,24069],{"class":9322},"    \"email\"",[2354,24071,3617],{"class":2395},[2354,24073,24074],{"class":2364},"\"example@axiom.ai\"\n",[2354,24076,24077],{"class":2356,"line":1647},[2354,24078,4256],{"class":2395},[1558,24080,24081,24082,13812],{},"Remember, you can use the \"Insert data\" button to insert data tokens from your automation, learn more in our ",[1562,24083,9372],{"href":1373},[2266,24085,24087],{"id":24086},"creating-multiple-records","Creating multiple records",[1558,24089,24090],{},"To create multiple records, you'll need the webhook URL that was created in the previous section. You'll need to have the field mapping of your webhook set to \"Multi-value Webhook\" - you can edit this if it's not already set. Then, in your axiom.ai automation set up your automation as normal, once you are ready to send your data, add the following step:",[1718,24092,24093],{},[2182,24094,24095,24099,24103],{},[1724,24096,9925,24097,16085],{},[1562,24098,1605],{"href":1194},[1724,24100,24035,24101,24038],{},[1731,24102,2204],{},[1724,24104,24041,24105,24044],{},[1731,24106,17948],{},[2346,24108,24110],{"className":9309,"code":24109,"language":4202,"meta":1636,"style":1636},"{\n    \"\u003CMAPPING_FIELD>\": [\n        {\n            \"name\": \"Jane Doe\",\n            \"email\": \"example@axiom.ai\"\n        },\n        {\n            \"name\": \"John Smith\",\n            \"email\": \"example@axiom.ai\"\n        }\n    ]\n}\n",[1731,24111,24112,24116,24124,24129,24140,24149,24154,24158,24169,24177,24181,24186],{"__ignoreMap":1636},[2354,24113,24114],{"class":2356,"line":2357},[2354,24115,9317],{"class":2395},[2354,24117,24118,24121],{"class":2356,"line":1640},[2354,24119,24120],{"class":9322},"    \"\u003CMAPPING_FIELD>\"",[2354,24122,24123],{"class":2395},": [\n",[2354,24125,24126],{"class":2356,"line":1637},[2354,24127,24128],{"class":2395},"        {\n",[2354,24130,24131,24134,24136,24138],{"class":2356,"line":1647},[2354,24132,24133],{"class":9322},"            \"name\"",[2354,24135,3617],{"class":2395},[2354,24137,24062],{"class":2364},[2354,24139,4044],{"class":2395},[2354,24141,24142,24145,24147],{"class":2356,"line":3523},[2354,24143,24144],{"class":9322},"            \"email\"",[2354,24146,3617],{"class":2395},[2354,24148,24074],{"class":2364},[2354,24150,24151],{"class":2356,"line":3595},[2354,24152,24153],{"class":2395},"        },\n",[2354,24155,24156],{"class":2356,"line":3673},[2354,24157,24128],{"class":2395},[2354,24159,24160,24162,24164,24167],{"class":2356,"line":3679},[2354,24161,24133],{"class":9322},[2354,24163,3617],{"class":2395},[2354,24165,24166],{"class":2364},"\"John Smith\"",[2354,24168,4044],{"class":2395},[2354,24170,24171,24173,24175],{"class":2356,"line":3685},[2354,24172,24144],{"class":9322},[2354,24174,3617],{"class":2395},[2354,24176,24074],{"class":2364},[2354,24178,24179],{"class":2356,"line":3708},[2354,24180,4179],{"class":2395},[2354,24182,24183],{"class":2356,"line":3761},[2354,24184,24185],{"class":2395},"    ]\n",[2354,24187,24188],{"class":2356,"line":3775},[2354,24189,4256],{"class":2395},[1558,24191,6669,24192,24195],{},[1731,24193,24194],{},"\u003CMAPPING_FIELD>"," should correspond with the field that you inserted into the \"Multi-value Webhook\" field in the field mapping section of your webhook.",[1558,24197,24081,24198,13812],{},[1562,24199,9372],{"href":1373},[2266,24201,24203],{"id":24202},"updating-a-record","Updating a record",[1558,24205,24206],{},"To create multiple records, you'll need the webhook URL that was created in the previous section. You'll need to edit your webhook and set the \"Upon Receiving Webhook\" option to \"Update an Existing Record By ID\" or \"Update an Existing Record by Field\", depending on your needs. Optionally, you can set the webhook to \"create new if record not found\". Set the field that the webhook should match into the input, for example, \"id\" set to \"Dynamic\".",[1558,24208,24209],{},"Then, in your axiom.ai automation set up your automation as normal, once you are ready to send your data, add the following step:",[1718,24211,24212],{},[2182,24213,24214,24218,24222],{},[1724,24215,9925,24216,16085],{},[1562,24217,1605],{"href":1194},[1724,24219,24035,24220,24038],{},[1593,24221,2204],{},[1724,24223,24041,24224,24044],{},[1593,24225,17948],{},[2346,24227,24229],{"className":9309,"code":24228,"language":4202,"meta":1636,"style":1636},"{\n    \"id\": \"4MXQJdrZ6v\",\n    \"name\": \"John Smith\"\n}\n",[1731,24230,24231,24235,24247,24256],{"__ignoreMap":1636},[2354,24232,24233],{"class":2356,"line":2357},[2354,24234,9317],{"class":2395},[2354,24236,24237,24240,24242,24245],{"class":2356,"line":1640},[2354,24238,24239],{"class":9322},"    \"id\"",[2354,24241,3617],{"class":2395},[2354,24243,24244],{"class":2364},"\"4MXQJdrZ6v\"",[2354,24246,4044],{"class":2395},[2354,24248,24249,24251,24253],{"class":2356,"line":1637},[2354,24250,11118],{"class":9322},[2354,24252,3617],{"class":2395},[2354,24254,24255],{"class":2364},"\"John Smith\"\n",[2354,24257,24258],{"class":2356,"line":1647},[2354,24259,4256],{"class":2395},[1558,24261,24081,24262,13812],{},[1562,24263,9372],{"href":1373},[1612,24265,2403],{"id":2402},[1558,24267,24268],{},"To test your workflow, click \"Run\" in your axiom.ai automation. Tadabase takes a few minutes to process API calls so give it a few minutes, and then head to your data table to check if your data has been added.",[1558,24270,24271,24272,24275],{},"If your data has not been added, navigate to your webhook in the ",[1562,24273,23976],{"href":23974,"rel":24274},[1633]," where there is a section that details failed webhook requests - review these failed requests for more information on what the error may be.",[1558,24277,24278,24279],{},"If there are errors within your automation, you'll find these in the builder, or in your run reports. Learn more about ",[1562,24280,24281],{"href":1487},"How to Debug",[1612,24283,2423],{"id":2422},[1558,24285,24286],{},"Combining the automation powers of axiom.ai with the storage options offered by Tadabase offers you an abundance of opportunities to power up your workflow. There are many use cases for this workflow, such as storing the data that your automation scrapes, and then providing it to your team using a Tadabase web application interface.",[1558,24288,24289,24292],{},[2434,24290,24291],{},"Note",", it's not currently possible to use Tadabase's Outgoing Webhooks to trigger your axiom.ai automations from changes to your data tables - it's not currently possible to customise these webhooks to include the data that axiom.ai needs to trigger your automations. We hope that this changes in the future, but for now would recommend contacting their support team to log your feedback request.",[2438,24294,9441],{},{"title":1636,"searchDepth":1637,"depth":1637,"links":24296},[24297,24298,24304,24305],{"id":2172,"depth":1640,"text":2173},{"id":23991,"depth":1640,"text":23992,"children":24299},[24300,24301,24302,24303],{"id":23998,"depth":1637,"text":23999},{"id":24020,"depth":1637,"text":24021},{"id":24086,"depth":1637,"text":24087},{"id":24202,"depth":1637,"text":24203},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"Learn how to automatically send data to your Tadabase databases and trigger your axiom.ai automations using triggers.",{"type":1731,"format":1718,"intent_type":2145,"intent":2454,"tags":24308,"platfrom":24309},[2456,2457,22644],[23950],"\u002Fguides\u002Ftadabase",{"title":23939,"description":24306},"guides\u002Ftadabase","_cFNjxGk-vDSB7sAhmka_Q0nrME7lvBVsOExsf6KD_Y",{"id":24315,"title":24316,"body":24317,"date":1641,"description":24537,"extension":1643,"meta":24538,"navigation":1646,"order":1641,"path":24542,"seo":24543,"stem":24544,"__hash__":24545},"guides\u002Fguides\u002Ftransparency-report.md","How to scrape Google Transparency reports",{"type":1555,"value":24318,"toc":24533},[24319,24321,24327,24330,24344,24362,24366,24368,24370,24373,24403,24407,24409,24426,24432],[1617,24320],{},[1558,24322,6669,24323,24326],{},[1593,24324,24325],{},"Copyright"," section of the Google Transparency Report provides users insights into URLs removed from Google Search due to copyright infringement. It's possible to scrape and extract information about the flagged content, the entities requesting removal, and the reasons for delisting.",[1558,24328,24329],{},"In this guide, you'll learn how to scrape copyright data from these reports into a Google Sheet using two web scrapers:",[1718,24331,24332],{},[2182,24333,24334,24341],{},[1724,24335,24336,24337,24340],{},"The first web scraper will input search terms, extract links to ",[1593,24338,24339],{},"\"Copyright Owners\"",", and save them to a Google Sheet.",[1724,24342,24343],{},"The second web scraper will process the extracted links by visiting the pages, extracting data for \"Specified Domains\" and \"Reporting Organizations,\" and writing this information into the same or another Google Sheet.",[1558,24345,5554,24346,1575,24352,24358,24359],{},[1593,24347,24348],{},[1562,24349,24351],{"href":24350,"download":1646},"\u002Fdocs\u002Fguides\u002Ftemplates\u002Faxiom_input_search_term_and_scrape_template.json","first",[1593,24353,24354],{},[1562,24355,24357],{"href":24356,"download":1646},"\u002Fdocs\u002Fguides\u002Ftemplates\u002Faxiom_scraper_two-owners-data.json","second"," template featured in this guide. This template was correct at the time of creation but may require updating or customization to suit your specific use case. If you’re unsure how to upload it, ",[1562,24360,24361],{"href":849},"watch this video.",[2219,24363],{"src":24364,"alt":24365},"\u002Fdocs\u002Fguides\u002Fexplore-the-data.webp","Scraping Google Transparency Report pages for content delistings due to copyright data.",[1612,24367,2173],{"id":2172},[1617,24369],{},[1558,24371,24372],{},"To begin, create a Google Sheet and add search terms to input into the \"Search\" field.",[1718,24374,24375],{},[1721,24376,24377,24385,24391,24397],{},[1724,24378,24379,24382,24383,6805],{},[1593,24380,24381],{},"1. Create a new Google Sheet",": If you're logged into Google, type ",[1731,24384,6804],{},[1724,24386,24387,24390],{},[1593,24388,24389],{},"2. Set up tab one",": Add your search terms to the first tab.",[1724,24392,24393,24396],{},[1593,24394,24395],{},"3. Set up tab two",": Name this second tab \"Copyright Owners.\"",[1724,24398,24399,24402],{},[1593,24400,24401],{},"4. Set up tab three",": Name this third tab \"Domain and Reporting Data.\"",[1612,24404,24406],{"id":24405},"how-to-build-a-web-scraper-to-extract-copyright-owners","How to build a web scraper to extract 'copyright owners'",[1617,24408],{},[1558,24410,24411,24412,24417,24418,5042,24420,24422,24423,24425],{},"This web scraper extracts data from the ",[1562,24413,24416],{"href":24414,"rel":24415},"https:\u002F\u002Ftransparencyreport.google.com\u002Fcopyright\u002Fexplore",[1633],"Copyright Removal Request Data"," search page. The bot inputs search terms and extracts links to \"Copyright Owners,\" saving them to a Google Sheet.\nTo get started, open ",[1593,24419,5041],{},[1593,24421,5045],{}," to use the no-code bot builder for creating the Google scraper. Then, click ",[1593,24424,5049],{}," to begin.",[1558,24427,5053,24428,5057,24430],{},[1562,24429,2144],{"href":24350,"download":1646},[1562,24431,5060],{"href":849},[1718,24433,24434],{},[1721,24435,24436,24453,24473],{},[1724,24437,24438,1729,24440,24442],{},[1593,24439,1728],{},[1731,24441,1733],{},[1721,24443,24444,24449],{},[1724,24445,24446,24448],{},[1731,24447,1740],{},": Search for the Google Sheet you created in the \"Spreadsheet\" field. Once found, click to select.",[1724,24450,24451,9551],{},[1731,24452,1746],{},[1724,24454,24455,1729,24457,24459],{},[1593,24456,1752],{},[1731,24458,1043],{},[1721,24460,24461],{},[1724,24462,24463,24465,24466,5335,24469,5158],{},[1731,24464,1770],{},": Insert this ",[1562,24467,5526],{"href":24414,"rel":24468},[1633],[2219,24470],{"src":24471,"alt":24472},"\u002Fdocs\u002Fguides\u002Fscraper-one-url.webp","axiom.ai using the go-to page step to load the Transparency Report page",[1724,24474,24475,1729,24477,24479,24489],{},[1593,24476,5364],{},[1731,24478,667],{},[1721,24480,24481],{},[1724,24482,24483,24485,24486,24488],{},[1731,24484,667],{},": Click 'Insert Data' and select ",[1731,24487,1778],{},". The loop step will now iterate through the URLs in the Google Sheet.",[1721,24490,24491,24515,24528],{},[1724,24492,24493,1729,24495,24497],{},[1593,24494,8014],{},[1731,24496,8017],{},[1721,24498,24499,24506],{},[1724,24500,24501,24485,24503,24505],{},[1731,24502,2580],{},[1731,24504,1778],{}," to pass the search term from the sheet.",[1724,24507,24508,24510,24511,5158],{},[1731,24509,6928],{},": Choose column 'A' in the preview.\n",[2219,24512],{"src":24513,"alt":24514},"\u002Fdocs\u002Fguides\u002Fscraper-one-search.webp","axiom.ai using the enter text step to input search terms in the Google Transparency Report page",[1724,24516,24517,1729,24519,24521],{},[1593,24518,8026],{},[1731,24520,16388],{},[1721,24522,24523],{},[1724,24524,24525,24527],{},[1731,24526,6951],{},": Press 'Record', then 'Return'.",[1724,24529,24530,24532],{},[1593,24531,8037],{}," `",{"title":1636,"searchDepth":1637,"depth":1637,"links":24534},[24535,24536],{"id":2172,"depth":1640,"text":2173},{"id":24405,"depth":1640,"text":24406},"Learn how to use axiom.ai to scrape content delistings due to copyright data from Google Transparency Report pages and export it directly into a Google Sheet without writing a single line of code. This guide will walk you through setting up the no-code web scraper step by step, enabling you to extract and analyze copyright delisting data.",{"pinned":1646,"type":2143,"format":1718,"intent_type":2675,"intent":9889,"tags":24539,"platfrom":24541},[2149,24540,21125],"reporting",[8896],"\u002Fguides\u002Ftransparency-report",{"title":24316,"description":24537},"guides\u002Ftransparency-report","n9dwxRTZYdzNhbDsqBJA1jTx-eCKxyLJTTXnM5rSDUg",{"id":24547,"title":24548,"body":24549,"date":2669,"description":24798,"extension":1643,"meta":24799,"navigation":1646,"order":1641,"path":24803,"seo":24804,"stem":24805,"__hash__":24806},"guides\u002Fguides\u002Ftwitter-direct-messages.md","How to automate Twitter X direct messages",{"type":1555,"value":24550,"toc":24790},[24551,24553,24556,24558,24560,24568,24572,24579,24583,24585,24589,24695,24699,24704,24706,24710,24712,24717,24786],[1617,24552],{},[1558,24554,24555],{},"Learn how to automate sending tweets with a Chrome bot for X(Twitter). Install the template and set up your bot in a few clicks on your browser. This Twitter template utilises a Google Sheet that includes a list of Twitter profiles for messaging. It proceeds to launch Twitter in Chrome and loops through each profile, clicking on the message button and then entering a message before hitting the return key to send the message. Just like how you would message from a profile page.",[1662,24557],{},[1612,24559,2480],{"id":2479},[1558,24561,1670,24562,20838,24564,24567],{},[1593,24563,1673],{},[1593,24565,24566],{},"\"Twitter Messages\""," then add profile links.",[1612,24569,24571],{"id":24570},"install-the-twitter-x-direct-messages-bot","Install the Twitter X direct messages bot",[1558,24573,24574,24575,1696,24577,1700],{},"To install this Twitter X direct messages bot click ",[1593,24576,1695],{},[1593,24578,1699],{},[1558,24580,1703,24581,1610],{},[1593,24582,1706],{},[1558,24584,1709],{},[1612,24586,24588],{"id":24587},"configure-your-twitter-x-direct-messages-bot","Configure your Twitter X direct messages bot",[1718,24590,24591,24693],{},[1721,24592,24593,24610],{},[1724,24594,24595,1729,24597,24599],{},[1593,24596,1728],{},[1731,24598,1733],{},[1721,24600,24601,24605],{},[1724,24602,24603,1741],{},[1731,24604,1740],{},[1724,24606,24607,24609],{},[1731,24608,1746],{},": Choose the tab with the profile links.",[1724,24611,24612,1729,24614,24616],{},[1593,24613,1752],{},[1731,24615,667],{},[1721,24617,24618,24634,24640,24677],{},[1724,24619,24620,1729,24622,24624],{},[1593,24621,1761],{},[1731,24623,1043],{},[1721,24625,24626],{},[1724,24627,24628,1771,24630,1775,24632,1610],{},[1731,24629,1770],{},[1731,24631,1833],{},[1731,24633,1866],{},[1724,24635,24636,1729,24638,11867],{},[1593,24637,1784],{},[1731,24639,1787],{},[1724,24641,24642,1729,24644,14423,24646],{},[1593,24643,1809],{},[1731,24645,12915],{},[1721,24647,24648,24653,24669],{},[1724,24649,24650,11867],{},[1593,24651,24652],{},"2.3.1 – 2.3.2",[1724,24654,24655,1729,24658,24660],{},[1593,24656,24657],{},"2.3.3",[1731,24659,2573],{},[1721,24661,24662],{},[1724,24663,24664,1771,24666,24668],{},[1731,24665,2580],{},[1731,24667,1833],{},", select message from Google Sheet or type directly into the input.",[1724,24670,24671,1729,24674,11867],{},[1593,24672,24673],{},"2.3.4",[1731,24675,24676],{},"Press Key(s): Send message",[1724,24678,24679,1729,24681,24683],{},[1593,24680,1852],{},[1731,24682,1920],{},[1721,24684,24685,24689],{},[1724,24686,24687,1741],{},[1731,24688,1740],{},[1724,24690,24691,14394],{},[1731,24692,1746],{},[1558,24694,2610],{},[1612,24696,24698],{"id":24697},"run-your-twitter-x-direct-messages-bot","Run your Twitter X direct messages bot",[1558,24700,24701,24702,1610],{},"To test an Instagram scraper, initiate the bot with the desktop runner and let it run a few loops. If you do not want the Messages to send disable step 2.3.6. Then, stop the bot and review the data in the linked Google Sheet for accuracy and completeness. If you wish to schedule the bot, ",[1562,24703,2620],{"href":638},[1612,24705,1956],{"id":1955},[1558,24707,1959,24708,1964],{},[1562,24709,1963],{"href":1962},[1612,24711,1398],{"id":1967},[1558,24713,24714,24715,1610],{},"We recommend you watch the video to troubleshoot. If you wish to schedule the bot, you will need to share the Cookie in settings or ",[1562,24716,2620],{"href":638},[1718,24718,24719],{},[1721,24720,24721,24731,24741,24752,24762,24775],{},[1724,24722,24723,24726,1983,24728,24730],{},[1593,24724,24725],{},"Profile pages not loading?",[1981,24727],{},[1731,24729,14797],{},", check you have inserted the data correctly.",[1724,24732,24733,24736,1983,24738,24740],{},[1593,24734,24735],{},"No data being found?",[1981,24737],{},[1731,24739,2005],{},", reselect an element that wraps around the message button.",[1724,24742,24743,24746,1983,24748,24751],{},[1593,24744,24745],{},"Not running X in English?",[1981,24747],{},[1731,24749,24750],{},"Step 2.3 – If condition: Check for Message button",", change the condition to check for 'Message' in your native language.",[1724,24753,24754,24757,24759,24760,1610],{},[1593,24755,24756],{},"Data to check not set?",[1981,24758],{},"\nIn the same step, make sure it is set to ",[1731,24761,1837],{},[1724,24763,24764,24766,1983,24768,24771,24772,1610],{},[1593,24765,9076],{},[1981,24767],{},[1731,24769,24770],{},"Step 2.3.1 – Click Element: Message",", reselect the message button. Try using the ",[1562,24773,24774],{"href":1391},"text selector",[1724,24776,24777,24780,1983,24782,24785],{},[1593,24778,24779],{},"No message being added?",[1981,24781],{},[1731,24783,24784],{},"Step 2.3.3 – Enter Text: Message",", check you have inserted data or try reselecting the text input field.",[1558,24787,2118,24788],{},[1562,24789,2121],{"href":82},{"title":1636,"searchDepth":1637,"depth":1637,"links":24791},[24792,24793,24794,24795,24796,24797],{"id":2479,"depth":1640,"text":2480},{"id":24570,"depth":1640,"text":24571},{"id":24587,"depth":1640,"text":24588},{"id":24697,"depth":1640,"text":24698},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"Learn how to automate Twitter\u002FX direct messages using axiom.ai and Google Sheets. This guide covers setting up, configuring, and running a bot to send personalized messages.",{"read":2672,"level":2140,"video":24800,"templateId":6406,"type":2143,"format":2144,"intent_type":2675,"intent":2676,"tags":24801,"platfrom":24802},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F6GPiwu8on0Q",[2678,2679,2682],[11671,11672],"\u002Fguides\u002Ftwitter-direct-messages",{"title":24548,"description":24798},"guides\u002Ftwitter-direct-messages","FRkc4W9-rgU8_sevokVUqlIUROXCjeQr_UiMjeNXmIs",{"id":24808,"title":24809,"body":24810,"date":24987,"description":24988,"extension":1643,"meta":24989,"navigation":1646,"order":1641,"path":24994,"seo":24995,"stem":24996,"__hash__":24997},"guides\u002Fguides\u002Fupload-files-from-a-google-sheet.md","How to automate uploading files",{"type":1555,"value":24811,"toc":24979},[24812,24814,24817,24819,24821,24826,24830,24838,24840,24842,24846,24923,24927,24930,24932,24943,24945,24947,24975],[1617,24813],{},[1558,24815,24816],{},"This template automates file uploads to various webpages from a Google Sheet. It reads a file path and uploads the file through a webpage's input field, simulating human interactions.",[1662,24818],{},[1612,24820,1667],{"id":1666},[1558,24822,1670,24823,24825],{},[1593,24824,1673],{},", assuming you already have an account. Name your sheet something like 'Uploads’, add file paths into column A.",[1612,24827,24829],{"id":24828},"install-the-file-upload-bot","Install the File upload bot",[1558,24831,24832,24833,24835,24836,1700],{},"To install this File upload bot click ",[1593,24834,1695],{},".  If you’re a new user, you’ll have to click ",[1593,24837,1699],{},[1558,24839,2503],{},[1558,24841,1709],{},[1612,24843,24845],{"id":24844},"configure-your-file-upload-bot","Configure your File upload bot",[1718,24847,24848],{},[1721,24849,24850,24867],{},[1724,24851,24852,1729,24854,24856],{},[1593,24853,1728],{},[1731,24855,1733],{},[1721,24857,24858,24862],{},[1724,24859,24860,1741],{},[1731,24861,1740],{},[1724,24863,24864,24866],{},[1731,24865,1746],{},": Choose the sheet tab with your file paths in.",[1724,24868,24869,1729,24871,24873],{},[1593,24870,1752],{},[1731,24872,667],{},[1721,24874,24875,24888,24910],{},[1724,24876,24877,1729,24879,24881],{},[1593,24878,1761],{},[1731,24880,1043],{},[1721,24882,24883],{},[1724,24884,24885,24887],{},[1731,24886,1770],{},": Please enter the URL of the website where you want to upload your file.",[1724,24889,24890,1729,24892,24895],{},[1593,24891,1784],{},[1731,24893,24894],{},"Upload a file",[1721,24896,24897,24902],{},[1724,24898,24899,24901],{},[1731,24900,11516],{},": Click 'Select' to choose the form element to upload the file to.",[1724,24903,24904,24906,24907,24909],{},[1731,24905,2815],{},": Input the file paths by clicking 'Insert data', select ",[1731,24908,1778],{},", then select the column with the file paths.",[1724,24911,24912,1729,24914,24916],{},[1593,24913,1809],{},[1731,24915,1209],{},[1721,24917,24918],{},[1724,24919,24920,24922],{},[1731,24921,17074],{},": Pause the bot to allow the file upload to complete. Set a wait time appropriate for the file size.",[1612,24924,24926],{"id":24925},"run-your-file-upload-bot","Run your File upload bot",[1558,24928,24929],{},"We suggest running a test first, stopping the bot after a few uploads and checking the files uploaded.",[1612,24931,1956],{"id":1955},[1558,24933,1959,24934,24936,24937,24939,24940,2855],{},[1562,24935,1963],{"href":1962},", you can use our no-code bot builder to customize any bot according to your requirements. We have other upload file ",[1562,24938,1543],{"href":1542}," you can use that work in the cloud and on desktop. Take a look at the ",[1562,24941,24942],{"href":1206},"upload to Google Drive",[1612,24944,1398],{"id":1967},[1558,24946,1970],{},[1718,24948,24949],{},[1721,24950,24951,24960,24967],{},[1724,24952,24953,24956,12184,24958,1610],{},[1593,24954,24955],{},"Selectors fail to find the element?",[1981,24957],{},[1562,24959,9082],{"href":1383},[1724,24961,24962,24965,12194],{},[1593,24963,24964],{},"Files do not upload?",[1981,24966],{},[1724,24968,24969,24972,24974],{},[1593,24970,24971],{},"Upload does not complete?",[1981,24973],{},"\nIncrease the pause, to allow the file upload to complete.",[1558,24976,2118,24977],{},[1562,24978,2121],{"href":82},{"title":1636,"searchDepth":1637,"depth":1637,"links":24980},[24981,24982,24983,24984,24985,24986],{"id":1666,"depth":1640,"text":1667},{"id":24828,"depth":1640,"text":24829},{"id":24844,"depth":1640,"text":24845},{"id":24925,"depth":1640,"text":24926},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"2023-02-01","Learn how to automate file uploads from Google Sheets to websites using axiom.ai's no-code tool. This guide covers setting up, configuring, and running a file upload bot for efficient automation.",{"pinned":1646,"read":3151,"level":2140,"video":24990,"templateId":6339,"type":2143,"format":2144,"intent_type":3377,"intent":12233,"tags":24991,"platfrom":24993},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F6lYZkxOmcX0",[12235,24992,24540],"upload",[3380],"\u002Fguides\u002Fupload-files-from-a-google-sheet",{"title":24809,"description":24988},"guides\u002Fupload-files-from-a-google-sheet","yrDvrLFpwWbzcEWFvdDQ6ARjTuCr6cu1-Fj2YUAfSCk",{"id":24999,"title":25000,"body":25001,"date":1641,"description":25010,"extension":1643,"meta":25011,"navigation":1646,"order":1641,"path":14292,"seo":25012,"stem":25013,"__hash__":25014},"guides\u002Fguides\u002Fusecase.md","Use case guides",{"type":1555,"value":25002,"toc":25008},[25003,25006],[1558,25004,25005],{},"Real world examples of complete automations in Axiom.ai, with ready to use templates for scraping data and automating tasks across sites like LinkedIn, Instagram, and Helium10. Each guide shows a practical workflow from collecting data to taking action, and can be used as a starting point or adapted to your needs.",[18006,25007],{"intent":2675},{"title":1636,"searchDepth":1637,"depth":1637,"links":25009},[],"Real-world automation examples with ready-to-use templates for scraping and automating tasks across popular sites and tools.",{"layout":18012},{"title":25000,"description":25010},"guides\u002Fusecase","KSJPmun6PZ5eQQVLXvr_iU6DVYfyFqS1YL7LGbghts0",{"id":25016,"title":25017,"body":25018,"date":2669,"description":25290,"extension":1643,"meta":25291,"navigation":1646,"order":1641,"path":16542,"seo":25295,"stem":25296,"__hash__":25297},"guides\u002Fguides\u002Fweb-scraping-looping-through-pages.md","How to scrape links in a Google Sheet",{"type":1555,"value":25019,"toc":25282},[25020,25022,25025,25027,25029,25040,25044,25051,25055,25057,25061,25180,25184,25187,25189,25193,25195,25197,25264],[1617,25021],{},[1558,25023,25024],{},"This template scrapes data from a website to a Google Sheet. It loops through links in the sheet, extracts data, and updates the sheet. After each loop, it deletes each link. Configuration takes minutes.",[1662,25026],{},[1612,25028,1667],{"id":1666},[1558,25030,25031,25032,1678,25035,1682,25038,1610],{},"Create a new Google Sheet. You can do this in your Chrome browser by entering the shortcut 'sheet.new', assuming you already have an account. Name your sheet something like ",[1593,25033,25034],{},"Web Scraper",[1593,25036,25037],{},"\"Page links\"",[1593,25039,1685],{},[1612,25041,25043],{"id":25042},"install-the-web-scraper","Install the Web scraper",[1558,25045,25046,25047,1696,25049,1700],{},"To install this Web scraper click ",[1593,25048,1695],{},[1593,25050,1699],{},[1558,25052,1703,25053,1610],{},[1593,25054,1706],{},[1558,25056,1709],{},[1612,25058,25060],{"id":25059},"configure-your-web-scraper-in-minutes","Configure your Web scraper in minutes",[1718,25062,25063],{},[1721,25064,25065,25083],{},[1724,25066,25067,1729,25069,25071],{},[1593,25068,1728],{},[1731,25070,1733],{},[1721,25072,25073,25077],{},[1724,25074,25075,1741],{},[1731,25076,1740],{},[1724,25078,25079,7507,25081,1610],{},[1731,25080,1746],{},[1731,25082,7510],{},[1724,25084,25085,1729,25087,25089],{},[1593,25086,1752],{},[1731,25088,667],{},[1721,25090,25091,25105,25124,25152],{},[1724,25092,25093,1729,25095,25097],{},[1593,25094,1761],{},[1731,25096,1043],{},[1721,25098,25099],{},[1724,25100,25101,3244,25103,3247],{},[1731,25102,1770],{},[1731,25104,1778],{},[1724,25106,25107,1729,25109,25111],{},[1593,25108,1784],{},[1731,25110,1787],{},[1721,25112,25113,25120],{},[1724,25114,25115,3617,25117,25119],{},[1731,25116,1794],{},[1562,25118,20935],{"href":1387}," to choose the data you wish to scrape.",[1724,25121,25122,20941],{},[1731,25123,1800],{},[1724,25125,25126,1729,25128,25130],{},[1593,25127,1809],{},[1731,25129,4914],{},[1721,25131,25132,25136,25140,25146],{},[1724,25133,25134,1741],{},[1731,25135,1740],{},[1724,25137,25138,1894],{},[1731,25139,1746],{},[1724,25141,25142,1900,25144,1610],{},[1731,25143,1899],{},[1731,25145,1837],{},[1724,25147,25148,1909,25150,1610],{},[1731,25149,1908],{},[1731,25151,1912],{},[1724,25153,25154,1729,25156,25158],{},[1593,25155,1852],{},[1731,25157,1920],{},[1721,25159,25160,25164,25168,25174],{},[1724,25161,25162,1741],{},[1731,25163,1740],{},[1724,25165,25166,1931],{},[1731,25167,1746],{},[1724,25169,25170,1801,25172,1610],{},[1731,25171,1936],{},[1731,25173,1804],{},[1724,25175,25176,1801,25178,1610],{},[1731,25177,1943],{},[1731,25179,1804],{},[1612,25181,25183],{"id":25182},"run-your-web-scraper","Run your Web scraper",[1558,25185,25186],{},"We suggest running a test first, stopping the bot after a few loops, and reviewing the scraped data.",[1612,25188,1956],{"id":1955},[1558,25190,1959,25191,1964],{},[1562,25192,1963],{"href":1962},[1612,25194,1398],{"id":1967},[1558,25196,1970],{},[1718,25198,25199],{},[1721,25200,25201,25213,25223,25235,25243,25256],{},[1724,25202,25203,25205,1983,25207,1987,25209,21029,25211,21032],{},[1593,25204,1979],{},[1981,25206],{},[1731,25208,1986],{},[1731,25210,1990],{},[1731,25212,3346],{},[1724,25214,25215,25217,1983,25219,21042,25221,1610],{},[1593,25216,2000],{},[1981,25218],{},[1731,25220,2005],{},[1562,25222,9082],{"href":1383},[1724,25224,25225,25227,2029,25229,2033,25231,2037,25233,1610],{},[1593,25226,21049],{},[1981,25228],{},[1731,25230,2032],{},[1731,25232,2036],{},[1731,25234,1804],{},[1724,25236,25237,25239,21065,25241,21068],{},[1593,25238,21062],{},[1981,25240],{},[1731,25242,1800],{},[1724,25244,25245,25247,1983,25249,2080,25252,2101,25254,1610],{},[1593,25246,2094],{},[1981,25248],{},[1731,25250,25251],{},"Step 2.3 – Write Data to a Google Sheet",[1731,25253,2100],{},[1731,25255,1837],{},[1724,25257,25258,25260,2111,25262,2115],{},[1593,25259,2108],{},[1981,25261],{},[1731,25263,2114],{},[1558,25265,2118,25266,25268,25269,25272,25273,25277,25278],{},[1562,25267,2121],{"href":82},"\nIf you are keen to learn more about scraping, take a look at these guides: ",[1562,25270,25271],{"href":2125},"web scraping with an AI",", Killer-problems with ",[1562,25274,25276],{"href":25275},"\u002Fblog\u002F5-problems-webscrapers","web scrapers"," and how to use ",[1562,25279,25281],{"href":25280},"\u002Fblog\u002Fcss-attribute-selectors","Custom CSS selectors.",{"title":1636,"searchDepth":1637,"depth":1637,"links":25283},[25284,25285,25286,25287,25288,25289],{"id":1666,"depth":1640,"text":1667},{"id":25042,"depth":1640,"text":25043},{"id":25059,"depth":1640,"text":25060},{"id":25182,"depth":1640,"text":25183},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"Learn how to scrape links in a Google Sheet and automate data extraction from multiple pages using axiom.ai's no-code tool. This guide covers setup, configuration, and running a looping web scraper for efficient data collection.",{"pinned":1646,"read":9111,"level":2140,"video":25292,"templateId":1640,"type":2143,"format":2144,"intent_type":3377,"intent":5626,"tags":25293,"platfrom":25294},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fl8KtLMXuDes",[2149,2682],[3380],{"title":25017,"description":25290},"guides\u002Fweb-scraping-looping-through-pages","u_dFgHDZm4XmAusPoEzM6_TryYrpGFZntWPnkkJxQJk",{"id":25299,"title":25300,"body":25301,"date":1641,"description":25806,"extension":1643,"meta":25807,"navigation":1646,"order":1641,"path":25810,"seo":25811,"stem":25812,"__hash__":25813},"guides\u002Fguides\u002Fwebhooks.md","How to use webhooks with axiom.ai",{"type":1555,"value":25302,"toc":25796},[25303,25305,25312,25314,25317,25337,25340,25344,25347,25361,25365,25370,25384,25389,25392,25395,25409,25417,25698,25709,25713,25717,25720,25741,25744,25749,25751,25754,25757,25760,25775,25777,25787,25793],[1617,25304],{},[1558,25306,25307,25308,25311],{},"Using webhooks within your axiom.ai automations can help you to connect to an unlimited number of third party tools, for example, a database management tool and various other tools that can be chained together to complex a complex process to get you to your endpoint. See our ",[1562,25309,10493],{"href":25310},".\u002F"," for more specific guides.",[1612,25313,2173],{"id":2172},[1558,25315,25316],{},"To get started with triggering a webhook using an automation, you will need the following from the axiom.ai Chrome extension:",[1718,25318,25319],{},[1721,25320,25321,25327,25331],{},[1724,25322,25323,2189,25325,1610],{},[1731,25324,2188],{},[1562,25326,2193],{"href":2192},[1724,25328,25329,2199],{},[1731,25330,2198],{},[1724,25332,25333,2205,25335,1610],{},[1731,25334,2204],{},[1731,25336,2208],{},[1558,25338,25339],{},"The information that you'll need to trigger your automation from a third party service varies, check with the service to determine the steps that you need to take in order to set up outgoing webhooks.",[1612,25341,25343],{"id":25342},"triggering-a-webhook-from-an-axiomai-automation","Triggering a webhook from an axiom.ai automation",[1558,25345,25346],{},"There are two methods of triggering a webhook within your automations. For both methods, you'll need to acquire the following data from the third party you're looking to implement:",[1718,25348,25349],{},[2182,25350,25351,25356],{},[1724,25352,25353,25355],{},[1731,25354,2204],{},": The endpoint that needs to be triggered by your automation.",[1724,25357,25358,25360],{},[1731,25359,17948],{},": The payload format that is required.",[2266,25362,25364],{"id":25363},"low-code","Low-code",[1558,25366,6669,25367,25369],{},[1562,25368,1605],{"href":1194}," step can be used in order to trigger a webhook from your automations. Follow the steps below to get started:",[1718,25371,25372],{},[2182,25373,25374,25378,25381],{},[1724,25375,9925,25376,2855],{},[1562,25377,1605],{"href":1194},[1724,25379,25380],{},"Enter the \"Endpoint\".",[1724,25382,25383],{},"Enter the \"Payload\".",[1558,25385,25386,25387,13959],{},"Remember, the \"Insert data\" option can be used to dynamically input data from your automation into your payload, see ",[1562,25388,9218],{"href":1373},[2266,25390,12598],{"id":25391},"javascript",[1558,25393,25394],{},"Webhooks can be triggered using custom JavaScript. This can be used for more advanced fetches and the use of the data that is returned. This has a few benefits, such as:",[2182,25396,25397,25400,25403,25406],{},[1724,25398,25399],{},"Allowing you to receive additional data, from a database, for example.",[1724,25401,25402],{},"Having more control over headers - for example, authorization headers.",[1724,25404,25405],{},"Being able to parse the response.",[1724,25407,25408],{},"Being able to use the response to automatically retry the call in the event of a rate limit being hit.",[1558,25410,22731,25411,25413,25414,25416],{},[1562,25412,3918],{"href":1226}," step to your automation and use the ",[1731,25415,11228],{}," method. See the example below to get started.",[2346,25418,25420],{"className":2383,"code":25419,"language":2385,"meta":1636,"style":1636},"const url = \"https:\u002F\u002Fexample.com\u002Fwebhook\";\nconst apiKey = \"xxxxxxxxxx\";\nconst data = {\n    \"key\": apiKey,\n    \"data\": [[1, 2], [3, 4]]\n};\n\nconst sendData = async () => {\n    try {\n        const response = await fetch(url, {\n            method: 'POST',\n            headers: {\n                'apikey': apiKey,\n                'Authorization': `Bearer ${apiKey}`,\n                'Content-Type': 'application\u002Fjson'\n            },\n            body: JSON.stringify(format(data))\n        });\n                               \n        if (!response.ok) {\n            console.error(\"Something went wrong with response\", response); \n            return;\n        }\n      \n        const result = await response.json();\n        console.log(result);\n    } catch (error) {\n        console.error(\"Something went wrong\", error);\n    }\n}\n",[1731,25421,25422,25436,25450,25460,25467,25492,25496,25500,25517,25523,25538,25546,25550,25556,25572,25581,25585,25602,25606,25610,25620,25632,25638,25642,25646,25662,25670,25678,25690,25694],{"__ignoreMap":1636},[2354,25423,25424,25426,25429,25431,25434],{"class":2356,"line":2357},[2354,25425,3932],{"class":3608},[2354,25427,25428],{"class":3505}," url",[2354,25430,3938],{"class":3608},[2354,25432,25433],{"class":2364}," \"https:\u002F\u002Fexample.com\u002Fwebhook\"",[2354,25435,3944],{"class":2395},[2354,25437,25438,25440,25443,25445,25448],{"class":2356,"line":1640},[2354,25439,3932],{"class":3608},[2354,25441,25442],{"class":3505}," apiKey",[2354,25444,3938],{"class":3608},[2354,25446,25447],{"class":2364}," \"xxxxxxxxxx\"",[2354,25449,3944],{"class":2395},[2354,25451,25452,25454,25456,25458],{"class":2356,"line":1637},[2354,25453,3932],{"class":3608},[2354,25455,23714],{"class":3505},[2354,25457,3938],{"class":3608},[2354,25459,4008],{"class":2395},[2354,25461,25462,25464],{"class":2356,"line":1647},[2354,25463,11106],{"class":2364},[2354,25465,25466],{"class":2395},": apiKey,\n",[2354,25468,25469,25471,25473,25475,25477,25479,25482,25484,25486,25489],{"class":2356,"line":3523},[2354,25470,11130],{"class":2364},[2354,25472,3651],{"class":2395},[2354,25474,1804],{"class":3505},[2354,25476,1564],{"class":2395},[2354,25478,10456],{"class":3505},[2354,25480,25481],{"class":2395},"], [",[2354,25483,18867],{"class":3505},[2354,25485,1564],{"class":2395},[2354,25487,25488],{"class":3505},"4",[2354,25490,25491],{"class":2395},"]]\n",[2354,25493,25494],{"class":2356,"line":3595},[2354,25495,18403],{"class":2395},[2354,25497,25498],{"class":2356,"line":3673},[2354,25499,3520],{"emptyLinePlaceholder":1646},[2354,25501,25502,25504,25507,25509,25511,25513,25515],{"class":2356,"line":3679},[2354,25503,3932],{"class":3608},[2354,25505,25506],{"class":3993}," sendData",[2354,25508,3938],{"class":3608},[2354,25510,3999],{"class":3608},[2354,25512,4002],{"class":2395},[2354,25514,4005],{"class":3608},[2354,25516,4008],{"class":2395},[2354,25518,25519,25521],{"class":2356,"line":3685},[2354,25520,4013],{"class":3608},[2354,25522,4008],{"class":2395},[2354,25524,25525,25527,25529,25531,25533,25535],{"class":2356,"line":3708},[2354,25526,4020],{"class":3608},[2354,25528,3714],{"class":3505},[2354,25530,3938],{"class":3608},[2354,25532,4027],{"class":3608},[2354,25534,4030],{"class":3993},[2354,25536,25537],{"class":2395},"(url, {\n",[2354,25539,25540,25542,25544],{"class":2356,"line":3761},[2354,25541,4038],{"class":2395},[2354,25543,4041],{"class":2364},[2354,25545,4044],{"class":2395},[2354,25547,25548],{"class":2356,"line":3775},[2354,25549,4049],{"class":2395},[2354,25551,25552,25554],{"class":2356,"line":3153},[2354,25553,22994],{"class":2364},[2354,25555,25466],{"class":2395},[2354,25557,25558,25561,25563,25565,25568,25570],{"class":2356,"line":3799},[2354,25559,25560],{"class":2364},"                'Authorization'",[2354,25562,3617],{"class":2395},[2354,25564,18475],{"class":2364},[2354,25566,25567],{"class":2395},"apiKey",[2354,25569,4065],{"class":2364},[2354,25571,4044],{"class":2395},[2354,25573,25574,25577,25579],{"class":2356,"line":3808},[2354,25575,25576],{"class":2364},"                'Content-Type'",[2354,25578,3617],{"class":2395},[2354,25580,18492],{"class":2364},[2354,25582,25583],{"class":2356,"line":4150},[2354,25584,4082],{"class":2395},[2354,25586,25587,25589,25591,25593,25595,25597,25599],{"class":2356,"line":4168},[2354,25588,4087],{"class":2395},[2354,25590,11190],{"class":3505},[2354,25592,1610],{"class":2395},[2354,25594,11195],{"class":3993},[2354,25596,4159],{"class":2395},[2354,25598,23041],{"class":3993},[2354,25600,25601],{"class":2395},"(data))\n",[2354,25603,25604],{"class":2356,"line":4176},[2354,25605,4128],{"class":2395},[2354,25607,25608],{"class":2356,"line":4182},[2354,25609,23053],{"class":2395},[2354,25611,25612,25614,25616,25618],{"class":2356,"line":4187},[2354,25613,4138],{"class":3608},[2354,25615,4141],{"class":2395},[2354,25617,4144],{"class":3608},[2354,25619,4147],{"class":2395},[2354,25621,25622,25624,25626,25628,25630],{"class":2356,"line":4208},[2354,25623,4153],{"class":2395},[2354,25625,4156],{"class":3993},[2354,25627,4159],{"class":2395},[2354,25629,4162],{"class":2364},[2354,25631,4502],{"class":2395},[2354,25633,25634,25636],{"class":2356,"line":4220},[2354,25635,4171],{"class":3608},[2354,25637,3944],{"class":2395},[2354,25639,25640],{"class":2356,"line":4232},[2354,25641,4179],{"class":2395},[2354,25643,25644],{"class":2356,"line":4247},[2354,25645,4133],{"class":2395},[2354,25647,25648,25650,25652,25654,25656,25658,25660],{"class":2356,"line":4253},[2354,25649,4020],{"class":3608},[2354,25651,4192],{"class":3505},[2354,25653,3938],{"class":3608},[2354,25655,4027],{"class":3608},[2354,25657,4199],{"class":2395},[2354,25659,4202],{"class":3993},[2354,25661,4205],{"class":2395},[2354,25663,25664,25666,25668],{"class":2356,"line":4259},[2354,25665,4211],{"class":2395},[2354,25667,4214],{"class":3993},[2354,25669,4217],{"class":2395},[2354,25671,25672,25674,25676],{"class":2356,"line":4264},[2354,25673,4223],{"class":2395},[2354,25675,4226],{"class":3608},[2354,25677,4229],{"class":2395},[2354,25679,25680,25682,25684,25686,25688],{"class":2356,"line":6257},[2354,25681,4211],{"class":2395},[2354,25683,4156],{"class":3993},[2354,25685,4159],{"class":2395},[2354,25687,4241],{"class":2364},[2354,25689,4244],{"class":2395},[2354,25691,25692],{"class":2356,"line":6262},[2354,25693,4250],{"class":2395},[2354,25695,25696],{"class":2356,"line":2940},[2354,25697,4256],{"class":2395},[1558,25699,25700,25701,25703,25704,13812],{},"Learn more about the ",[1731,25702,11228],{}," function in the Mozilla ",[1562,25705,25708],{"href":25706,"rel":25707},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FFetch_API\u002FUsing_Fetch",[1633],"Using the Fetch API",[1558,25710,25386,25711,13959],{},[1562,25712,9218],{"href":1373},[1612,25714,25716],{"id":25715},"triggering-an-axiomai-automation-from-a-webhook","Triggering an axiom.ai automation from a webhook",[1558,25718,25719],{},"To get started, we're going to assume that you have already set up outgoing webhooks or API calls from the service that you are looking to send information from to your automation. Once this has been done, follow the steps below:",[1718,25721,25722],{},[1721,25723,25724,25733],{},[1724,25725,25726,1729,25728,2238,25731,2855],{},[1593,25727,1728],{},[1731,25729,25730],{},"Receive data from a webhook",[1562,25732,25730],{"href":1111},[1724,25734,25735,1729,25737,25740],{},[1593,25736,1752],{},[1731,25738,25739],{},"Test data",": Configure the test data input with the expected payload from the third-party application.",[1558,25742,25743],{},"Configuring the \"Test data\" helps to test your automation - clicking \"Run\" on your automation will make use of the test data and can help debug your automation without needing additional webhook calls.",[1558,25745,25746],{},[2434,25747,25748],{},"Note, triggering automations from webhooks is only available in specific plans with the 'webhooks' feature.",[1612,25750,2403],{"id":2402},[1558,25752,25753],{},"To test your automation, click \"Run\". Once done, check the third party tool to confirm if the webhook has been received. Review the builder and your run reports within the extension to determine if there were any issues.",[1558,25755,25756],{},"To test sending a webhook to your automation, trigger the webhook from the third party tool that you are implementing. Alternatively, click \"Run\" to run your automation with the test data in place.",[1558,25758,25759],{},"Additionally, the resources below may be helpful in debugging your automation:",[1721,25761,25762,25766,25770],{},[1724,25763,25764],{},[1562,25765,4923],{"href":1487},[1724,25767,25768],{},[1562,25769,1408],{"href":1409},[1724,25771,25772],{},[1562,25773,25774],{"href":1405},"Handling errors",[1612,25776,2423],{"id":2422},[1558,25778,25779,25780,25783,25784,1610],{},"Triggering webhooks from your automations, or triggering your automations from a webhook call, can allow you to expand the functionality of your automations to give you endless possibilities. Our personal favourite here is our ",[1562,25781,22663],{"href":25782},".\u002Fsupabase"," guide which uses this method to interact with Supabase and allows for the reading and writing of data from your tables. We would love to hear what you do with this option, feel free to post it in our ",[1562,25785,1634],{"href":1631,"rel":25786},[1633],[1558,25788,25789,25790,1610],{},"Can't get an API call to work? Ask an expert in our ",[1562,25791,1634],{"href":1631,"rel":25792},[1633],[2438,25794,25795],{},"html pre.shiki code .sjeE4, html code.shiki .sjeE4{--shiki-default:#CF222E;--shiki-dark:#FF7B72}html pre.shiki code .sHrmB, html code.shiki .sHrmB{--shiki-default:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .sSVrQ, html code.shiki .sSVrQ{--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .s4rv2, html code.shiki .s4rv2{--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sbjLL, html code.shiki .sbjLL{--shiki-default:#8250DF;--shiki-dark:#D2A8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1636,"searchDepth":1637,"depth":1637,"links":25797},[25798,25799,25803,25804,25805],{"id":2172,"depth":1640,"text":2173},{"id":25342,"depth":1640,"text":25343,"children":25800},[25801,25802],{"id":25363,"depth":1637,"text":25364},{"id":25391,"depth":1637,"text":12598},{"id":25715,"depth":1640,"text":25716},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"Learn how to use webhooks to send or receive data within your axiom.ai automations.",{"type":2143,"format":2144,"intent_type":2145,"intent":2454,"tags":25808,"platfrom":25809},[2456,2457],[3380],"\u002Fguides\u002Fwebhooks",{"title":25300,"description":25806},"guides\u002Fwebhooks","yUw3OkbuU80B2i3-FtNSJ5BOsb_O3TQKsAwcVGh_W6k",{"id":25815,"title":25816,"body":25817,"date":1641,"description":25826,"extension":1643,"meta":25827,"navigation":1646,"order":1641,"path":14276,"seo":25828,"stem":25829,"__hash__":25830},"guides\u002Fguides\u002Fworkflow.md","Workflow guides",{"type":1555,"value":25818,"toc":25824},[25819,25822],[1558,25820,25821],{},"Step-by-step tutorials for common browser automation tasks in axiom.ai—scraping loops, monitoring pages, data entry, file flows, and webhooks. Each guide walks through building a bot you can run as-is or extend for your own workflows.",[18006,25823],{"intent":3377},{"title":1636,"searchDepth":1637,"depth":1637,"links":25825},[],"Step-by-step tutorials for common browser automation tasks in axiom.ai—scraping loops, monitoring pages, data entry, file flows, and webhooks.",{"layout":18012},{"title":25816,"description":25826},"guides\u002Fworkflow","2mWYgSRKBVREDCn9DZLg_Bm7gPaUyDR82rvzN-3ocCE",{"id":25832,"title":25833,"body":25834,"date":1641,"description":26101,"extension":1643,"meta":26102,"navigation":1646,"order":1641,"path":26106,"seo":26107,"stem":26108,"__hash__":26109},"guides\u002Fguides\u002Fzapier.md","How to trigger Zapier Zaps using axiom.ai",{"type":1555,"value":25835,"toc":26091},[25836,25838,25841,25843,25845,25847,25849,25869,25873,25875,25878,25902,25905,25915,25918,25933,25936,25980,25984,25986,25988,25991,25998,26000,26002,26006,26008,26011,26036,26043,26047,26049,26056,26081,26084,26086,26088],[1617,25837],{},[1558,25839,25840],{},"You can connect your automation to Zapier, pass scraped data, and access 7,000+ apps. We'll guide you through using axiom.ai's \"Get data from URL\" steps to post data to Zapier, setting up a Zap to receive the data, and using Zapier Formatter to extract it from an array.",[1662,25842],{},[1612,25844,2173],{"id":2172},[1617,25846],{},[1558,25848,2178],{},[1718,25850,25851],{},[2182,25852,25853,25859,25863],{},[1724,25854,25855,3408,25857,1610],{},[1593,25856,2188],{},[1562,25858,2193],{"href":2192},[1724,25860,25861,3415],{},[1593,25862,2198],{},[1724,25864,25865,3420,25867,1610],{},[1593,25866,2204],{},[1731,25868,2208],{},[1612,25870,25872],{"id":25871},"triggering-a-zap-using-an-axiomai-automation","Triggering a Zap using an axiom.ai automation",[1617,25874],{},[1558,25876,25877],{},"To get started, we are going to assume that you have an automation created.",[1718,25879,25880],{},[2182,25881,25882,25888,25894],{},[1724,25883,25884,25887],{},[1593,25885,25886],{},"Create Zap"," - Create a new Zap by navigating to Zapier, and clicking \"+ Create\".",[1724,25889,25890,25893],{},[1593,25891,25892],{},"Add trigger"," - Click \"Trigger\", then select \"Webhooks by Zapier\". See the section below for more information on configuring this trigger.",[1724,25895,25896,25898,25899,25901],{},[1593,25897,1605],{}," - In axiom.ai, add a ",[1562,25900,1605],{"href":1194}," step to your automation. Input the URL from the \"your webhook URL\" section in Zapier.",[1558,25903,25904],{},"Learn more about configuring the \"Webhooks by Zapier\" trigger:",[1718,25906,25907],{},[1721,25908,25909,25912],{},[1724,25910,25911],{},"Set the \"trigger event\" to \"catch raw webhook\", press continue.",[1724,25913,25914],{},"Save the URL in the \"your webhook URL\" section for later.",[1558,25916,25917],{},"To use data within your Zap, you'll need to first process the data:",[1718,25919,25920],{},[2182,25921,25922,25928],{},[1724,25923,25924,25927],{},[1593,25925,25926],{},"Actions"," - Add your actions to process the data that is being sent to the Zap, for this example, we will be using the \"Formatter by Zapier\" action.",[1724,25929,25930,25932],{},[1593,25931,2247],{}," - Follow the instructions below to configure the \"Formatter by Zapier\" action.",[1558,25934,25935],{},"To configure the \"Formatter by Zapier\" step, follow the steps below:",[1718,25937,25938],{},[2182,25939,25940,25946,25952,25957,25963,25969,25975],{},[1724,25941,25942,25945],{},[1593,25943,25944],{},"Action event"," - Set to \"text\".",[1724,25947,25948,25951],{},[1593,25949,25950],{},"Transform"," - Set to \"split text\".",[1724,25953,25954,25956],{},[1593,25955,15630],{}," - Click \"+\" and set to \"raw body\".",[1724,25958,25959,25962],{},[1593,25960,25961],{},"Separator"," - Click into the field and set to \"single speech mark\".",[1724,25964,25965,25968],{},[1593,25966,25967],{},"Segment index"," - Set to \"all (as separate fields)\".",[1724,25970,25971,25974],{},[1593,25972,25973],{},"Continue"," - click continue.",[1724,25976,25977,25979],{},[1593,25978,13988],{}," - Click \"test step\".",[2219,25981],{"src":25982,"alt":25983},"\u002Fdocs\u002Fguides\u002Fzapier-formatter-step.jpg","Configure the formatter by Zapier step",[1612,25985,2403],{"id":2402},[1617,25987],{},[1558,25989,25990],{},"To test your workflow, open your axiom.ai automation and click \"Run\" to start the automation. Once complete, review any destinations where your data is being sent once it's been processed by Zapier. Alternatively, review your Zap runs within Zapier to confirm the zap ran.",[1558,25992,25993,25994,25997],{},"If the desired results have not been achieved, review the ",[1562,25995,25996],{"href":2418},"Run Reports"," within axiom.ai, or the Zap runs section within Zapier.",[1612,25999,8313],{"id":8312},[1617,26001],{},[2266,26003,26005],{"id":26004},"sending-scraper-data-from-an-axiomai-automation-to-zapier-for-processing","Sending scraper data from an axiom.ai automation to Zapier for processing",[1617,26007],{},[1558,26009,26010],{},"Extracting data from a webpage and sending it to Zapier to be processed can unlock a huge amount of potential for your workflows. Learn how to get started below.",[1718,26012,26013],{},[2182,26014,26015,26026],{},[1724,26016,26017,26019,26020,26023,26024,2855],{},[1593,26018,321],{}," - Create a new axiom.ai automation, add a ",[1562,26021,26022],{"href":619},"scraping step",". In this example, we will be using the ",[1562,26025,1035],{"href":1036},[1724,26027,26028,26030,26031,26033,26034,22167],{},[1593,26029,1605],{}," - Following the instructions above, configure your Zap to be triggered by incoming webhooks. Add a ",[1562,26032,1605],{"href":1194}," step and use the \"Insert data\" option to insert the ",[1731,26035,1837],{},[1558,26037,26038,26039,26042],{},"Follow the steps from the ",[1562,26040,25872],{"href":26041},"#triggering-a-zap-using-an-axiomai-automation"," to learn how to process the data that you send to your Zap.",[2266,26044,26046],{"id":26045},"write-data-to-excel","Write data to Excel",[1617,26048],{},[1558,26050,26051,26052,26055],{},"To write data to Excel, follow the steps in ",[1562,26053,25872],{"href":26054},"\u002Fguides\u002Fzapier#triggering-a-zap-using-an-axiom-ai-automation"," to create your Zap. Once this has been done, head over to your Zap. After the \"Formatter by Zapier\" step, do the following:",[1718,26057,26058],{},[2182,26059,26060,26065,26070,26076],{},[1724,26061,26062,26064],{},[1593,26063,29],{}," - Search for \"Microsoft Excel\" and add a new step to your Zap.",[1724,26066,26067,26069],{},[1593,26068,25944],{}," - Set this to \"Add Row\".",[1724,26071,26072,26075],{},[1593,26073,26074],{},"Set up"," - Follow the instructions in the Zap to connect your account and configure your step.",[1724,26077,26078,26080],{},[1593,26079,2247],{}," - To configure your data, head into the \"Configure\" tab. Click the \"+\" button beside the \"Column\" inputs to select your variables.",[1558,26082,26083],{},"To test, trigger your automation within axiom.ai",[1612,26085,2423],{"id":2422},[1617,26087],{},[1558,26089,26090],{},"Using axiom.ai and Zapier together allows you to scrape data quickly and pass it to over 7,000 apps. With just two steps in each app (four total), you can set up a basic browser scraper to Zapier automation in minutes, which can be easily adapted to more complex use cases.",{"title":1636,"searchDepth":1637,"depth":1637,"links":26092},[26093,26094,26095,26096,26100],{"id":2172,"depth":1640,"text":2173},{"id":25871,"depth":1640,"text":25872},{"id":2402,"depth":1640,"text":2403},{"id":8312,"depth":1640,"text":8313,"children":26097},[26098,26099],{"id":26004,"depth":1637,"text":26005},{"id":26045,"depth":1637,"text":26046},{"id":2422,"depth":1640,"text":2423},"How to build an automation that scrapes data from a webpage and connects to Zapier via a webhook.",{"video":26103,"type":2143,"format":1718,"intent_type":2145,"intent":2454,"tags":26104,"platfrom":26105},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FV3I7w8fnO88?rel=0&amp;",[2456,2457,2681,22644],[783],"\u002Fguides\u002Fzapier",{"title":25833,"description":26101},"guides\u002Fzapier","mvO_R6ltR7wBcrltiSx-f3NdEw7mmmsEToYoJLF1ht8",{"id":26111,"title":26112,"body":26113,"date":2669,"description":26285,"extension":1643,"meta":26286,"navigation":1646,"order":1640,"path":26290,"seo":26291,"stem":26292,"__hash__":26293},"guides\u002Fguides\u002Fzapier-forms.md","How to automate data entry without an API using Zapier",{"type":1555,"value":26114,"toc":26277},[26115,26117,26133,26135,26139,26150,26154,26159,26163,26165,26169,26178,26247,26251,26258,26260,26264,26266,26268],[1617,26116],{},[1558,26118,26119,26120,26123,26124,26129,26130,1610],{},"This Zapier data entry template is ",[1593,26121,26122],{},"triggered by a webhook"," that passes data in a 2D array from our ",[1562,26125,26128],{"href":26126,"rel":26127},"https:\u002F\u002Fzapier.com\u002Fapps\u002Faxiomai\u002Fintegrations",[1633],"axiom.ai Zapier app",". The bot then systematically processes the array, emulating human interactions by inputting data into web forms on any website. It serves as a valuable solution for automating data entry in situations where there is ",[1593,26131,26132],{},"no API integration option",[1662,26134],{},[1612,26136,26138],{"id":26137},"get-started-set-up-your-zap","Get started: Set up your Zap",[1558,26140,26141,26142,26145,26146],{},"In fact, we recommend not setting up your Zap first. Instead, prioritize creating and thoroughly testing your bot. Utilize the ",[1593,26143,26144],{},"dummy data"," feature within our Zapier step, and set up your Zap only after your bot is fully functional. If you require assistance with the Zap setup, please refer to our ",[1562,26147,26149],{"href":26148},"\u002Fdocs\u002Fworking-with-zapier-and-webhooks#select-axiom-s-zapier-app-within-zapier","Zapier documentation page.",[1612,26151,26153],{"id":26152},"install-the-zapier-data-entry-bot","Install the Zapier data entry bot",[1558,26155,26156,26157,2724],{},"To install this Zapier data entry bot click ",[1593,26158,7464],{},[1558,26160,21817,26161,1610],{},[1593,26162,20564],{},[1558,26164,1709],{},[1612,26166,26168],{"id":26167},"configure-your-zapier-data-entry-bot-in-just-a-few-steps","Configure your Zapier data entry bot in just a few steps",[1558,26170,26171,26172,26175,26176,8938],{},"We've provided a set of example steps within ",[1731,26173,26174],{},"Step 2.0 - Loop through data",". You can further customize this bot by adding additional ",[1562,26177,1543],{"href":1542},[1718,26179,26180],{},[1721,26181,26182,26199],{},[1724,26183,26184,1729,26186,26188,26189,26191,26192,1610],{},[1593,26185,1728],{},[1731,26187,1110],{},": Toggle on ",[1731,26190,25739],{}," and input: ",[1593,26193,26194,26195,26198],{},"\"[[Row 1 colA, Row 1 colB, Row 1 colC], ",[2354,26196,26197],{},"Row 2 colA, Row 2 colB, Row 2 colC","]\"",[1724,26200,26201,1729,26203,5335,26205],{},[1593,26202,1752],{},[1731,26204,667],{},[1721,26206,26207,26224,26238],{},[1724,26208,26209,1729,26211,26213,26214,26216,26217,2037,26219,1775,26221,1610],{},[1593,26210,1761],{},[1731,26212,8017],{},": Set ",[1731,26215,1794],{}," to the input field and ",[1731,26218,2580],{},[1593,26220,22391],{},[1731,26222,26223],{},"[webhook-data]",[1724,26225,26226,1729,26228,26213,26230,26216,26232,2037,26234,1775,26236,1610],{},[1593,26227,1784],{},[1731,26229,8017],{},[1731,26231,1794],{},[1731,26233,2580],{},[1593,26235,22391],{},[1731,26237,26223],{},[1724,26239,26240,1729,26242,26213,26244,26246],{},[1593,26241,1809],{},[1731,26243,8040],{},[1731,26245,1794],{}," to the submit form button.",[1612,26248,26250],{"id":26249},"run-your-zapier-data-entry-bot","Run your Zapier data entry bot",[1558,26252,26253,26254],{},"Test your bot with sample data before proceeding to test your ",[1562,26255,26257],{"href":26256},"\u002Fdocs\u002Fworking-with-zapier-and-webhooks#test-the-zapier-axiom-trigger","Zapier trigger.",[1612,26259,1956],{"id":1955},[1558,26261,1959,26262,1964],{},[1562,26263,14257],{"href":1962},[1612,26265,1398],{"id":1967},[1558,26267,1970],{},[1558,26269,2118,26270,26272,26273],{},[1562,26271,2121],{"href":82},"\nTo learn more about using triggering Axiom with Zaps read our ",[1562,26274,26276],{"href":26275},"\u002Fdocs\u002Fworking-with-zapier-and-webhooks","Zapier page.",{"title":1636,"searchDepth":1637,"depth":1637,"links":26278},[26279,26280,26281,26282,26283,26284],{"id":26137,"depth":1640,"text":26138},{"id":26152,"depth":1640,"text":26153},{"id":26167,"depth":1640,"text":26168},{"id":26249,"depth":1640,"text":26250},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},"Learn how to automate data entry into web forms using Zapier and axiom.ai. This guide covers setup, configuration, and customizing a bot to process data from webhooks and input it into any website.",{"pinned":1646,"read":14584,"level":17700,"video":26287,"templateId":6286,"type":2143,"format":2144,"intent_type":3377,"intent":8893,"tags":26288,"platfrom":26289},"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FBNLTBsEYXu8",[2456,2457,2681,22644],[783],"\u002Fguides\u002Fzapier-forms",{"title":26112,"description":26285},"guides\u002Fzapier-forms","kmzGzPGXZeG3tTRcZ51BWD0KQ5Nr3x1V5cgOZB4W1OM",{"id":26295,"title":26296,"body":26297,"date":1641,"description":26567,"extension":1643,"meta":26568,"navigation":1646,"order":1641,"path":26571,"seo":26572,"stem":26573,"__hash__":26574},"guides\u002Fguides\u002Fzapier-tables.md","How to automate Zapier Tables with axiom.ai",{"type":1555,"value":26298,"toc":26558},[26299,26301,26312,26314,26316,26318,26326,26329,26349,26354,26358,26360,26363,26367,26369,26372,26375,26394,26396,26404,26407,26419,26421,26453,26455,26458,26462,26464,26467,26491,26494,26517,26520,26522,26524,26527,26530,26532,26546,26548,26550,26553,26555],[1617,26300],{},[1558,26302,26303,26308,26309,26311],{},[1562,26304,26307],{"href":26305,"rel":26306},"https:\u002F\u002Fzapier.com\u002F",[1633],"Zapier Tables"," offers the ability to store data within your Zapier account. This can be used to create interfaces and chatbots that can use your data. Zapier Tables can be used within your axiom.ai automations similar to how ",[1562,26310,783],{"href":4901}," can be used.",[1612,26313,2173],{"id":2172},[1617,26315],{},[1558,26317,22671],{},[2182,26319,26320,26323],{},[1724,26321,26322],{},"Sign up to Zapier.",[1724,26324,26325],{},"Create a new Table by clicking \"Create\" and selecting \"Table\" - create this to meet your own requirements.",[1558,26327,26328],{},"To trigger your axiom.ai automations, you'll need the following:",[1718,26330,26331],{},[2182,26332,26333,26339,26343],{},[1724,26334,26335,3408,26337,1610],{},[1593,26336,2188],{},[1562,26338,2193],{"href":2192},[1724,26340,26341,3415],{},[1593,26342,2198],{},[1724,26344,26345,3420,26347,1610],{},[1593,26346,2204],{},[1731,26348,2208],{},[1558,26350,26351],{},[2434,26352,26353],{},"You may require a Zapier subscription and an axiom.ai subscription to use some of the steps within this guide.",[1612,26355,26357],{"id":26356},"working-with-zapier-tables-data-in-axiomai","Working with Zapier Tables data in axiom.ai",[1617,26359],{},[1558,26361,26362],{},"Zapier Zaps can be used to create or modify data automatically within your Tables. Actions within your Zapier Tables can be used to automatically trigger your automations. See the guides below to get started.",[2266,26364,26366],{"id":26365},"create-a-new-record","Create a new record",[1617,26368],{},[1558,26370,26371],{},"To get started, create your automation as normal, once you are ready to send the data to your Zapier Table, continue this guide.",[1558,26373,26374],{},"Create a new Zap that has the ability to catch a webhook that is going to be sent from your automation. Follow the steps below:",[1718,26376,26377],{},[2182,26378,26379,26384,26388],{},[1724,26380,26381,26383],{},[1593,26382,25886],{}," - Create a new Zap by navigating to Zapier, and clicking \"Create\".",[1724,26385,26386,25893],{},[1593,26387,25892],{},[1724,26389,26390,25898,26392,25901],{},[1593,26391,1605],{},[1562,26393,1605],{"href":1194},[1558,26395,25904],{},[1718,26397,26398],{},[1721,26399,26400,26402],{},[1724,26401,25911],{},[1724,26403,25914],{},[1558,26405,26406],{},"Once this has been created, we recommend sending a test request to popular your Zap with test data - hit \"Run\" on your automation. Next, you'll want to add a \"Formatter by Zapier\" step to format the incoming data. Set this up as follows:",[1718,26408,26409],{},[2182,26410,26411,26415],{},[1724,26412,26413,25927],{},[1593,26414,25926],{},[1724,26416,26417,25932],{},[1593,26418,2247],{},[1558,26420,25935],{},[1718,26422,26423],{},[2182,26424,26425,26429,26433,26437,26441,26445,26449],{},[1724,26426,26427,25945],{},[1593,26428,25944],{},[1724,26430,26431,25951],{},[1593,26432,25950],{},[1724,26434,26435,25956],{},[1593,26436,15630],{},[1724,26438,26439,25962],{},[1593,26440,25961],{},[1724,26442,26443,25968],{},[1593,26444,25967],{},[1724,26446,26447,25974],{},[1593,26448,25973],{},[1724,26450,26451,25979],{},[1593,26452,13988],{},[2219,26454],{"src":25982,"alt":25983},[1558,26456,26457],{},"When you're ready, add a \"Create Record\" step to your Zap from the \"Zapier Tables\" category. Navigate to the \"Configure\" section of this step and set the fields to use the data from the \"Formatter by Zapier\" step above. This stage will depend on how your Table has been set up.",[2266,26459,26461],{"id":26460},"send-data-to-axiomai-automation","Send data to axiom.ai automation",[1617,26463],{},[1558,26465,26466],{},"To get started, create a new \"Zap\":",[1718,26468,26469],{},[2182,26470,26471,26476,26481,26486],{},[1724,26472,26473,26475],{},[1593,26474,25926],{}," - Add a \"Zapier Tables\" action to your Zap.",[1724,26477,26478,26480],{},[1593,26479,2247],{}," - Configure the \"Zapier Tables\" action with a \"Trigger event\". This can automatically trigger the Zap when a record is created, modified or deleted. This can also be set to be triggered directly from the table itself. Click \"Test\" to test your trigger.",[1724,26482,26483,26485],{},[1593,26484,25926],{}," - Add an \"axiom.ai\" action using the search functionality.",[1724,26487,26488,26490],{},[1593,26489,2247],{}," - Connect your axiom.ai account, set the \"Action event\" to \"Run an Axiom\". Configure the action to input your Zapier Table columns into the \"Input column\" fields of the action.",[1558,26492,26493],{},"Now, set up your axiom.ai automation:",[1718,26495,26496],{},[2182,26497,26498,26504,26512],{},[1724,26499,26500,26503],{},[1593,26501,26502],{},"Create"," - Click \"+ New Automation\" to create a new automation.",[1724,26505,26506,26509,26510,2855],{},[1593,26507,26508],{},"Receive data"," - Add a ",[1562,26511,1110],{"href":1111},[1724,26513,26514,26516],{},[1593,26515,2247],{}," - Input test data into the \"Test data\" field, this will assist in the testing.",[1558,26518,26519],{},"Continue to create your automation as required, using the data from the \"Test data\" input to build out an automation that uses your data. When you're ready, click \"Run\".",[1612,26521,2403],{"id":2402},[1617,26523],{},[1558,26525,26526],{},"To test adding data to your Zapier Table, click \"Run\" in your automation. If there are errors with your automation, you may find these in the builder or in the Run Report for your run. If there is an error in your Zap, check your Zapier logs for more information on how to continue.",[1558,26528,26529],{},"To test triggering your automation from your Zapier Table, run your Zap, or click \"Test step\" in the \"Test\" tab of the \"axiom.ai\" Zapier step.",[1558,26531,25759],{},[1721,26533,26534,26538,26542],{},[1724,26535,26536],{},[1562,26537,4923],{"href":1487},[1724,26539,26540],{},[1562,26541,1408],{"href":1409},[1724,26543,26544],{},[1562,26545,25774],{"href":1405},[1612,26547,2423],{"id":2422},[1617,26549],{},[1558,26551,26552],{},"Zapier Tables can be a great alternative to storing your data - with the added benefit of being able to be used within your axiom.ai automations, and your Zapier Zaps. This opens up powerful opportunities to automate your workflow and get working even faster by integrating axiom.ai with the vast library of integrations that Zapier offers.",[1617,26554],{},[1558,26556,26557],{},"Information accurate as of December 2024.",{"title":1636,"searchDepth":1637,"depth":1637,"links":26559},[26560,26561,26565,26566],{"id":2172,"depth":1640,"text":2173},{"id":26356,"depth":1640,"text":26357,"children":26562},[26563,26564],{"id":26365,"depth":1637,"text":26366},{"id":26460,"depth":1637,"text":26461},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},"Learn how to automatically send data to your Zapier Tables databases and trigger your axiom.ai automations using triggers.",{"pinned":1646,"type":2143,"format":1718,"intent_type":2145,"intent":2454,"tags":26569,"platfrom":26570},[2456,2457,2681,22644],[783,26307],"\u002Fguides\u002Fzapier-tables",{"title":26296,"description":26567},"guides\u002Fzapier-tables","Kxe6B04quaLH01fQuJeN1B7QyP0-n7ljpFRpw_yCDFU",[26576,27026,27239,27464],{"id":25299,"title":25300,"body":26577,"date":1641,"description":25806,"extension":1643,"meta":27022,"navigation":1646,"order":1641,"path":25810,"seo":27025,"stem":25812,"__hash__":25813},{"type":1555,"value":26578,"toc":27012},[26579,26581,26585,26587,26589,26609,26611,26613,26615,26627,26629,26633,26645,26649,26651,26653,26663,26669,26935,26942,26946,26948,26950,26968,26970,26974,26976,26978,26980,26982,26996,26998,27005,27010],[1617,26580],{},[1558,26582,25307,26583,25311],{},[1562,26584,10493],{"href":25310},[1612,26586,2173],{"id":2172},[1558,26588,25316],{},[1718,26590,26591],{},[1721,26592,26593,26599,26603],{},[1724,26594,26595,2189,26597,1610],{},[1731,26596,2188],{},[1562,26598,2193],{"href":2192},[1724,26600,26601,2199],{},[1731,26602,2198],{},[1724,26604,26605,2205,26607,1610],{},[1731,26606,2204],{},[1731,26608,2208],{},[1558,26610,25339],{},[1612,26612,25343],{"id":25342},[1558,26614,25346],{},[1718,26616,26617],{},[2182,26618,26619,26623],{},[1724,26620,26621,25355],{},[1731,26622,2204],{},[1724,26624,26625,25360],{},[1731,26626,17948],{},[2266,26628,25364],{"id":25363},[1558,26630,6669,26631,25369],{},[1562,26632,1605],{"href":1194},[1718,26634,26635],{},[2182,26636,26637,26641,26643],{},[1724,26638,9925,26639,2855],{},[1562,26640,1605],{"href":1194},[1724,26642,25380],{},[1724,26644,25383],{},[1558,26646,25386,26647,13959],{},[1562,26648,9218],{"href":1373},[2266,26650,12598],{"id":25391},[1558,26652,25394],{},[2182,26654,26655,26657,26659,26661],{},[1724,26656,25399],{},[1724,26658,25402],{},[1724,26660,25405],{},[1724,26662,25408],{},[1558,26664,22731,26665,25413,26667,25416],{},[1562,26666,3918],{"href":1226},[1731,26668,11228],{},[2346,26670,26671],{"className":2383,"code":25419,"language":2385,"meta":1636,"style":1636},[1731,26672,26673,26685,26697,26707,26713,26735,26739,26743,26759,26765,26779,26787,26791,26797,26811,26819,26823,26839,26843,26847,26857,26869,26875,26879,26883,26899,26907,26915,26927,26931],{"__ignoreMap":1636},[2354,26674,26675,26677,26679,26681,26683],{"class":2356,"line":2357},[2354,26676,3932],{"class":3608},[2354,26678,25428],{"class":3505},[2354,26680,3938],{"class":3608},[2354,26682,25433],{"class":2364},[2354,26684,3944],{"class":2395},[2354,26686,26687,26689,26691,26693,26695],{"class":2356,"line":1640},[2354,26688,3932],{"class":3608},[2354,26690,25442],{"class":3505},[2354,26692,3938],{"class":3608},[2354,26694,25447],{"class":2364},[2354,26696,3944],{"class":2395},[2354,26698,26699,26701,26703,26705],{"class":2356,"line":1637},[2354,26700,3932],{"class":3608},[2354,26702,23714],{"class":3505},[2354,26704,3938],{"class":3608},[2354,26706,4008],{"class":2395},[2354,26708,26709,26711],{"class":2356,"line":1647},[2354,26710,11106],{"class":2364},[2354,26712,25466],{"class":2395},[2354,26714,26715,26717,26719,26721,26723,26725,26727,26729,26731,26733],{"class":2356,"line":3523},[2354,26716,11130],{"class":2364},[2354,26718,3651],{"class":2395},[2354,26720,1804],{"class":3505},[2354,26722,1564],{"class":2395},[2354,26724,10456],{"class":3505},[2354,26726,25481],{"class":2395},[2354,26728,18867],{"class":3505},[2354,26730,1564],{"class":2395},[2354,26732,25488],{"class":3505},[2354,26734,25491],{"class":2395},[2354,26736,26737],{"class":2356,"line":3595},[2354,26738,18403],{"class":2395},[2354,26740,26741],{"class":2356,"line":3673},[2354,26742,3520],{"emptyLinePlaceholder":1646},[2354,26744,26745,26747,26749,26751,26753,26755,26757],{"class":2356,"line":3679},[2354,26746,3932],{"class":3608},[2354,26748,25506],{"class":3993},[2354,26750,3938],{"class":3608},[2354,26752,3999],{"class":3608},[2354,26754,4002],{"class":2395},[2354,26756,4005],{"class":3608},[2354,26758,4008],{"class":2395},[2354,26760,26761,26763],{"class":2356,"line":3685},[2354,26762,4013],{"class":3608},[2354,26764,4008],{"class":2395},[2354,26766,26767,26769,26771,26773,26775,26777],{"class":2356,"line":3708},[2354,26768,4020],{"class":3608},[2354,26770,3714],{"class":3505},[2354,26772,3938],{"class":3608},[2354,26774,4027],{"class":3608},[2354,26776,4030],{"class":3993},[2354,26778,25537],{"class":2395},[2354,26780,26781,26783,26785],{"class":2356,"line":3761},[2354,26782,4038],{"class":2395},[2354,26784,4041],{"class":2364},[2354,26786,4044],{"class":2395},[2354,26788,26789],{"class":2356,"line":3775},[2354,26790,4049],{"class":2395},[2354,26792,26793,26795],{"class":2356,"line":3153},[2354,26794,22994],{"class":2364},[2354,26796,25466],{"class":2395},[2354,26798,26799,26801,26803,26805,26807,26809],{"class":2356,"line":3799},[2354,26800,25560],{"class":2364},[2354,26802,3617],{"class":2395},[2354,26804,18475],{"class":2364},[2354,26806,25567],{"class":2395},[2354,26808,4065],{"class":2364},[2354,26810,4044],{"class":2395},[2354,26812,26813,26815,26817],{"class":2356,"line":3808},[2354,26814,25576],{"class":2364},[2354,26816,3617],{"class":2395},[2354,26818,18492],{"class":2364},[2354,26820,26821],{"class":2356,"line":4150},[2354,26822,4082],{"class":2395},[2354,26824,26825,26827,26829,26831,26833,26835,26837],{"class":2356,"line":4168},[2354,26826,4087],{"class":2395},[2354,26828,11190],{"class":3505},[2354,26830,1610],{"class":2395},[2354,26832,11195],{"class":3993},[2354,26834,4159],{"class":2395},[2354,26836,23041],{"class":3993},[2354,26838,25601],{"class":2395},[2354,26840,26841],{"class":2356,"line":4176},[2354,26842,4128],{"class":2395},[2354,26844,26845],{"class":2356,"line":4182},[2354,26846,23053],{"class":2395},[2354,26848,26849,26851,26853,26855],{"class":2356,"line":4187},[2354,26850,4138],{"class":3608},[2354,26852,4141],{"class":2395},[2354,26854,4144],{"class":3608},[2354,26856,4147],{"class":2395},[2354,26858,26859,26861,26863,26865,26867],{"class":2356,"line":4208},[2354,26860,4153],{"class":2395},[2354,26862,4156],{"class":3993},[2354,26864,4159],{"class":2395},[2354,26866,4162],{"class":2364},[2354,26868,4502],{"class":2395},[2354,26870,26871,26873],{"class":2356,"line":4220},[2354,26872,4171],{"class":3608},[2354,26874,3944],{"class":2395},[2354,26876,26877],{"class":2356,"line":4232},[2354,26878,4179],{"class":2395},[2354,26880,26881],{"class":2356,"line":4247},[2354,26882,4133],{"class":2395},[2354,26884,26885,26887,26889,26891,26893,26895,26897],{"class":2356,"line":4253},[2354,26886,4020],{"class":3608},[2354,26888,4192],{"class":3505},[2354,26890,3938],{"class":3608},[2354,26892,4027],{"class":3608},[2354,26894,4199],{"class":2395},[2354,26896,4202],{"class":3993},[2354,26898,4205],{"class":2395},[2354,26900,26901,26903,26905],{"class":2356,"line":4259},[2354,26902,4211],{"class":2395},[2354,26904,4214],{"class":3993},[2354,26906,4217],{"class":2395},[2354,26908,26909,26911,26913],{"class":2356,"line":4264},[2354,26910,4223],{"class":2395},[2354,26912,4226],{"class":3608},[2354,26914,4229],{"class":2395},[2354,26916,26917,26919,26921,26923,26925],{"class":2356,"line":6257},[2354,26918,4211],{"class":2395},[2354,26920,4156],{"class":3993},[2354,26922,4159],{"class":2395},[2354,26924,4241],{"class":2364},[2354,26926,4244],{"class":2395},[2354,26928,26929],{"class":2356,"line":6262},[2354,26930,4250],{"class":2395},[2354,26932,26933],{"class":2356,"line":2940},[2354,26934,4256],{"class":2395},[1558,26936,25700,26937,25703,26939,13812],{},[1731,26938,11228],{},[1562,26940,25708],{"href":25706,"rel":26941},[1633],[1558,26943,25386,26944,13959],{},[1562,26945,9218],{"href":1373},[1612,26947,25716],{"id":25715},[1558,26949,25719],{},[1718,26951,26952],{},[1721,26953,26954,26962],{},[1724,26955,26956,1729,26958,2238,26960,2855],{},[1593,26957,1728],{},[1731,26959,25730],{},[1562,26961,25730],{"href":1111},[1724,26963,26964,1729,26966,25740],{},[1593,26965,1752],{},[1731,26967,25739],{},[1558,26969,25743],{},[1558,26971,26972],{},[2434,26973,25748],{},[1612,26975,2403],{"id":2402},[1558,26977,25753],{},[1558,26979,25756],{},[1558,26981,25759],{},[1721,26983,26984,26988,26992],{},[1724,26985,26986],{},[1562,26987,4923],{"href":1487},[1724,26989,26990],{},[1562,26991,1408],{"href":1409},[1724,26993,26994],{},[1562,26995,25774],{"href":1405},[1612,26997,2423],{"id":2422},[1558,26999,25779,27000,25783,27002,1610],{},[1562,27001,22663],{"href":25782},[1562,27003,1634],{"href":1631,"rel":27004},[1633],[1558,27006,25789,27007,1610],{},[1562,27008,1634],{"href":1631,"rel":27009},[1633],[2438,27011,25795],{},{"title":1636,"searchDepth":1637,"depth":1637,"links":27013},[27014,27015,27019,27020,27021],{"id":2172,"depth":1640,"text":2173},{"id":25342,"depth":1640,"text":25343,"children":27016},[27017,27018],{"id":25363,"depth":1637,"text":25364},{"id":25391,"depth":1637,"text":12598},{"id":25715,"depth":1640,"text":25716},{"id":2402,"depth":1640,"text":2403},{"id":2422,"depth":1640,"text":2423},{"type":2143,"format":2144,"intent_type":2145,"intent":2454,"tags":27023,"platfrom":27024},[2456,2457],[3380],{"title":25300,"description":25806},{"id":25832,"title":25833,"body":27027,"date":1641,"description":26101,"extension":1643,"meta":27235,"navigation":1646,"order":1641,"path":26106,"seo":27238,"stem":26108,"__hash__":26109},{"type":1555,"value":27028,"toc":27225},[27029,27031,27033,27035,27037,27039,27041,27061,27063,27065,27067,27085,27087,27095,27097,27109,27111,27143,27145,27147,27149,27151,27155,27157,27159,27161,27163,27165,27185,27189,27191,27193,27197,27217,27219,27221,27223],[1617,27030],{},[1558,27032,25840],{},[1662,27034],{},[1612,27036,2173],{"id":2172},[1617,27038],{},[1558,27040,2178],{},[1718,27042,27043],{},[2182,27044,27045,27051,27055],{},[1724,27046,27047,3408,27049,1610],{},[1593,27048,2188],{},[1562,27050,2193],{"href":2192},[1724,27052,27053,3415],{},[1593,27054,2198],{},[1724,27056,27057,3420,27059,1610],{},[1593,27058,2204],{},[1731,27060,2208],{},[1612,27062,25872],{"id":25871},[1617,27064],{},[1558,27066,25877],{},[1718,27068,27069],{},[2182,27070,27071,27075,27079],{},[1724,27072,27073,25887],{},[1593,27074,25886],{},[1724,27076,27077,25893],{},[1593,27078,25892],{},[1724,27080,27081,25898,27083,25901],{},[1593,27082,1605],{},[1562,27084,1605],{"href":1194},[1558,27086,25904],{},[1718,27088,27089],{},[1721,27090,27091,27093],{},[1724,27092,25911],{},[1724,27094,25914],{},[1558,27096,25917],{},[1718,27098,27099],{},[2182,27100,27101,27105],{},[1724,27102,27103,25927],{},[1593,27104,25926],{},[1724,27106,27107,25932],{},[1593,27108,2247],{},[1558,27110,25935],{},[1718,27112,27113],{},[2182,27114,27115,27119,27123,27127,27131,27135,27139],{},[1724,27116,27117,25945],{},[1593,27118,25944],{},[1724,27120,27121,25951],{},[1593,27122,25950],{},[1724,27124,27125,25956],{},[1593,27126,15630],{},[1724,27128,27129,25962],{},[1593,27130,25961],{},[1724,27132,27133,25968],{},[1593,27134,25967],{},[1724,27136,27137,25974],{},[1593,27138,25973],{},[1724,27140,27141,25979],{},[1593,27142,13988],{},[2219,27144],{"src":25982,"alt":25983},[1612,27146,2403],{"id":2402},[1617,27148],{},[1558,27150,25990],{},[1558,27152,25993,27153,25997],{},[1562,27154,25996],{"href":2418},[1612,27156,8313],{"id":8312},[1617,27158],{},[2266,27160,26005],{"id":26004},[1617,27162],{},[1558,27164,26010],{},[1718,27166,27167],{},[2182,27168,27169,27177],{},[1724,27170,27171,26019,27173,26023,27175,2855],{},[1593,27172,321],{},[1562,27174,26022],{"href":619},[1562,27176,1035],{"href":1036},[1724,27178,27179,26030,27181,26033,27183,22167],{},[1593,27180,1605],{},[1562,27182,1605],{"href":1194},[1731,27184,1837],{},[1558,27186,26038,27187,26042],{},[1562,27188,25872],{"href":26041},[2266,27190,26046],{"id":26045},[1617,27192],{},[1558,27194,26051,27195,26055],{},[1562,27196,25872],{"href":26054},[1718,27198,27199],{},[2182,27200,27201,27205,27209,27213],{},[1724,27202,27203,26064],{},[1593,27204,29],{},[1724,27206,27207,26069],{},[1593,27208,25944],{},[1724,27210,27211,26075],{},[1593,27212,26074],{},[1724,27214,27215,26080],{},[1593,27216,2247],{},[1558,27218,26083],{},[1612,27220,2423],{"id":2422},[1617,27222],{},[1558,27224,26090],{},{"title":1636,"searchDepth":1637,"depth":1637,"links":27226},[27227,27228,27229,27230,27234],{"id":2172,"depth":1640,"text":2173},{"id":25871,"depth":1640,"text":25872},{"id":2402,"depth":1640,"text":2403},{"id":8312,"depth":1640,"text":8313,"children":27231},[27232,27233],{"id":26004,"depth":1637,"text":26005},{"id":26045,"depth":1637,"text":26046},{"id":2422,"depth":1640,"text":2423},{"video":26103,"type":2143,"format":1718,"intent_type":2145,"intent":2454,"tags":27236,"platfrom":27237},[2456,2457,2681,22644],[783],{"title":25833,"description":26101},{"id":13105,"title":13106,"body":27240,"date":1641,"description":13113,"extension":1643,"meta":27460,"navigation":1646,"order":1641,"path":13388,"seo":27463,"stem":13390,"__hash__":13391},{"type":1555,"value":27241,"toc":27453},[27242,27244,27246,27248,27250,27252,27254,27256,27258,27260,27262,27270,27272,27276,27281,27286,27291,27296,27298,27300,27302,27424,27426,27428,27430,27432,27449,27451],[1617,27243],{},[1558,27245,13113],{},[1558,27247,13116],{},[1558,27249,13119],{},[1612,27251,13123],{"id":13122},[1558,27253,13126],{},[1558,27255,13129],{},[2219,27257],{"src":13132,"alt":13133},[1612,27259,13137],{"id":13136},[1558,27261,13140],{},[1721,27263,27264,27266,27268],{},[1724,27265,13145],{},[1724,27267,13148],{},[1724,27269,13151],{},[1612,27271,13155],{"id":13154},[1558,27273,13158,27274,13162],{},[1562,27275,13161],{"href":1636},[1558,27277,13165,27278,13171],{},[1562,27279,13170],{"href":13168,"rel":27280},[1633],[1558,27282,13174,27283,13179],{},[1562,27284,1181],{"href":13177,"rel":27285},[1633],[1558,27287,13182,27288,13187],{},[1562,27289,1185],{"href":13185,"rel":27290},[1633],[1558,27292,13190,27293,13194],{},[1562,27294,1074],{"href":13168,"rel":27295},[1633],[2219,27297],{"src":13197,"alt":13198},[1612,27299,13202],{"id":13201},[1558,27301,13205],{},[1718,27303,27304],{},[1721,27305,27306,27332],{},[1724,27307,27308,1729,27310,27312],{},[1593,27309,1986],{},[1731,27311,1733],{},[1721,27313,27314,27318,27322,27328],{},[1724,27315,27316,1741],{},[1731,27317,1740],{},[1724,27319,27320,9551],{},[1731,27321,1746],{},[1724,27323,27324,12848,27326,1610],{},[1731,27325,8769],{},[1731,27327,8773],{},[1724,27329,27330,13236],{},[1731,27331,6866],{},[1724,27333,27334,1729,27336,27338,27348],{},[1593,27335,2535],{},[1731,27337,667],{},[1721,27339,27340],{},[1724,27341,27342,1771,27344,1775,27346,1610],{},[1731,27343,667],{},[1731,27345,1833],{},[1731,27347,1778],{},[1721,27349,27350,27370,27386],{},[1724,27351,27352,1729,27354,27356],{},[1593,27353,2544],{},[1731,27355,13261],{},[1721,27357,27358,27364],{},[1724,27359,27360,13269,27362,1610],{},[1731,27361,13268],{},[1731,27363,13272],{},[1724,27365,27366,1771,27368,13279],{},[1731,27367,2100],{},[1731,27369,1833],{},[1724,27371,27372,1729,27374,27376],{},[1593,27373,2562],{},[1731,27375,13286],{},[1721,27377,27378],{},[1724,27379,27380,1771,27382,13295,27384,2855],{},[1731,27381,2100],{},[1731,27383,1833],{},[1731,27385,13261],{},[1724,27387,27388,1729,27390,27392,27402],{},[1593,27389,2570],{},[1731,27391,13304],{},[1721,27393,27394],{},[1724,27395,27396,1771,27398,13295,27400,2855],{},[1731,27397,667],{},[1731,27399,1833],{},[1731,27401,13286],{},[1721,27403,27404],{},[1724,27405,27406,1729,27408,27410],{},[1593,27407,12945],{},[1731,27409,5243],{},[1721,27411,27412,27416],{},[1724,27413,27414,13329],{},[1731,27415,1794],{},[1724,27417,27418,1801,27420,13336,27422,13339],{},[1731,27419,269],{},[1731,27421,5255],{},[1731,27423,13286],{},[1558,27425,13342],{},[1612,27427,2423],{"id":2422},[1558,27429,13347],{},[1558,27431,13350],{},[1721,27433,27434,27439,27444],{},[1724,27435,27436],{},[1562,27437,13358],{"href":13177,"rel":27438},[1633],[1724,27440,27441],{},[1562,27442,13364],{"href":13185,"rel":27443},[1633],[1724,27445,27446],{},[1562,27447,13370],{"href":13168,"rel":27448},[1633],[1558,27450,13373],{},[1558,27452,13376],{},{"title":1636,"searchDepth":1637,"depth":1637,"links":27454},[27455,27456,27457,27458,27459],{"id":13122,"depth":1640,"text":13123},{"id":13136,"depth":1640,"text":13137},{"id":13154,"depth":1640,"text":13155},{"id":13201,"depth":1640,"text":13202},{"id":2422,"depth":1640,"text":2423},{"pinned":1646,"metaTitle":13385,"type":2143,"format":1718,"intent_type":3377,"intent":2454,"tags":27461,"platfrom":27462},[2681],[3380],{"title":13106,"description":13113},{"id":21777,"title":21778,"body":27465,"date":2669,"description":21974,"extension":1643,"meta":27639,"navigation":1646,"order":1641,"path":17419,"seo":27642,"stem":21980,"__hash__":21981},{"type":1555,"value":27466,"toc":27631},[27467,27469,27471,27473,27477,27479,27485,27487,27493,27497,27499,27501,27559,27561,27563,27565,27569,27571,27573,27627],[1617,27468],{},[1558,27470,21785],{},[1662,27472],{},[1558,27474,21790,27475],{},[1562,27476,21793],{"href":16542},[1612,27478,1667],{"id":1666},[1558,27480,1670,27481,21800,27483,1610],{},[1593,27482,1673],{},[1593,27484,1681],{},[1612,27486,21806],{"id":21805},[1558,27488,21809,27489,21812,27491,1700],{},[1593,27490,1695],{},[1593,27492,1699],{},[1558,27494,21817,27495,1610],{},[1593,27496,1706],{},[1558,27498,1709],{},[1612,27500,21825],{"id":21824},[1718,27502,27503],{},[1721,27504,27505,27531],{},[1724,27506,27507,1729,27509,27511],{},[1593,27508,1986],{},[1731,27510,14912],{},[1721,27512,27513,27517,27523,27527],{},[1724,27514,27515,21842],{},[1731,27516,5526],{},[1724,27518,27519,3617,27521,21849],{},[1731,27520,1794],{},[1562,27522,20935],{"href":1387},[1724,27524,27525,21854],{},[1731,27526,17477],{},[1724,27528,27529,21859],{},[1731,27530,1800],{},[1724,27532,27533,1729,27535,27537],{},[1593,27534,2535],{},[1731,27536,4914],{},[1721,27538,27539,27543,27547,27553],{},[1724,27540,27541,1741],{},[1731,27542,1740],{},[1724,27544,27545,1894],{},[1731,27546,1746],{},[1724,27548,27549,1900,27551,1610],{},[1731,27550,1899],{},[1731,27552,15054],{},[1724,27554,27555,1801,27557,1610],{},[1731,27556,16746],{},[1731,27558,7610],{},[1612,27560,21891],{"id":21890},[1558,27562,21894],{},[1612,27564,1956],{"id":1955},[1558,27566,1959,27567,1964],{},[1562,27568,1963],{"href":1962},[1612,27570,1398],{"id":1967},[1558,27572,1970],{},[1718,27574,27575],{},[1721,27576,27577,27587,27599,27607,27619],{},[1724,27578,27579,27581,1983,27583,21918,27585,1610],{},[1593,27580,2000],{},[1981,27582],{},[1731,27584,21917],{},[1562,27586,9082],{"href":1383},[1724,27588,27589,27591,2029,27593,2033,27595,2037,27597,1610],{},[1593,27590,21049],{},[1981,27592],{},[1731,27594,2032],{},[1731,27596,2036],{},[1731,27598,18832],{},[1724,27600,27601,27603,21065,27605,21068],{},[1593,27602,21062],{},[1981,27604],{},[1731,27606,1800],{},[1724,27608,27609,27611,1983,27613,2080,27615,2101,27617,1610],{},[1593,27610,2094],{},[1981,27612],{},[1731,27614,21949],{},[1731,27616,2100],{},[1731,27618,15054],{},[1724,27620,27621,27623,2111,27625,2115],{},[1593,27622,2108],{},[1981,27624],{},[1731,27626,2114],{},[1558,27628,2118,27629],{},[1562,27630,2121],{"href":82},{"title":1636,"searchDepth":1637,"depth":1637,"links":27632},[27633,27634,27635,27636,27637,27638],{"id":1666,"depth":1640,"text":1667},{"id":21805,"depth":1640,"text":21806},{"id":21824,"depth":1640,"text":21825},{"id":21890,"depth":1640,"text":21891},{"id":1955,"depth":1640,"text":1956},{"id":1967,"depth":1640,"text":1398},{"read":3151,"level":2140,"video":21976,"templateId":6271,"type":2143,"format":2144,"intent_type":3377,"intent":5626,"tags":27640,"platfrom":27641},[2149,16805,21125],[3380],{"title":21778,"description":21974},[],{"parent":482,"items":27645},[27646,27717,27895,27964,28023,28039,28081],{"id":27647,"title":622,"body":27648,"date":1641,"description":27712,"extension":1643,"meta":27713,"navigation":1646,"order":2357,"path":1351,"seo":27715,"stem":1352,"__hash__":27716},"content\u002Fdocs\u002Fno-code-tool\u002Fthe-builder\u002Findex.md",{"type":1555,"value":27649,"toc":27707},[27650,27663,27667,27669,27672,27676,27680,27682,27685,27688,27692,27694,27697,27700],[1558,27651,27652,27653,27656,27657,2037,27660,1610],{},"The No-Code Tool is a visual ",[1562,27654,27655],{"href":1351},"Builder"," inside the axiom.ai Chrome extension. Drag and drop steps to record clicks, scrape data, fill forms, and connect to Google Sheets, no code required. This section covers everything you need to go from ",[1562,27658,27659],{"href":1369},"installation",[1562,27661,27662],{"href":487},"running your first automation",[1612,27664,27666],{"id":27665},"get-set-up","Get set up",[1617,27668],{},[1558,27670,27671],{},"Install the Chrome extension and get familiar with the dashboard before you build your first automation. Every new account gets 120 minutes of free runtime so you can build and test without committing to a plan.",[1620,27673],{"path":27674,"scope":27675},"install,dashboard","file",[1612,27677,27679],{"id":27678},"use-the-builder","Use the Builder",[1617,27681],{},[1558,27683,27684],{},"The Builder is where automations come together. Add steps from the step finder, configure each one, and pass data between them with tokens. The selector tool helps you point steps at the exact elements on a page you want them to interact with.",[1620,27686],{"path":27687,"scope":27675},"builder,pass, selector-tool",[1612,27689,27691],{"id":27690},"share","Share",[1617,27693],{},[1558,27695,27696],{},"Export an automation as a JSON file to share it with a teammate or back it up. Imported files replace the current automation, so import into a fresh automation if you don't want to overwrite an existing one.",[1620,27698],{"path":27699,"scope":27675},"sharing",[1558,27701,1624,27702,1628,27704,1610],{},[1562,27703,1627],{"href":82},[1562,27705,1634],{"href":1631,"rel":27706},[1633],{"title":1636,"searchDepth":1637,"depth":1637,"links":27708},[27709,27710,27711],{"id":27665,"depth":1640,"text":27666},{"id":27678,"depth":1640,"text":27679},{"id":27690,"depth":1640,"text":27691},"Get started with the axiom.ai No-Code Tool. Install the Chrome extension, create an account, and build your first browser automation.",{"metaTitle":27714},"No-Code browser automation builder",{"title":622,"description":27712},"TSFxNCu0tf_D4e4gT48xElc-afZu7f_rQxZEwMK8_Mw",{"id":27718,"title":508,"body":27719,"date":1641,"description":27890,"extension":1643,"meta":27891,"navigation":1646,"order":1640,"path":509,"seo":27893,"stem":510,"__hash__":27894},"content\u002Fdocs\u002Fno-code-tool\u002Fhow-it-works\u002Findex.md",{"type":1555,"value":27720,"toc":27878},[27721,27766,27770,27772,27775,27777,27779,27781,27784,27787,27790,27792,27795,27798,27801,27803,27806,27808,27811,27813,27816,27818,27822,27824,27827,27829,27832,27834,27837,27839,27842,27844,27847,27849,27853,27855,27858,27860,27864,27866,27869,27871],[1558,27722,27723,27724,1564,27728,1564,27732,1564,27736,1564,27740,1564,27744,1564,27748,1564,27752,1564,27756,27760,27761,27765],{},"Everything a bot can do in axiom.ai, grouped by topic. Jump to ",[1562,27725,27727],{"href":27726},"#browser-actions","browser actions",[1562,27729,27731],{"href":27730},"#scrape-data","scrape data",[1562,27733,27735],{"href":27734},"#work-with-data","work with data",[1562,27737,27739],{"href":27738},"#loop-through-data","loop through data",[1562,27741,27743],{"href":27742},"#logic","logic",[1562,27745,27747],{"href":27746},"#log-in","log in",[1562,27749,27751],{"href":27750},"#integrate-ai","integrate AI",[1562,27753,27755],{"href":27754},"#webhooks","webhooks",[1562,27757,27759],{"href":27758},"#custom-code","custom code",", or ",[1562,27762,27764],{"href":27763},"#schedule-and-run","schedule and run"," - each section below links to a guide for that capability.",[1612,27767,27769],{"id":27768},"browser-actions","Browser actions",[1617,27771],{},[1558,27773,27774],{},"Control what the bot does on a page - click buttons, type into fields, scroll, navigate between tabs, and upload files.",[1620,27776],{"path":27768},[1612,27778,618],{"id":7572},[1617,27780],{},[1558,27782,27783],{},"Pull structured data out of any webpage - tables, lists, product grids, search results - and hand it off to the next step.",[1620,27785],{"path":27786},"get-data",[1612,27788,596],{"id":27789},"work-with-data",[1617,27791],{},[1558,27793,27794],{},"Import data from a CSV or Google Sheet, pass it between steps, transform it, and export the result.",[1620,27796],{"path":3461,":file":27797},"true",[1612,27799,667],{"id":27800},"loop-through-data",[1617,27802],{},[1558,27804,27805],{},"Repeat a set of steps for every row of data - scrape every page of results, message every contact, or process every row in a sheet.",[1620,27807],{"path":13370},[1612,27809,27810],{"id":27743},"Logic",[1617,27812],{},[1558,27814,27815],{},"Branch a bot based on data, jump to another step, or stop a run early when a condition is met.",[1620,27817],{"path":27743},[1612,27819,27821],{"id":27820},"log-in","Log in",[1617,27823],{},[1558,27825,27826],{},"Keep a bot signed in to the sites it visits, so runs don't break on login walls.",[1620,27828],{"path":8151},[1612,27830,309],{"id":27831},"integrate-ai",[1617,27833],{},[1558,27835,27836],{},"Plug Claude, ChatGPT, or another LLM into a bot to extract fields from unstructured text or generate new content.",[1620,27838],{"path":27831,"scope":27675},[1612,27840,27841],{"id":27755},"Webhooks",[1617,27843],{},[1558,27845,27846],{},"Trigger a bot from another app, or send data out to Zapier, Make, or any webhook URL when a run finishes.",[1620,27848],{"path":27755},[1612,27850,27852],{"id":27851},"custom-code","Custom code",[1617,27854],{},[1558,27856,27857],{},"Drop into JavaScript when the no-code steps don't cover what you need - transform data, control flow, or reach parts of a page the visual steps can't.",[1620,27859],{"path":25391,"scope":27675},[1612,27861,27863],{"id":27862},"schedule-and-run","Schedule and run",[1617,27865],{},[1558,27867,27868],{},"Run a bot manually, on a schedule, or trigger it from Zapier, Make, or an incoming webhook.",[1620,27870],{"path":27862},[1558,27872,1624,27873,1628,27875,1610],{},[1562,27874,1627],{"href":82},[1562,27876,1634],{"href":1631,"rel":27877},[1633],{"title":1636,"searchDepth":1637,"depth":1637,"links":27879},[27880,27881,27882,27883,27884,27885,27886,27887,27888,27889],{"id":27768,"depth":1640,"text":27769},{"id":7572,"depth":1640,"text":618},{"id":27789,"depth":1640,"text":596},{"id":27800,"depth":1640,"text":667},{"id":27743,"depth":1640,"text":27810},{"id":27820,"depth":1640,"text":27821},{"id":27831,"depth":1640,"text":309},{"id":27755,"depth":1640,"text":27841},{"id":27851,"depth":1640,"text":27852},{"id":27862,"depth":1640,"text":27863},"Learn how bots click, scrape, loop, branch on logic, handle logins, and run on a schedule in axiom.ai.",{"metaTitle":27892},"How browser automation works in axiom.ai | axiom.ai",{"title":508,"description":27890},"ds2px2DuGwvlCpjnHAh2vbf_dHINN4IsCmSHke0f_xQ",{"id":27896,"title":41,"body":27897,"date":1641,"description":27959,"extension":1643,"meta":27960,"navigation":1646,"order":1637,"path":487,"seo":27962,"stem":488,"__hash__":27963},"content\u002Fdocs\u002Fno-code-tool\u002Fget-started\u002Findex.md",{"type":1555,"value":27898,"toc":27954},[27899,27904,27919,27921,27925,27927,27930,27934,27936,27939,27943,27945,27948],[1558,27900,27901,27902,1610],{},"Three common starting points for your first bot. Each one walks through the main moves, links to the relevant reference pages when you want more depth, and points you to a full walkthrough in our ",[1562,27903,14257],{"href":1962},[1558,27905,27906,27907,1564,27911,27760,27915,1610],{},"Jump to ",[1562,27908,27910],{"href":27909},"#scrape-a-page-into-a-google-sheet","scrape a page into a Google Sheet",[1562,27912,27914],{"href":27913},"#fill-a-form-from-a-spreadsheet","fill a form from a spreadsheet",[1562,27916,27918],{"href":27917},"#loop-through-a-list-of-urls","loop through a list of URLs",[1620,27920],{},[1612,27922,27924],{"id":27923},"web-scraping","Web scraping",[1617,27926],{},[1620,27928],{"path":27929},"scrape-to-sheet",[1612,27931,27933],{"id":27932},"data-entry","Data entry",[1617,27935],{},[1620,27937],{"path":27938},"form-filling",[1612,27940,27942],{"id":27941},"looping","Looping",[1617,27944],{},[1620,27946],{"path":27947},"loop-urls",[1558,27949,27950,27951,1610],{},"Ready for a full walkthrough with a downloadable template? Browse all ",[1562,27952,27953],{"href":1962},"browser automation guides",{"title":1636,"searchDepth":1637,"depth":1637,"links":27955},[27956,27957,27958],{"id":27923,"depth":1640,"text":27924},{"id":27932,"depth":1640,"text":27933},{"id":27941,"depth":1640,"text":27942},"Three short starting points for your first bot - scrape a page, fill a form, or loop through a list of URLs.",{"metaTitle":27961},"Get started with browser automation in axiom.ai | axiom.ai",{"title":41,"description":27959},"5bxPkgoAPAWiovrPAZLUCxdbxOCuMhGnRUKoALYgroY",{"id":1553,"title":17,"body":27965,"date":1641,"description":1642,"extension":1643,"meta":28021,"navigation":1646,"order":1647,"path":730,"seo":28022,"stem":731,"__hash__":1649},{"type":1555,"value":27966,"toc":28018},[27967,28005,28007,28009,28011],[1558,27968,1560,27969,1564,27971,1564,27973,1569,27975,1572,27977,1575,27979,1578,27981,1564,27983,1564,27985,1564,27987,1569,27989,1589,27991,1595,27995,1575,27997,1600,27999,1606,28003,1610],{},[1562,27970,783],{"href":784},[1562,27972,763],{"href":764},[1562,27974,767],{"href":768},[1562,27976,775],{"href":776},[1562,27978,759],{"href":760},[1562,27980,29],{"href":752},[1562,27982,739],{"href":740},[1562,27984,743],{"href":744},[1562,27986,755],{"href":756},[1562,27988,779],{"href":780},[1562,27990,747],{"href":748},[1562,27992,27993],{"href":1059},[1593,27994,309],{},[1562,27996,735],{"href":736},[1562,27998,771],{"href":772},[1562,28000,28001],{"href":1194},[1593,28002,1605],{},[1562,28004,1609],{"href":82},[1612,28006,1615],{"id":1614},[1617,28008],{},[1620,28010],{},[1558,28012,1624,28013,1628,28015,1610],{},[1562,28014,1627],{"href":82},[1562,28016,1634],{"href":1631,"rel":28017},[1633],{"title":1636,"searchDepth":1637,"depth":1637,"links":28019},[28020],{"id":1614,"depth":1640,"text":1615},{"metaTitle":1645},{"title":17,"description":1642},{"id":28024,"title":207,"body":28025,"date":1641,"description":28035,"extension":1643,"meta":28036,"navigation":1646,"order":3523,"path":787,"seo":28037,"stem":788,"__hash__":28038},"content\u002Fdocs\u002Fno-code-tool\u002Freference\u002Findex.md",{"type":1555,"value":28026,"toc":28033},[28027,28030],[1558,28028,28029],{},"Learn in depth about the range of axiom.ai steps and settings.",[1620,28031],{"path":28032,"scope":27675},"settings,steps",{"title":1636,"searchDepth":1637,"depth":1637,"links":28034},[],"To learn more about axiom.ai's steps, read our reference documention.",{},{"title":207,"description":28035},"OY86vZFGkncDsEfcrV-reZUlVJTvszRlc0B2eCr9UsE",{"id":28040,"title":1398,"body":28041,"date":1641,"description":28076,"extension":1643,"meta":28077,"navigation":1646,"order":3595,"path":1399,"seo":28079,"stem":1400,"__hash__":28080},"content\u002Fdocs\u002Fno-code-tool\u002Ftroubleshooting\u002Findex.md",{"type":1555,"value":28042,"toc":28073},[28043,28054,28058,28060,28063,28066],[1558,28044,28045,28046,28049,28050,28053],{},"When an automation fails or behaves unexpectedly, the pages in this section help you find out why. Use the ",[1562,28047,28048],{"href":1487},"debugger and Display a message step"," to inspect what's happening during a run, and the ",[1562,28051,28052],{"href":1405},"error handling guide"," to keep an automation running through expected failures.",[1612,28055,28057],{"id":28056},"troubleshooting-guides","Troubleshooting guides",[1617,28059],{},[1558,28061,28062],{},"Start with the debugger when you need to see what's happening during a run. Move on to error handling once you understand the failure and want the automation to react to it gracefully. The common errors reference covers specific error messages, what they mean, and how to fix each one.",[1620,28064],{"path":28065,"scope":27675},"how-to-debug,error-handling,errors",[1558,28067,1624,28068,1628,28070,1610],{},[1562,28069,1627],{"href":82},[1562,28071,1634],{"href":1631,"rel":28072},[1633],{"title":1636,"searchDepth":1637,"depth":1637,"links":28074},[28075],{"id":28056,"depth":1640,"text":28057},"Tools and patterns for debugging an axiom.ai automation, handling errors gracefully, and finding the cause when a run fails.",{"metaTitle":28078},"Debug and fix common errors in axiom.ai automations",{"title":1398,"description":28076},"rsPNvLDXVvGXKhGuDr-a6zD1l9oBxV54vKwd2ONj1XQ",{"id":28082,"title":1229,"body":28083,"date":1641,"description":28119,"extension":1643,"meta":28120,"navigation":1646,"order":3673,"path":1230,"seo":28122,"stem":1231,"__hash__":28123},"content\u002Fdocs\u002Fno-code-tool\u002Frelease-notes\u002Findex.md",{"type":1555,"value":28084,"toc":28115},[28085,28091,28095,28097,28100,28103,28105,28108],[1558,28086,28087,28088,9303],{},"The latest release is shown below. For older releases, scroll to the ",[1593,28089,28090],{},"Previous releases",[1612,28092,28094],{"id":28093},"latest-release","Latest release",[1617,28096],{},[28098,28099],"content-latest-release",{},[1612,28101,28090],{"id":28102},"previous-releases",[1617,28104],{},[28106,28107],"content-release-cards",{},[1558,28109,1624,28110,1628,28112,1610],{},[1562,28111,1627],{"href":82},[1562,28113,1634],{"href":1631,"rel":28114},[1633],{"title":1636,"searchDepth":1637,"depth":1637,"links":28116},[28117,28118],{"id":28093,"depth":1640,"text":28094},{"id":28102,"depth":1640,"text":28090},"See what's new in the latest axiom.ai release, plus the full archive of previous releases covering features, fixes, and improvements.",{"metaTitle":28121},"Latest axiom.ai release notes and previous updates",{"title":1229,"description":28119},"PECBz8Bz3U4YSvw_VtwLBWhRa3EJVMvY5DH4lYY_8q0",[28125,28127,28129,28131,28133,28135,28137,28139,28141,28143,28145,28147,28149],{"_path":736,"title":735,"description":28126,"stem":737},"Use the Solve Captcha step to outsource reCAPTCHA challenges to 2Captcha, with optional support for other captcha types via JavaScript.",{"_path":740,"title":739,"description":28128,"stem":741},"Connect ChatGPT (OpenAI) to your axiom.ai automations through the Integrate AI step. Generate text or extract structured data using your own OpenAI API key.",{"_path":744,"title":743,"description":28130,"stem":745},"Connect Claude (Anthropic) to your axiom.ai automations through the Integrate AI step. Generate text or extract structured data using your own Anthropic API key.",{"_path":748,"title":747,"description":28132,"stem":749},"Connect DeepSeek to your axiom.ai automations through the Integrate AI step. Generate text or extract structured data using your own DeepSeek API key.",{"_path":756,"title":755,"description":28134,"stem":757},"Connect Gemini (Google) to your axiom.ai automations through the Integrate AI step. Generate text or extract structured data using your own Google AI Studio API key.",{"_path":760,"title":759,"description":28136,"stem":761},"Connect a Google Sheets account to axiom.ai to read, write, find, and delete rows from your sheets during an automation.",{"_path":764,"title":763,"description":28138,"stem":765},"Trigger Make scenarios from axiom.ai automations and trigger axiom.ai automations from Make using webhooks and HTTP requests.",{"_path":752,"title":751,"description":28140,"stem":753},"Connect a Microsoft work or school account to axiom.ai to read data from and write data to Excel sheets in your automations.",{"_path":768,"title":767,"description":28142,"stem":769},"Trigger n8n workflows from axiom.ai and trigger axiom.ai automations from n8n using webhooks and HTTP requests.",{"_path":772,"title":771,"description":28144,"stem":773},"Call Puppeteer's page interaction methods from a Write javascript step to control the browser in ways the no-code steps can't.",{"_path":776,"title":775,"description":28146,"stem":777},"Trigger Relay.app workflows from axiom.ai automations and trigger axiom.ai automations from Relay.app, with built-in field mapping support.",{"_path":780,"title":779,"description":28148,"stem":781},"Connect Sonar (Perplexity) to your axiom.ai automations through the Integrate AI step. Generate text or extract structured data using your own Perplexity API key.",{"_path":784,"title":783,"description":28150,"stem":785},"Trigger Zaps from your axiom.ai automations and trigger axiom.ai automations from Zapier, with optional support for passing data between them.",1781188242761]