<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Flowpaja</title>
    <description>The latest articles on DEV Community by Flowpaja (@flowpaja).</description>
    <link>https://dev.to/flowpaja</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4157280%2F14a664cb-f907-4991-aa9b-06be4590dafa.png</url>
      <title>DEV Community: Flowpaja</title>
      <link>https://dev.to/flowpaja</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/flowpaja"/>
    <language>en</language>
    <item>
      <title>Make.com OAuth redirect URLs: the integromat.com callbacks, your own Google client and HTTP OAuth 2.0</title>
      <dc:creator>Flowpaja</dc:creator>
      <pubDate>Sat, 17 Oct 2026 18:02:14 +0000</pubDate>
      <link>https://dev.to/flowpaja/makecom-oauth-redirect-urls-the-integromatcom-callbacks-your-own-google-client-and-http-oauth-28n6</link>
      <guid>https://dev.to/flowpaja/makecom-oauth-redirect-urls-the-integromatcom-callbacks-your-own-google-client-and-http-oauth-28n6</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; when you create your own OAuth client for Make, the redirect URL (callback URL) depends on the app, and most of them still start with &lt;code&gt;www.integromat.com/oauth/cb/&lt;/code&gt;, from before Integromat became Make. The ones people search for most:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTTP › Make a request (OAuth 2.0):&lt;/strong&gt; &lt;code&gt;https://www.integromat.com/oauth/cb/oauth2&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Drive:&lt;/strong&gt; &lt;code&gt;https://www.integromat.com/oauth/cb/google-restricted&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Sheets, Calendar, Forms, Contacts:&lt;/strong&gt; &lt;code&gt;https://www.integromat.com/oauth/cb/google/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gmail:&lt;/strong&gt; &lt;code&gt;https://www.make.com/oauth/cb/google-email&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Google only accepts an &lt;strong&gt;exact&lt;/strong&gt; match, including the trailing slash. Copy the address character for character from the table below or from the app's page in Make's docs. A wrong or missing one gives &lt;code&gt;Error 400: redirect_uri_mismatch&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This guide contains an affiliate link, marked “affiliate link”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Checked on 3 October 2026:&lt;/strong&gt; every redirect URL on this page is copied from Make's own documentation: the app pages on apps.make.com (most updated 2 October 2026), Make's Help Center and Make's developer docs. Google rules and error texts come from Google's OAuth 2.0 documentation and Google Cloud Help, with their update dates in the sources list. We haven't tested every app ourselves. We earn affiliate commissions from Make.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do you need your own OAuth client at all?
&lt;/h2&gt;

&lt;p&gt;Usually not. For most apps you click &lt;strong&gt;Create a connection&lt;/strong&gt;, sign in, and Make uses its own built-in OAuth client. In that case there's no redirect URL to enter anywhere. You need one only in these cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Drive with a personal account.&lt;/strong&gt; Make's Google Drive docs say: "To connect an email ending in &lt;code&gt;@gmail&lt;/code&gt; or &lt;code&gt;@googlemail&lt;/code&gt;, you need to create a custom OAuth client in the Google Cloud Platform". For other domains it's optional.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The HTTP app with OAuth 2.0.&lt;/strong&gt; HTTP › Make a request has no built-in client, so you always bring your own. That's how you call an API that Make has no module for.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You choose to.&lt;/strong&gt; Many apps, including Gmail, Google Sheets, Dropbox, Shopify and Microsoft Teams, have an optional advanced setting (&lt;strong&gt;Advanced settings&lt;/strong&gt; or &lt;strong&gt;Show advanced settings&lt;/strong&gt;) for your own Client ID and Client Secret. Make's Help Center mentions "Google Workspace users who prefer to use a custom OAuth client". For Gmail and Sheets, Make's docs mark it as optional.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A custom app you build&lt;/strong&gt; in Make's developer platform. Custom apps have their own callback URLs (see below).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What "google-restricted" means.&lt;/strong&gt; Make's Help Center says: "To connect some restricted Google services, like Google Drive or Google Sheets, to Make, you need to create your own project in Google Cloud Platform and a custom OAuth client." Google classes the full Drive scope (&lt;code&gt;auth/drive&lt;/code&gt;) and most Gmail scopes (&lt;code&gt;gmail.readonly&lt;/code&gt;, &lt;code&gt;gmail.compose&lt;/code&gt;, &lt;code&gt;gmail.modify&lt;/code&gt;) as &lt;strong&gt;restricted&lt;/strong&gt;. Restricted scopes "provide wide access to Google user data and require restricted scope OAuth App Verification" (Google's Gmail scopes page, updated 10 September 2026). Make's Drive connection, the older Gmail (legacy) app and Google Groups use the &lt;code&gt;google-restricted&lt;/code&gt; callback. Make's error messages call it a "Google Restricted connection".&lt;/p&gt;

&lt;p&gt;Affiliate disclosure: the link marked "affiliate link" includes our partner code. If you sign up or later buy a paid plan through it, Flowpaja may earn a commission at no extra cost to you. Don't have an account yet? &lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Create a free Make account&lt;/a&gt; (affiliate link). More on the tools we use: &lt;a href="https://flowpaja.com/guides/best-tools-for-make-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;best tools for Make automation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start with the existing setup reference&lt;/strong&gt; Use the live error cheat sheet to identify the failure and inspect the last completed action.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://flowpaja.com/guides/make-error-cheat-sheet/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Open the free reference&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Google apps: redirect URLs as Make documents them
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Make app&lt;/th&gt;
&lt;th&gt;Authorized redirect URI&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Gmail (current version)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.make.com/oauth/cb/google-email&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gmail (legacy)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/google-restricted&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Drive&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/google-restricted&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Groups&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/google-restricted/&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Sheets, Google Calendar, Google Forms, Google Contacts, Google BigQuery&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/google/&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Docs, Google Slides, Google Analytics&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;https://www.integromat.com/oauth/cb/google&lt;/code&gt; (no trailing slash)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Analytics 4&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/google-analytics-4&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Ads (Campaign Management, Customer Match, Lead Forms, Reports)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;https://www.integromat.com/oauth/cb/google-ads2/&lt;/code&gt; (Conversions: no trailing slash)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Search Console&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;https://www.integromat.com/oauth/cb/google-serach-console&lt;/code&gt; (spelled this way in Make's docs)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Business Profile (My Business)&lt;/td&gt;
&lt;td&gt;Make's page lists two: &lt;code&gt;https://www.make.com/oauth/cb/google-my-business2&lt;/code&gt; for the Google Business Profile connection type (Advanced settings) and &lt;code&gt;https://www.integromat.com/oauth/cb/google-custom&lt;/code&gt; for the Google Custom Client Credentials connection type. Not sure which you'll use? Add both&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Merchant Center&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/google-merchant&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Tasks · Google Photos · Google Keep&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;…/oauth/cb/google-tasks&lt;/code&gt; · &lt;code&gt;…/google-photos&lt;/code&gt; · &lt;code&gt;…/google-keep&lt;/code&gt; on &lt;code&gt;https://www.integromat.com&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Cloud Storage, Firestore, Text-to-Speech&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/google-custom&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Vertex AI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.make.com/oauth/cb/google-vertex-ai&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YouTube&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.make.com/oauth/cb/youtube&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTP › Make a request calling a Google API&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/oauth2&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Copied from each app's "Create your client credentials" section on apps.make.com and from Make's Help Center, 3 October 2026. Some addresses have a trailing slash and some don't. Copy each one exactly as shown. We found no regional (eu1, us1 and so on) versions on any of the Google app pages we checked.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Also in Google Cloud:&lt;/strong&gt; under Branding › Authorized domains, Make's docs say to add &lt;code&gt;make.com&lt;/code&gt; and &lt;code&gt;integromat.com&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Other popular apps
&lt;/h2&gt;

&lt;p&gt;The same idea applies when an app lets you use your own client. Make's docs list these addresses:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Make app&lt;/th&gt;
&lt;th&gt;Redirect or callback URL&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Slack&lt;/td&gt;
&lt;td&gt;User: &lt;code&gt;https://www.integromat.com/oauth/cb/slack2&lt;/code&gt; · Bot: &lt;code&gt;https://www.integromat.com/oauth/cb/slack3&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft Teams&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/azure&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HubSpot CRM&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/hubspotcrm&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Salesforce&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/salesforce/&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shopify&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/shopify/&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Facebook Pages, Instagram for Business&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/facebook&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LinkedIn · LinkedIn (OpenID Connect)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;https://www.integromat.com/oauth/cb/linkedin2&lt;/code&gt; · &lt;code&gt;https://www.make.com/oauth/cb/linkedin-openid&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QuickBooks&lt;/td&gt;
&lt;td&gt;Add both: &lt;code&gt;https://www.make.com/oauth/cb/quickbooks2&lt;/code&gt; and &lt;code&gt;https://www.integromat.com/oauth/cb/quickbooks&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Notion&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/notion2&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Airtable&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/airtable3&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pipedrive&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.integromat.com/oauth/cb/pipedrive-auth&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dropbox · Box · Zoom&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;https://www.integromat.com/oauth/cb/dropbox/&lt;/code&gt; · &lt;code&gt;…/box2&lt;/code&gt; · &lt;code&gt;…/zoom2&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mailchimp&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://www.make.com/oauth/cb/mailchimp2&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;From each app's page on apps.make.com, checked 3 October 2026. Not listed here? Open the app's page on apps.make.com and look for "Redirect URI" or "callback".&lt;/p&gt;

&lt;h2&gt;
  
  
  Create your own Google OAuth client for Make
&lt;/h2&gt;

&lt;p&gt;These are the steps from Make's Help Center article "Connect to Google services using a custom OAuth client" (updated 2 October 2026). The app pages repeat them with each app's API, scopes and redirect URL.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Create a project&lt;/strong&gt; in Google Cloud console. Make notes you need the &lt;code&gt;serviceusage.services.enable&lt;/code&gt; permission.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enable the API&lt;/strong&gt; under APIs &amp;amp; Services › Library, for example the Google Drive API, Gmail API or Google Sheets API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configure the consent screen&lt;/strong&gt; under APIs &amp;amp; Services › OAuth consent screen › Get Started. Set Audience to &lt;strong&gt;External&lt;/strong&gt; for a personal account. Under Branding, add &lt;code&gt;make.com&lt;/code&gt; and &lt;code&gt;integromat.com&lt;/code&gt; as authorized domains.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Choose the publishing status&lt;/strong&gt; under Audience: click &lt;strong&gt;Publish app&lt;/strong&gt; (In production), or stay in Testing and add your Gmail address as a test user. Make: "If you keep your project in the &lt;strong&gt;Testing&lt;/strong&gt; status, you will be required to reauthorize your connection in Make every week."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add the scopes&lt;/strong&gt; under Data Access › Add or remove scopes. For Google Sheets, Make lists &lt;code&gt;…/auth/spreadsheets&lt;/code&gt; and &lt;code&gt;…/auth/drive&lt;/code&gt;. For Gmail it lists &lt;code&gt;gmail.modify&lt;/code&gt;, &lt;code&gt;gmail.readonly&lt;/code&gt;, &lt;code&gt;gmail.compose&lt;/code&gt; and &lt;code&gt;gmail.send&lt;/code&gt;. Each app's page has its own list.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create the client&lt;/strong&gt; under Clients › + Create client. Choose Application type &lt;strong&gt;Web application&lt;/strong&gt;, and under Authorized redirect URIs click &lt;strong&gt;+ Add URI&lt;/strong&gt; and paste the app's address from the table above. Copy the &lt;strong&gt;Client ID&lt;/strong&gt; and &lt;strong&gt;Client secret&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connect in Make.&lt;/strong&gt; Add the Google module, click Create a connection, switch on &lt;strong&gt;Advanced settings&lt;/strong&gt;, paste the Client ID and Client Secret, and click Sign in with Google.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;"Needs verification" when you publish?&lt;/strong&gt; Make's answer: "Currently, connecting to unverified apps works in Make, but we cannot guarantee that Google will allow connections to unverified apps for an indefinite period." Google lists "personal use" and "internal use within an organization" among the exceptions to restricted-scope verification (Google's restricted scope verification page, updated 19 August 2026). An unverified app shows Google's warning screen before sign-in, and Google caps such apps at "100 new users in total". That's fine for your own account, but not for a client you share widely.&lt;/p&gt;

&lt;p&gt;Google lets you add more than one URI under Authorized redirect URIs. So in principle one client can serve several Make apps, for example &lt;code&gt;google/&lt;/code&gt; for Sheets and &lt;code&gt;google-restricted&lt;/code&gt; for Drive, if it also has all their APIs and scopes. Make's docs describe one app at a time, so test each connection.&lt;/p&gt;

&lt;h2&gt;
  
  
  HTTP › Make a request with OAuth 2.0
&lt;/h2&gt;

&lt;p&gt;Use this for any OAuth 2.0 API that Make has no app for, or for a Google API endpoint Make's modules don't cover. Make's docs (OAuth 2.0 authentication type, updated 22 December 2025) say to set the redirect URI in the other service's developer settings to &lt;code&gt;https://www.integromat.com/oauth/cb/oauth2&lt;/code&gt;. Then:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In &lt;strong&gt;HTTP › Make a request&lt;/strong&gt;, set Authentication type to &lt;strong&gt;OAuth 2.0&lt;/strong&gt; and click Create a connection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flow type:&lt;/strong&gt; Authorization Code, which needs an Authorize URI and a Token URI, or Implicit, which needs only an Authorize URI. Both come from the service's API docs.&lt;/li&gt;
&lt;li&gt;Add the &lt;strong&gt;Scopes&lt;/strong&gt;, &lt;strong&gt;Client ID&lt;/strong&gt; and &lt;strong&gt;Client Secret&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Under Advanced settings, pick the &lt;strong&gt;Scope separator&lt;/strong&gt;, SPACE or COMMA. Make: "SPACE is the standard separator."&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;For Google APIs,&lt;/strong&gt; Make's Help Center gives these values: Authorize URI &lt;code&gt;https://accounts.google.com/o/oauth2/v2/auth&lt;/code&gt;, Token URI &lt;code&gt;https://oauth2.googleapis.com/token&lt;/code&gt;, and Scope separator SPACE. Make warns: "Choosing the right scope separator is important, as the wrong one can prevent you from establishing the connection." To avoid having to keep refreshing the connection, add the Authorize parameters &lt;code&gt;access_type&lt;/code&gt; = &lt;code&gt;offline&lt;/code&gt; and &lt;code&gt;prompt&lt;/code&gt; = &lt;code&gt;consent&lt;/code&gt;. If Google says it hasn't verified the app, Make's article says to click Advanced, then "Go to integromat.com (unsafe)". The integromat.com name appears because of the redirect URL; it's Make's own domain.&lt;/p&gt;

&lt;p&gt;Each HTTP request costs 1 credit, like any module run. Creating or reauthorizing a connection runs no module.&lt;/p&gt;

&lt;h2&gt;
  
  
  Custom apps: make.com/oauth/cb/app
&lt;/h2&gt;

&lt;p&gt;If you're building your own app in Make's developer platform, a different set of callbacks applies. Make's developer docs say to use &lt;code&gt;https://www.make.com/oauth/cb/app&lt;/code&gt; with the &lt;code&gt;oauth.makeRedirectUri&lt;/code&gt; variable, or with &lt;code&gt;oauth.localRedirectUri&lt;/code&gt; if you plan to request approval of your app. The old &lt;code&gt;https://www.integromat.com/oauth/cb/app&lt;/code&gt; with &lt;code&gt;oauth.redirectUri&lt;/code&gt; "is not suggested for new apps". For OAuth 1.0 custom apps the callback is &lt;code&gt;https://www.integromat.com/oauth/cb/app-oauth1&lt;/code&gt;. Don't mix them up with &lt;code&gt;oauth/cb/oauth2&lt;/code&gt;, which belongs to the HTTP app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Errors while connecting, and the fixes
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Error&lt;/th&gt;
&lt;th&gt;What the source says&lt;/th&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Error 400: redirect_uri_mismatch&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Google: the redirect URI "must exactly match one of the authorized redirect URIs"; "the http or https scheme, case, and trailing slash ('/') must all match". Make: Google may not "instantly recognize" a new redirect URI.&lt;/td&gt;
&lt;td&gt;Paste the app's exact address (table above), save, wait a while, then try again&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;Error 401: invalid_client&lt;/code&gt; ("The OAuth client was not found")&lt;/td&gt;
&lt;td&gt;Make: the credentials "are no longer valid or properly configured". Google: &lt;code&gt;invalid_client&lt;/code&gt; also means "The OAuth client secret is incorrect"&lt;/td&gt;
&lt;td&gt;Re-copy the Client ID and secret; if the client is gone, create a new connection and swap it into your scenarios&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;deleted_client&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Google: deleted manually "or automatically in the case of unused clients"; "Deleted clients can be restored within 30 days"&lt;/td&gt;
&lt;td&gt;Restore it in Google Cloud, or create a new client and connection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Error 403: access_denied&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Make: the project is in Testing and the Google account isn't added as a test user&lt;/td&gt;
&lt;td&gt;Add the account as a test user, or publish the app; then click Reauthorize&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;[403] Access Not Configured&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Make: the API isn't enabled in your project&lt;/td&gt;
&lt;td&gt;Enable it under APIs &amp;amp; Services › Library&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Error 403: Insufficient Permission&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Make: required scopes are missing from the project&lt;/td&gt;
&lt;td&gt;Add the app's scopes under Data Access, then Reauthorize&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"It is not possible to use restricted scopes with customer @gmail.com accounts"&lt;/td&gt;
&lt;td&gt;Make: the required scopes weren't added to your Google app&lt;/td&gt;
&lt;td&gt;Add the scopes and finish the consent screen setup, then connect again&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Failed to verify connection 'My Google Restricted connection'. Status Code Error: 400"&lt;/td&gt;
&lt;td&gt;Make: the connection "has expired and is no longer valid"; unpublished apps get "a 7-day authorization period"&lt;/td&gt;
&lt;td&gt;Publish the app (In production) or reauthorize every week&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"100 Logins Limit Per Day Has Been Reached"&lt;/td&gt;
&lt;td&gt;Google: "a limit of 100 refresh tokens per Google Account per OAuth 2.0 client ID"; the oldest is invalidated "without warning"&lt;/td&gt;
&lt;td&gt;Make suggests creating another OAuth client&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTP OAuth 2.0 connection won't save&lt;/td&gt;
&lt;td&gt;Make: check that the API is enabled, the authorized domains, the test user or published status, the redirect URI, the Authorize and Token URIs, the scopes, the Client ID and Secret, and the scope separator&lt;/td&gt;
&lt;td&gt;For Google: SPACE separator, the two Google URIs above, and &lt;code&gt;oauth/cb/oauth2&lt;/code&gt; as the redirect&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Make: "Connect to Google services using a custom OAuth client" (Common problems) and "Call Google APIs with OAuth 2.0 HTTP request" (Troubleshooting), both updated 2 October 2026. Google: OAuth 2.0 for web server apps (updated 14 September 2026) and Using OAuth 2.0 (updated 26 May 2026).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connection worked, then broke?&lt;/strong&gt; For expired or revoked tokens (&lt;code&gt;invalid_grant&lt;/code&gt;), weekly expiry in Testing status, "Access blocked" from a Workspace admin and the six-month Gmail limit, see &lt;a href="https://flowpaja.com/guides/make-google-connection-errors/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make Google connection errors&lt;/a&gt;. If a scenario switched itself off after the error, see &lt;a href="https://flowpaja.com/guides/make-scenario-stopped-or-disabled/?ref=jakelu-devto" rel="noopener noreferrer"&gt;scenario stopped or disabled&lt;/a&gt;. More error texts: &lt;a href="https://flowpaja.com/guides/make-error-cheat-sheet/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make error cheat sheet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Own-project connections in other guides:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/make-youtube-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;YouTube automation&lt;/a&gt; covers the YouTube app's own-project connection and its publishing status. &lt;a href="https://flowpaja.com/guides/make-x-twitter-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;X (Twitter) automation&lt;/a&gt; explains why an HTTP OAuth 2.0 connection may not connect to X.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plan check
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Every plan, including Free:&lt;/strong&gt; creating connections, using your own OAuth client, and the HTTP app. Make's docs for these connections don't mention a plan requirement. Free still means 1,000 credits a month, checks no more often than every 15 minutes, and 2 active scenarios.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; connections themselves cost nothing. Each module run costs 1 credit, including each HTTP request.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google side:&lt;/strong&gt; Make's setup steps for the Google Cloud project and OAuth client don't include any billing step. Some Google APIs, such as Vertex AI, are billed by Google separately.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not needed:&lt;/strong&gt; the Make Code app (not on Free) or custom functions (Enterprise).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Make pricing page, as seen from a US connection, 3 October 2026. Plans change; check the current page before you buy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources checked (3 October 2026)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Make app docs (apps.make.com): the redirect URIs and scopes in each app's "Create your client credentials" section for 37 Google apps and the other apps listed; Google Drive (custom client for @gmail), Gmail and Gmail (legacy); "Create and configure a Google Cloud Platform project for Gmail" (most updated 2 Oct 2026); OAuth 2.0 authentication type (updated 22 Dec 2025)&lt;/li&gt;
&lt;li&gt;Make Help Center: "Connect to Google services using a custom OAuth client" and "Call Google APIs with OAuth 2.0 HTTP request" (both updated 2 Oct 2026); "Connect to any web service using OAuth 2.0"&lt;/li&gt;
&lt;li&gt;Make developer docs: OAuth 2.0 and OAuth 1.0 connections for custom apps (callback URLs and IML variables)&lt;/li&gt;
&lt;li&gt;Google for Developers: OAuth 2.0 for web server applications (redirect_uri rules, error codes; updated 14 Sep 2026); Using OAuth 2.0 (Testing status, 7-day refresh tokens, 100-token limit; updated 26 May 2026); restricted scope verification (updated 19 Aug 2026); Gmail API scopes (10 Sep 2026); Drive API scopes (3 Sep 2026); Sheets API scopes (3 Sep 2026)&lt;/li&gt;
&lt;li&gt;Google Cloud Help: Restricted scopes; Unverified apps (unverified app screen, 100 new user cap)&lt;/li&gt;
&lt;li&gt;Make pricing page: credit rule and Free plan limits, as seen from a US connection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Don't have a Make account yet?&lt;/strong&gt; You can build and test this scenario on Make's free plan.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Create a free Make account (opens Make in a new tab)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Affiliate link: Flowpaja may earn a commission at no extra cost to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;What is Make's OAuth redirect URL?&lt;/p&gt;

&lt;p&gt;It depends on the app. For HTTP › Make a request with OAuth 2.0 it's &lt;a href="https://www.integromat.com/oauth/cb/oauth2" rel="noopener noreferrer"&gt;https://www.integromat.com/oauth/cb/oauth2&lt;/a&gt;. For Google Drive it's &lt;a href="https://www.integromat.com/oauth/cb/google-restricted" rel="noopener noreferrer"&gt;https://www.integromat.com/oauth/cb/google-restricted&lt;/a&gt;, for Google Sheets &lt;a href="https://www.integromat.com/oauth/cb/google/" rel="noopener noreferrer"&gt;https://www.integromat.com/oauth/cb/google/&lt;/a&gt; and for Gmail &lt;a href="https://www.make.com/oauth/cb/google-email" rel="noopener noreferrer"&gt;https://www.make.com/oauth/cb/google-email&lt;/a&gt;. Copy the exact address from the app's page in Make's docs.&lt;/p&gt;

&lt;p&gt;Why do Make's redirect URLs still say integromat.com?&lt;/p&gt;

&lt;p&gt;Make was called Integromat before it rebranded. Make's own documentation still lists integromat.com callback addresses for most apps, and tells you to add both make.com and integromat.com as authorized domains in Google Cloud.&lt;/p&gt;

&lt;p&gt;What does google-restricted mean in the Make redirect URL?&lt;/p&gt;

&lt;p&gt;It's the callback for Make's Google connection that covers restricted Google scopes, such as full Google Drive access. Google Drive, Gmail (legacy) and Google Groups use &lt;a href="https://www.integromat.com/oauth/cb/google-restricted" rel="noopener noreferrer"&gt;https://www.integromat.com/oauth/cb/google-restricted&lt;/a&gt;. Make's docs say personal @gmail.com accounts need their own OAuth client for Google Drive.&lt;/p&gt;

&lt;p&gt;How do I fix Error 400: redirect_uri_mismatch in Make?&lt;/p&gt;

&lt;p&gt;Add the app's exact redirect URL under Authorized redirect URIs in your Google OAuth client. Google says the scheme, case and trailing slash must all match. Save, wait a while (Make notes Google may not recognize a new URI instantly), then connect again.&lt;/p&gt;

&lt;p&gt;Do I need my own Google OAuth client to use Make?&lt;/p&gt;

&lt;p&gt;Usually not. Make's built-in connection works for most Google apps. You need your own client for Google Drive with a personal @gmail.com or @googlemail.com account, for HTTP › Make a request with OAuth 2.0, or if your organisation requires it.&lt;/p&gt;

&lt;p&gt;Why does my custom Google connection expire every week?&lt;/p&gt;

&lt;p&gt;Your Google Cloud project is in Testing status. Google issues refresh tokens that expire in 7 days for External apps in Testing. Publish the app under Google Auth Platform › Audience, then reauthorize the connection in Make.&lt;/p&gt;

&lt;p&gt;Which redirect URL do Make custom apps use?&lt;/p&gt;

&lt;p&gt;Make's developer docs recommend &lt;a href="https://www.make.com/oauth/cb/app" rel="noopener noreferrer"&gt;https://www.make.com/oauth/cb/app&lt;/a&gt; with the oauth.makeRedirectUri variable. The old &lt;a href="https://www.integromat.com/oauth/cb/app" rel="noopener noreferrer"&gt;https://www.integromat.com/oauth/cb/app&lt;/a&gt; is not suggested for new apps.&lt;/p&gt;

</description>
      <category>make</category>
      <category>oauth</category>
      <category>google</category>
      <category>automation</category>
    </item>
    <item>
      <title>Make Google Sheets "Watch New Rows" not picking up new rows</title>
      <dc:creator>Flowpaja</dc:creator>
      <pubDate>Sat, 17 Oct 2026 18:01:37 +0000</pubDate>
      <link>https://dev.to/flowpaja/make-google-sheets-watch-new-rows-not-picking-up-new-rows-42d5</link>
      <guid>https://dev.to/flowpaja/make-google-sheets-watch-new-rows-not-picking-up-new-rows-42d5</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Make's Google Sheets &lt;strong&gt;Watch New Rows&lt;/strong&gt; trigger checks the sheet on the scenario's schedule and returns rows it hasn't processed yet. It misses rows when a &lt;strong&gt;blank row&lt;/strong&gt; sits above them (Make's docs say rows after a blank row aren't processed), when it watches the wrong tab or header row, when its start point is past the new rows, or when rows are inserted, sorted or deleted. Remove blank rows, check the settings, reset &lt;strong&gt;Choose where to start&lt;/strong&gt;, and add new rows only at the bottom.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; everything in this guide works with plain Make.com and the apps it connects. At the end we mention our own Make templates and our Make scenario fix service on Fiverr. Module names, settings and limits were checked against &lt;a href="https://apps.make.com/google-sheets-modules" rel="noopener noreferrer"&gt;Make's Google Sheets modules docs&lt;/a&gt; and &lt;a href="https://help.make.com/types-of-modules" rel="noopener noreferrer"&gt;types of modules&lt;/a&gt; in October 2026. Menus and limits change, so check them if something looks different.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The scenario with the &lt;strong&gt;Google Sheets → Watch New Rows&lt;/strong&gt; trigger&lt;/li&gt;
&lt;li&gt;Edit access to the sheet&lt;/li&gt;
&lt;li&gt;A test row you can add and delete&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How the trigger works (read this first)
&lt;/h2&gt;

&lt;p&gt;Watch New Rows is a &lt;strong&gt;polling&lt;/strong&gt; trigger: Google doesn't notify Make. Make checks the sheet on the scenario's &lt;strong&gt;schedule&lt;/strong&gt; (e.g. every 15 minutes) and returns new rows, up to the &lt;strong&gt;Limit&lt;/strong&gt; you set.&lt;/p&gt;

&lt;p&gt;Make doesn't document how it remembers its place. In practice it behaves like a bookmark on &lt;strong&gt;row position&lt;/strong&gt;, returning rows below the last one it processed, which fits Make's blank-row warning (step 2). It watches positions, not content, and most problems follow from that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Check the spreadsheet, tab and header row
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Is the module pointing at the right &lt;strong&gt;spreadsheet&lt;/strong&gt; (not an old copy) and the right &lt;strong&gt;Sheet Name&lt;/strong&gt; (tab)? Re-linking a Google Form, for example, often creates a new tab such as "Form Responses 2".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Table contains headers:&lt;/strong&gt; if &lt;em&gt;Yes&lt;/em&gt;, the header row isn't returned as data, and the fields are named after the headers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Row with headers:&lt;/strong&gt; if your headers aren't in row 1, enter their range here, e.g. &lt;code&gt;A3:F3&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The connected Google account must be able to open the file. A 403 or 404 here is an access problem, not a trigger problem: see &lt;a href="https://flowpaja.com/guides/make-google-connection-errors/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make.com Google connection errors&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 2: Remove blank rows
&lt;/h2&gt;

&lt;p&gt;Make's documentation for Watch New Rows says: if a sheet contains a blank row, Make doesn't process the rows after it. One empty row in the middle of the data is enough to make every new row below it invisible.&lt;/p&gt;

&lt;p&gt;Delete blank rows between the header and the data, and between data rows. Ask people who type into the sheet not to leave gaps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Reset "Choose where to start"
&lt;/h2&gt;

&lt;p&gt;Right-click the trigger and click &lt;strong&gt;Choose where to start&lt;/strong&gt;. The options vary by app. Make's help lists the typical ones: the current moment (&lt;strong&gt;From now on&lt;/strong&gt;), a specific date, a specific record, or the first record (&lt;strong&gt;All&lt;/strong&gt;). Your choice only applies to the &lt;strong&gt;first&lt;/strong&gt; run after you save. Later runs continue from wherever the previous run stopped.&lt;/p&gt;

&lt;p&gt;If the bookmark is past your new rows (e.g. after deleted rows were reused), the trigger skips them. Pick a start point just before the first unprocessed row, save, and click &lt;strong&gt;Run once&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Inserting, sorting and deleting rows
&lt;/h2&gt;

&lt;p&gt;Because the trigger follows row positions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inserting&lt;/strong&gt; a row above the bookmark: that row is never picked up, and the rows below move down, so one of them can be processed &lt;strong&gt;twice&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sorting&lt;/strong&gt; the sheet causes the same problem on a larger scale.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deleting&lt;/strong&gt; rows: new rows can land on row numbers the trigger already counts as done.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; treat the watched tab as an &lt;strong&gt;append-only log&lt;/strong&gt; and sort on another tab, e.g. &lt;code&gt;=SORT(Data!A2:F)&lt;/code&gt;. If duplicates would hurt, store each processed row's unique ID in a data store and check it first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Rows added by formulas, forms and people
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Formulas copied far down the sheet&lt;/strong&gt;, or an &lt;code&gt;ARRAYFORMULA&lt;/code&gt; that fills the whole column, can make rows look used before real data arrives. If the trigger returns bundles that contain only formula output, keep calculated columns on a separate tab, or only calculate where data exists, e.g. &lt;code&gt;=IF(A2="","",…)&lt;/code&gt; (some locales use &lt;code&gt;;&lt;/code&gt; instead of &lt;code&gt;,&lt;/code&gt;). Then add a filter after the trigger: &lt;strong&gt;[key column] → Exists&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rows added by other tools&lt;/strong&gt; are fine if they're appended at the bottom, as Google Forms does.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rows typed by hand&lt;/strong&gt; can be picked up &lt;strong&gt;half-finished&lt;/strong&gt;. Watch New Rows sees each row only once, so a "Ready" filter would skip that row for good. For hand-typed sheets, use &lt;strong&gt;Search Rows&lt;/strong&gt; on a schedule with a Status column, as in &lt;a href="https://flowpaja.com/guides/send-gmail-email-new-row-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;the Gmail-on-new-row guide&lt;/a&gt;. If Search Rows then returns nothing, see &lt;a href="https://flowpaja.com/guides/make-google-sheets-search-rows-empty/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Search Rows returns nothing&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 6: The schedule and the limit
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;With a 15-minute &lt;strong&gt;schedule&lt;/strong&gt;, a new row can take up to 15 minutes to show up. That's expected.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limit&lt;/strong&gt; caps rows per run: 50 new rows with a limit of 2 take many runs.&lt;/li&gt;
&lt;li&gt;Each check is one operation (one credit), even when nothing is new.&lt;/li&gt;
&lt;li&gt;Check that the scenario is &lt;strong&gt;on&lt;/strong&gt;. A scenario switched off after errors (see &lt;strong&gt;Errors before deactivation&lt;/strong&gt;) picks up nothing. See &lt;a href="https://flowpaja.com/guides/make-scenario-stopped-or-disabled/?ref=jakelu-devto" rel="noopener noreferrer"&gt;why a Make scenario stopped running&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 7: When you need something instant
&lt;/h2&gt;

&lt;p&gt;The Google Sheets &lt;strong&gt;Watch Changes&lt;/strong&gt; module is instant, but it doesn't solve this. Make's docs say it only reacts to changes a person makes in Google Sheets, not to script or API edits, and it doesn't watch for newly added rows.&lt;/p&gt;

&lt;p&gt;For rows that people add or edit, an installable Apps Script trigger can send the row to a Make &lt;strong&gt;custom webhook&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Installable trigger: Extensions → Apps Script → Triggers → Add trigger&lt;/span&gt;
&lt;span class="c1"&gt;// → function sendRowToMake, event source "From spreadsheet", event type "On edit".&lt;/span&gt;
&lt;span class="c1"&gt;// Store the Make webhook URL in Script Properties as MAKE_WEBHOOK_URL.&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;sendRowToMake&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sheet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;range&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getSheet&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;sheet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getName&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Data&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;range&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getRow&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;row&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;sheet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getRange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;range&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getRow&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;sheet&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getLastColumn&lt;/span&gt;&lt;span class="p"&gt;()).&lt;/span&gt;&lt;span class="nf"&gt;getValues&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;PropertiesService&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getScriptProperties&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;getProperty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;MAKE_WEBHOOK_URL&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;UrlFetchApp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;post&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;contentType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;row&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;range&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getRow&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="na"&gt;values&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;row&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two limits: it fires on &lt;strong&gt;every edit&lt;/strong&gt;, so filter in Make (e.g. only when "Ready" is TRUE). And Google's docs say script executions and API requests don't fire triggers, so rows written by other apps won't fire it. See &lt;a href="https://flowpaja.com/guides/receive-webhook-data-in-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;receiving webhook data in Make&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If the rows come from &lt;strong&gt;Google Forms&lt;/strong&gt;, start from the form instead: Make's Google Forms app has a &lt;strong&gt;Watch Responses&lt;/strong&gt; trigger, and Apps Script has a separate "On form submit" trigger.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common errors and fixes
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Symptom&lt;/th&gt;
&lt;th&gt;Likely cause&lt;/th&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;New rows never picked up&lt;/td&gt;
&lt;td&gt;Blank row above them, wrong tab, or bookmark past them&lt;/td&gt;
&lt;td&gt;Delete blank rows; check the tab; reset "Choose where to start"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Some rows skipped&lt;/td&gt;
&lt;td&gt;Rows inserted above the bookmark, or the sheet was sorted&lt;/td&gt;
&lt;td&gt;Append only; sort on another tab&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Same row processed twice&lt;/td&gt;
&lt;td&gt;Inserted or deleted rows shifted positions&lt;/td&gt;
&lt;td&gt;Append-only tab + ID check&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Empty bundles&lt;/td&gt;
&lt;td&gt;Formulas filling the column&lt;/td&gt;
&lt;td&gt;Limit formulas to filled rows; filter "Exists"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Half-filled rows processed&lt;/td&gt;
&lt;td&gt;Picked up while someone was typing&lt;/td&gt;
&lt;td&gt;Search Rows + Status column for hand-typed sheets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nothing happens at all&lt;/td&gt;
&lt;td&gt;Scenario switched off&lt;/td&gt;
&lt;td&gt;Fix the error, switch it back on&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Don't have a Make account yet?&lt;/strong&gt; You can build and test this scenario on Make's free plan.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Create a free Make account (opens Make in a new tab)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Affiliate link: Flowpaja may earn a commission at no extra cost to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;Why doesn't Make's Watch New Rows see my new row?&lt;/p&gt;

&lt;p&gt;It only runs on its schedule and only returns unprocessed rows. Check for blank rows above it, the tab and header settings, and the Choose where to start point.&lt;/p&gt;

&lt;p&gt;Does a blank row stop Watch New Rows?&lt;/p&gt;

&lt;p&gt;Yes. Make's documentation says that if a sheet contains a blank row, the rows after it aren't processed. Delete blank rows between your data.&lt;/p&gt;

&lt;p&gt;Does Watch New Rows detect edits to existing rows?&lt;/p&gt;

&lt;p&gt;No, only new rows. Watch Changes reacts to edits a person makes in Google Sheets, and an Apps Script on-edit trigger calling a Make webhook is another option.&lt;/p&gt;

&lt;p&gt;Can I sort the sheet that Make is watching?&lt;/p&gt;

&lt;p&gt;It's safer not to. Sorting moves rows to new positions, so rows can be skipped or processed twice. Sort on a separate tab.&lt;/p&gt;

&lt;p&gt;How fast does Watch New Rows react?&lt;/p&gt;

&lt;p&gt;As fast as the scenario's schedule. With a 15-minute interval, a row can wait up to 15 minutes, and each check uses one credit.&lt;/p&gt;

</description>
      <category>make</category>
      <category>googlesheets</category>
      <category>automation</category>
      <category>nocode</category>
    </item>
    <item>
      <title>Why your Make.com scenario stopped running (and how to fix it)</title>
      <dc:creator>Flowpaja</dc:creator>
      <pubDate>Fri, 16 Oct 2026 17:14:09 +0000</pubDate>
      <link>https://dev.to/flowpaja/why-your-makecom-scenario-stopped-running-and-how-to-fix-it-2o1d</link>
      <guid>https://dev.to/flowpaja/why-your-makecom-scenario-stopped-running-and-how-to-fix-it-2o1d</guid>
      <description>&lt;p&gt;A scenario that worked for weeks goes quiet, and nobody notices until a client asks where their email is. Almost every case comes down to a short list of causes, and you can work through them in about fifteen minutes.&lt;/p&gt;

&lt;p&gt;This guide contains affiliate links, marked “affiliate link”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; everything in this guide works with plain Make.com and the apps it connects. At the end we mention our own Make templates and our Make scenario fix service on Fiverr. Module names, settings and limits were checked against &lt;a href="https://help.make.com/scenario-settings" rel="noopener noreferrer"&gt;Make's scenario settings&lt;/a&gt; and &lt;a href="https://help.make.com/Overview-of-error-handling" rel="noopener noreferrer"&gt;error handling overview&lt;/a&gt; in October 2026. Menus and limits change, so check them if something looks different.&lt;/p&gt;

&lt;h2&gt;
  
  
  Short answer
&lt;/h2&gt;

&lt;p&gt;Stored incomplete executions can block new runs when &lt;code&gt;Process data in order&lt;/code&gt; is enabled. Check the scenario's current state and webhook queue. Resolve or deliberately handle the incomplete work, then test one new fictional request. Before enabling the scenario, inspect the destination using a fictional input and compare the result with the intended business outcome.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key facts
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Inspect incomplete executions before changing the trigger.&lt;/li&gt;
&lt;li&gt;Turning scheduling on does not resolve incomplete work.&lt;/li&gt;
&lt;li&gt;Do not discard stored data merely to make the queue look empty.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What you need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Access to the scenario in Make.com, with permission to edit it. No account yet? &lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Create a free Make account&lt;/a&gt; (affiliate link).&lt;/li&gt;
&lt;li&gt;Access to the organization's usage and connection pages&lt;/li&gt;
&lt;li&gt;The notification emails Make sends to the account owner, if you still have them&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ad disclosure: links marked "affiliate link" are ads. If you sign up or buy through them, Flowpaja may earn a commission at no extra cost to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step-by-step: find out why it stopped
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Check the switch and the schedule
&lt;/h3&gt;

&lt;p&gt;Open the scenario. Is the ON/OFF toggle on? Then look at the scheduling control at the bottom. If it is set to run on demand, or the schedule was switched off, the scenario will never start by itself. Cloned or imported scenarios often arrive inactive or with scheduling turned off, so a "new" copy that never runs is a common case.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Open the History tab
&lt;/h3&gt;

&lt;p&gt;Each run is listed with a status. Look for the last successful run and the first failure after it. Click the failed run and find the module with the red marker. The error message there is usually the whole answer. If there are no runs at all after a certain time, the cause is not an error in a module: look at scheduling, deactivation or credits.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Check whether Make disabled the scenario
&lt;/h3&gt;

&lt;p&gt;Make switches a scenario off when it ends with an error several runs in a row. You set the number in the scenario settings ("Errors before deactivation"), and Make's help center gives 3 as the default. Some cases skip the count: a scenario that starts with an instant trigger, such as a webhook, is deactivated after the first error, and fatal errors such as AccountValidationError, OperationsLimitExceededError and DataSizeLimitExceededError switch off scheduling immediately. Runs that end with a warning do not count. The account owner normally gets an email when it happens. Fix the cause of the error first, then switch the scenario on. If you only switch it on, it will fail and stop again.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Look at incomplete executions
&lt;/h3&gt;

&lt;p&gt;Open the Incomplete executions tab of the scenario. Runs that failed while Store incomplete executions is enabled in the scenario settings, or that hit a Retry error handler (called Break in older versions), wait here. Stored incomplete executions count toward your plan's storage. You can open each one, see the error, fix the problem and retry or delete it. This matters for two reasons: unresolved items can pile up unnoticed, and if Process data in order (sequential processing) is enabled, Make pauses new runs until all incomplete executions are resolved. If new data arrives but nothing is processed, check this tab.&lt;/p&gt;

&lt;p&gt;Statuses, automatic retries and manual resolve: &lt;a href="https://flowpaja.com/guides/make-incomplete-executions/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make incomplete executions&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Check the connections
&lt;/h3&gt;

&lt;p&gt;Go to the Connections page in Make and look for a warning on any connection used in the scenario. Google connections expire when you change your Google password, when access is revoked, or when you use your own Google OAuth app that is still in "Testing" status (Google can expire those tokens after about a week). Reauthorize the connection, then run the scenario once manually. For every Google-specific cause and fix, see &lt;a href="https://flowpaja.com/guides/make-google-connection-errors/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make.com Google connection errors&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Check credits
&lt;/h3&gt;

&lt;p&gt;Make counts usage in credits (older plans and docs say operations). On the organization's dashboard or usage page you can see how much of the monthly allowance is used. When credits run out, modules fail with OperationsLimitExceededError and Make switches off the scenario's scheduling straight away. After the allowance renews or you buy extra credits, check that the scenario is switched on again. If it ran out early, open the History of your busiest scenarios and look for one that runs every minute on a trigger that rarely has data. What uses credits and how to use fewer: &lt;a href="https://flowpaja.com/guides/make-credits-explained-save-credits/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make credits explained&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Check data store limits
&lt;/h3&gt;

&lt;p&gt;Open the Data stores page. Each store has a size, and your plan has a total storage limit. When it is full, writes fail with an error, and that can trigger the consecutive-error shutdown from step 3. Delete old records, add a cleanup step that removes records past a certain age, or raise your storage allowance.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Add alerts so you find out first
&lt;/h3&gt;

&lt;p&gt;For important scenarios, add an error handler route on the risky module that sends you an email or a Slack message with the scenario name and the error text. A silent failure is the expensive kind.&lt;/p&gt;

&lt;p&gt;Free cheat sheet&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which errors switch a scenario off straight away?&lt;/strong&gt; The free Make Error Cheat Sheet marks every error type that deactivates a scenario immediately, plus the first fix for each. Two printable pages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://flowpaja.com/guides/make-error-cheat-sheet/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Open the cheat sheet&lt;/a&gt;&lt;br&gt;
&lt;a href="https://flowpaja.com/guides/make-error-cheat-sheet/make-error-cheat-sheet.pdf?ref=jakelu-devto" rel="noopener noreferrer"&gt;Download the PDF&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Common errors and fixes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;"Token has been expired or revoked" or a 401 from Google.&lt;/strong&gt; The connection lost its authorization. Reauthorize it in Connections. If it keeps happening every week, you are probably on a custom Google app in Testing status, so publish the app or use the default Make connection if your use case allows it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OperationsLimitExceededError: the credit limit is reached.&lt;/strong&gt; Make treats this as a fatal error and switches off scheduling right away, without waiting for the consecutive-error count. Buy extra credits, upgrade or wait for renewal, then switch the scenario back on. Also find the scenario that used them up: a schedule of every minute on a Watch trigger that finds nothing still uses a credit on every check. Lowering the frequency is often enough.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A data store error mentioning storage or size.&lt;/strong&gt; The store or your total storage is full. Delete records first, then enable the scenario. Check the current limits for your plan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The scenario switched itself off after repeated errors.&lt;/strong&gt; One failing module, often a connection or a changed field in the source sheet, produced several errors in a row. The consecutive-errors setting did what it is meant to do. Fix the cause, run once manually and confirm success before enabling it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New data arrives but nothing runs, and there are no errors.&lt;/strong&gt; Check incomplete executions if Process data in order is enabled, and check that the webhook or trigger still points at the active scenario. A scenario that was duplicated may have a new webhook URL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Runs time out or end with "scenario execution time exceeded".&lt;/strong&gt; A single run took longer than the limit for your plan. Lower the number of items processed per run, or split the work across two scenarios. Make's pricing table lists 40 minutes on paid plans and 5 on the Free plan (checked 3 October 2026; Make's Help Center errors page says 45 and 10), and the interrupted run doesn't store an incomplete execution. Every limit and its fix: &lt;a href="https://flowpaja.com/guides/make-timeout-and-limit-errors/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make timeouts and limits&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Scenario was rejected: scenario is running."&lt;/strong&gt; Make's help center doesn't document this exact message. As worded, it says Make didn't start a new run because this scenario was already running. Open the scenario and wait for the current run to finish, or click &lt;strong&gt;Stop&lt;/strong&gt; (Make lets the module that is working finish its bundles, then stops the run), and start it again. Make interrupts any run after 40 minutes on paid plans (5 minutes on the Free plan), so if the message still appears after that, contact Make support.&lt;/p&gt;

&lt;p&gt;Quick reference: &lt;a href="https://flowpaja.com/guides/make-error-cheat-sheet/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make error cheat sheet&lt;/a&gt;, every common error type, HTTP code and app error on one page, with a free printable PDF.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't have a Make account yet?&lt;/strong&gt; You can build and test this scenario on Make's free plan.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Create a free Make account (opens Make in a new tab)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Affiliate link: Flowpaja may earn a commission at no extra cost to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;Does Make tell me when a scenario is disabled?&lt;/p&gt;

&lt;p&gt;Usually by email to the account owner, and in the scenario list. Check notification settings in your profile and organization so the email goes to someone who reads it.&lt;/p&gt;

&lt;p&gt;Will I lose the data from the runs that failed?&lt;/p&gt;

&lt;p&gt;Not necessarily. If incomplete executions were stored, you can retry them after fixing the cause. If storing was off, the data from a failed run is gone, though your source system may still hold it.&lt;/p&gt;

&lt;p&gt;Can I stop a scenario from being disabled?&lt;/p&gt;

&lt;p&gt;You can change the consecutive-errors setting, but a higher number only delays the shutdown, and it does not apply to instant triggers or fatal errors. Handling the error properly, with Retry, Skip or a notification route, is better than raising the limit.&lt;/p&gt;

&lt;p&gt;Is there a difference between "inactive" and "paused"?&lt;/p&gt;

&lt;p&gt;The labels can change between interface versions. Look at the toggle and the schedule, and use the History tab to confirm whether runs are happening.&lt;/p&gt;

&lt;p&gt;What should I save before re-enabling a stopped scenario?&lt;/p&gt;

&lt;p&gt;Save the last relevant run, failing module, input identity and error details. Inspect whether any destination actions already succeeded before the stop. Fix the earliest known cause and use a controlled input to confirm the intended result. Enabling the scenario again without this evidence can repeat the same failure or duplicate an action that already completed.&lt;/p&gt;

&lt;p&gt;How do I test a repaired instant-trigger scenario before returning it to service?&lt;/p&gt;

&lt;p&gt;Use a fictional payload that exercises the repaired boundary and inspect the final destination. Confirm the trigger is listening at the intended URL and that recovery behavior is deliberate. An instant-trigger scenario can deactivate after its first unhandled error, so inspect the run result and activation state before returning the operational sender to the workflow.&lt;/p&gt;

</description>
      <category>make</category>
      <category>automation</category>
      <category>errors</category>
      <category>nocode</category>
    </item>
    <item>
      <title>Make.com webhook not receiving data: how to fix it</title>
      <dc:creator>Flowpaja</dc:creator>
      <pubDate>Fri, 16 Oct 2026 17:13:56 +0000</pubDate>
      <link>https://dev.to/flowpaja/makecom-webhook-not-receiving-data-how-to-fix-it-24b7</link>
      <guid>https://dev.to/flowpaja/makecom-webhook-not-receiving-data-how-to-fix-it-24b7</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; When a Make.com custom webhook doesn't receive data, the sender is usually calling a different URL, the scenario is off, or Make is rejecting the request. Check the URL first, then open the webhook's &lt;strong&gt;Queue&lt;/strong&gt; and &lt;strong&gt;Logs&lt;/strong&gt; tabs to see whether requests arrive at all. A test request with &lt;code&gt;curl.exe&lt;/code&gt; shows which side the problem is on.&lt;/p&gt;

&lt;p&gt;This guide contains affiliate links, marked “affiliate link”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; everything in this guide works with plain Make.com and the apps it connects. At the end we mention our own Make templates and our Make scenario fix service on Fiverr. Module names, settings and limits were checked against &lt;a href="https://help.make.com/webhooks" rel="noopener noreferrer"&gt;Make's webhooks docs&lt;/a&gt; and &lt;a href="https://apps.make.com/gateway" rel="noopener noreferrer"&gt;Webhooks app docs&lt;/a&gt; in October 2026. Menus and limits change, so check them if something looks different.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Access to the scenario in Make.com and to &lt;strong&gt;Webhooks&lt;/strong&gt; in the left sidebar. No account yet? Create a free &lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Make&lt;/a&gt; account (affiliate link).&lt;/li&gt;
&lt;li&gt;Access to the sending app's webhook settings, and its delivery log if it has one&lt;/li&gt;
&lt;li&gt;On Windows: Command Prompt (&lt;code&gt;cmd&lt;/code&gt;). Windows 10 and 11 include &lt;code&gt;curl.exe&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ad disclosure: links marked "affiliate link" are ads. If you sign up or buy through them, Flowpaja may earn a commission at no extra cost to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Check the URL, character by character
&lt;/h2&gt;

&lt;p&gt;Most "not receiving" cases are a URL mismatch:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Copy errors.&lt;/strong&gt; A missing last character, a trailing space, or a pasted line break.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A different webhook.&lt;/strong&gt; Each scenario uses its own webhook. If you cloned or imported the scenario, or added a new webhook to the trigger, the URL changed, and the sender may still call the old one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The zone.&lt;/strong&gt; URLs include your zone, e.g. &lt;code&gt;https://hook.eu1.make.com/…&lt;/code&gt; or &lt;code&gt;https://hook.us1.make.com/…&lt;/code&gt;. Never retype or edit the URL.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Copy the URL from the Custom webhook module and paste it into the sender again rather than comparing by eye.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Check that the scenario is on, and how it's scheduled
&lt;/h2&gt;

&lt;p&gt;Check that the scenario is &lt;strong&gt;active&lt;/strong&gt; and set to run &lt;strong&gt;Immediately&lt;/strong&gt; (the default for webhooks). On a schedule, requests wait in the queue, and each run processes only up to the webhook's &lt;strong&gt;Maximum number of results&lt;/strong&gt; (default 2).&lt;/p&gt;

&lt;p&gt;Also check whether Make switched the scenario off. If a run of a webhook-triggered scenario set to run immediately ends in an error, Make deactivates it at once; &lt;strong&gt;Errors before deactivation&lt;/strong&gt; (default 3) doesn't apply. See &lt;a href="https://flowpaja.com/guides/make-scenario-stopped-or-disabled/?ref=jakelu-devto" rel="noopener noreferrer"&gt;why a Make scenario stopped running&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Look at the webhook queue
&lt;/h2&gt;

&lt;p&gt;In the left sidebar, click &lt;strong&gt;Webhooks&lt;/strong&gt;, select your webhook and open the &lt;strong&gt;Queue&lt;/strong&gt; tab. Click &lt;strong&gt;Detail&lt;/strong&gt; on an item to see its parsed data.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Items waiting, nothing running:&lt;/strong&gt; requests reach Make, but the scenario is off, scheduled, or has &lt;strong&gt;Process data in order&lt;/strong&gt; on and is waiting for an unresolved incomplete execution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Queue empty:&lt;/strong&gt; requests aren't arriving, or Make rejected them. Continue with step 4.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The queue holds 667 items per 10,000 monthly credits in your plan, up to 10,000. When it's full, Make answers &lt;code&gt;400&lt;/code&gt; with &lt;code&gt;Queue is full&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Check the webhook logs
&lt;/h2&gt;

&lt;p&gt;On the same page, open the &lt;strong&gt;Logs&lt;/strong&gt; tab. &lt;strong&gt;Detail&lt;/strong&gt; shows the full request (method, headers, query, body), Make's response status and the parsed items. Logs are kept for 3 days (30 on Enterprise).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Request in the logs:&lt;/strong&gt; compare the status and parsed items with what you expected (steps 5 and 8).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nothing in the logs:&lt;/strong&gt; the request never reached this webhook. Recheck step 1 and the sender's delivery log.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 5: Check the webhook's settings
&lt;/h2&gt;

&lt;p&gt;On the Webhooks page, open the webhook's three-dot menu → &lt;strong&gt;Edit&lt;/strong&gt;. These settings can block or reshape requests:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;API Key authentication:&lt;/strong&gt; the sender must send a key in the &lt;code&gt;x-make-apikey&lt;/code&gt; header.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IP restrictions:&lt;/strong&gt; only listed IPs are processed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data structure:&lt;/strong&gt; requests that fail validation get &lt;code&gt;400&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSON pass-through:&lt;/strong&gt; the JSON body arrives as one text string, not separate fields. Switch it off, or parse the text with &lt;a href="https://flowpaja.com/guides/make-webhook-json/#parse-json?ref=jakelu-devto" rel="noopener noreferrer"&gt;Parse JSON&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Payloads can be up to 5 MB. Above 300 requests per 10 seconds, Make answers &lt;code&gt;429&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Let Make learn the data structure
&lt;/h2&gt;

&lt;p&gt;A new webhook doesn't know which fields to expect. Click &lt;strong&gt;Run once&lt;/strong&gt; so the module listens, send one realistic request (step 7), and check that the fields appear in its output.&lt;/p&gt;

&lt;p&gt;If the sender later adds or renames fields, click &lt;strong&gt;Detect new values&lt;/strong&gt; in the module and send a new sample. Otherwise the new fields don't show up in the mapping panel.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Send a test request with curl.exe
&lt;/h2&gt;

&lt;p&gt;If your own request arrives and the sender's don't, the problem is on the sender's side. A test runs the scenario like a real request, so use test data.&lt;/p&gt;

&lt;p&gt;Quickest check: paste the URL into a browser; a working webhook shows &lt;code&gt;Accepted&lt;/code&gt;. For a JSON POST, run this in &lt;strong&gt;Command Prompt&lt;/strong&gt; (one line):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl.exe &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="s2"&gt;"https://hook.eu1.make.com/YOUR-WEBHOOK-ID"&lt;/span&gt; &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"{&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;Test User&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;email&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;test@example.com&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;}"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In &lt;code&gt;cmd&lt;/code&gt;, wrap the JSON in double quotes and write inner quotes as &lt;code&gt;\"&lt;/code&gt;. Expect &lt;code&gt;Accepted&lt;/code&gt; (status 200) unless your scenario has a Webhook response module.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PowerShell note:&lt;/strong&gt; in Windows PowerShell 5.1, &lt;code&gt;curl&lt;/code&gt; is an alias for &lt;code&gt;Invoke-WebRequest&lt;/code&gt;, which takes different parameters. &lt;code&gt;curl.exe&lt;/code&gt; calls the real curl, but PowerShell quotes differently, so the line above fails there unchanged. Use PowerShell's own command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$body&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;@{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Test User"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;email&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"test@example.com"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ConvertTo-Json&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nx"&gt;Invoke-RestMethod&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Method&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Post&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Uri&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://hook.eu1.make.com/YOUR-WEBHOOK-ID"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ContentType&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"application/json"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Body&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$body&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On macOS or Linux: &lt;code&gt;curl -X POST "URL" -H "Content-Type: application/json" -d '{"name":"Test User"}'&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 8: Check what the sender actually sends
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Content type.&lt;/strong&gt; Make documents query strings, form data (&lt;code&gt;application/x-www-form-urlencoded&lt;/code&gt;, &lt;code&gt;multipart/form-data&lt;/code&gt;) and JSON with &lt;code&gt;Content-Type: application/json&lt;/code&gt;. For anything else, compare the body and parsed items in the Logs tab.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Different format from your test.&lt;/strong&gt; If the sender posts form data but you taught Make with JSON, fields differ. Use &lt;strong&gt;Detect new values&lt;/strong&gt; with a real request.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Method.&lt;/strong&gt; Some tools send &lt;code&gt;GET&lt;/code&gt;; the data is then in the query string.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Events.&lt;/strong&gt; If the event you expect isn't ticked in the sender's webhook settings, nothing is sent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sender errors.&lt;/strong&gt; Check the sender's delivery log for timeouts or error responses.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 9: Check for a deactivated webhook
&lt;/h2&gt;

&lt;p&gt;Make deactivates a webhook that isn't connected to any scenario for more than 5 days (120 hours); its URL then answers &lt;code&gt;410 Gone&lt;/code&gt;. This typically follows a deleted or rebuilt scenario. Check the status on the Webhooks page; if it's deactivated, create a new webhook and give the sender the new URL.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common errors and fixes
&lt;/h2&gt;

&lt;p&gt;For errors outside webhooks, see &lt;a href="https://flowpaja.com/guides/fix-common-make-scenario-errors/?ref=jakelu-devto" rel="noopener noreferrer"&gt;10 common Make scenario errors&lt;/a&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What you see&lt;/th&gt;
&lt;th&gt;Likely cause&lt;/th&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Module waiting for data&lt;/td&gt;
&lt;td&gt;No request reached that URL&lt;/td&gt;
&lt;td&gt;Test (step 7); recheck the URL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;410 Gone&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;No scenario attached for over 5 days&lt;/td&gt;
&lt;td&gt;New webhook; update the sender&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;400 Queue is full&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Queue limit reached&lt;/td&gt;
&lt;td&gt;Process or delete queued items&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;400&lt;/code&gt;, data structure attached&lt;/td&gt;
&lt;td&gt;Failed validation&lt;/td&gt;
&lt;td&gt;Fix the payload or structure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;429&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Over 300 requests in 10 seconds&lt;/td&gt;
&lt;td&gt;Slow down the sender&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queue fills, nothing runs&lt;/td&gt;
&lt;td&gt;Scenario off, scheduled or waiting&lt;/td&gt;
&lt;td&gt;Fix and switch on&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fields missing in mapping&lt;/td&gt;
&lt;td&gt;Outdated structure&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Detect new values&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;curl&lt;/code&gt; fails in PowerShell&lt;/td&gt;
&lt;td&gt;Alias for Invoke-WebRequest&lt;/td&gt;
&lt;td&gt;Invoke-RestMethod, or &lt;code&gt;cmd&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;One text value, no fields&lt;/td&gt;
&lt;td&gt;JSON pass-through or content type&lt;/td&gt;
&lt;td&gt;Turn it off / send JSON&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;New to webhooks? Start with the &lt;a href="https://flowpaja.com/guides/make-webhook-tutorial/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make webhook tutorial&lt;/a&gt;, or read &lt;a href="https://flowpaja.com/guides/make-com-for-beginners/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make.com for beginners&lt;/a&gt; for the basics.&lt;/p&gt;

&lt;p&gt;Requests arriving twice? Our free &lt;a href="https://flowpaja.com/templates/webhook-to-sheets-dedupe-free/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Webhook to Google Sheets with duplicate check&lt;/a&gt; template adds one row per request_id and skips repeats.&lt;/p&gt;

&lt;p&gt;Quick reference: &lt;a href="https://flowpaja.com/guides/make-error-cheat-sheet/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make error cheat sheet&lt;/a&gt;, every common error type, HTTP code and app error on one page, with a free printable PDF.&lt;/p&gt;

&lt;p&gt;Building the webhook from scratch? See &lt;a href="https://flowpaja.com/guides/receive-webhook-data-in-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;receive webhook data in Google Sheets&lt;/a&gt;. Building form → Slack instead? See &lt;a href="https://flowpaja.com/guides/google-form-responses-to-slack-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Google Form responses to Slack&lt;/a&gt; or the free &lt;a href="https://flowpaja.com/templates/form-to-slack-free/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Form to Slack template&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't have a Make account yet?&lt;/strong&gt; You can build and test this scenario on Make's free plan.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Create a free Make account (opens Make in a new tab)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Affiliate link: Flowpaja may earn a commission at no extra cost to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;Why does my Make webhook say it's waiting for data?&lt;/p&gt;

&lt;p&gt;No request has reached that exact URL since you clicked Run once. Send a test with curl.exe or trigger the sending app, and check the URL.&lt;/p&gt;

&lt;p&gt;Does a Make webhook receive data while the scenario is off?&lt;/p&gt;

&lt;p&gt;Yes. Requests wait in the webhook's queue, up to its limit, but don't run the scenario while it's off. Check the Queue tab before switching it back on.&lt;/p&gt;

&lt;p&gt;Why doesn't curl work in PowerShell?&lt;/p&gt;

&lt;p&gt;In Windows PowerShell 5.1, curl is an alias for Invoke-WebRequest, which uses different parameters. Use Invoke-RestMethod, or run curl.exe from Command Prompt.&lt;/p&gt;

&lt;p&gt;Do I need to update the data structure after changing the form?&lt;/p&gt;

&lt;p&gt;Yes, if fields were added or renamed. Click Detect new values in the Custom webhook module and send a new sample.&lt;/p&gt;

&lt;p&gt;Why did my webhook stop working after a few days?&lt;/p&gt;

&lt;p&gt;Make deactivates a webhook that isn't connected to any scenario for more than 5 days (410 Gone), or an error switched the scenario off. Check the webhook's status and the scenario's History.&lt;/p&gt;

</description>
      <category>make</category>
      <category>webhooks</category>
      <category>automation</category>
      <category>nocode</category>
    </item>
    <item>
      <title>20 Make.com automation examples for small businesses</title>
      <dc:creator>Flowpaja</dc:creator>
      <pubDate>Fri, 16 Oct 2026 11:16:28 +0000</pubDate>
      <link>https://dev.to/flowpaja/20-makecom-automation-examples-for-small-businesses-48l3</link>
      <guid>https://dev.to/flowpaja/20-makecom-automation-examples-for-small-businesses-48l3</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; The Make automations that pay off first in a small business are the boring ones. Send form leads to your CRM and Slack, chase unpaid invoices, draft quote follow-ups, log orders to a sheet, file email attachments and send a daily summary. Below are 20 examples Make can run today. Each one names the trigger and modules, gives a rough credit count per run and links to a step-by-step Flowpaja guide or a ready-made template, so you can build it rather than just read about it. Most run on Make's Free plan at low volume.&lt;/p&gt;

&lt;p&gt;This guide contains affiliate links, marked “affiliate link”.&lt;/p&gt;

&lt;h2&gt;
  
  
  All 20 examples at a glance
&lt;/h2&gt;

&lt;p&gt;Difficulty is our rough rating: &lt;strong&gt;Easy&lt;/strong&gt; means 2–3 modules and no data juggling, &lt;strong&gt;Medium&lt;/strong&gt; adds a search, router or duplicate check, and &lt;strong&gt;Advanced&lt;/strong&gt; involves an extra account setup, AI or several linked records. "Check" means a scheduled trigger run, which uses a credit even when nothing is new.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;th&gt;Apps&lt;/th&gt;
&lt;th&gt;Difficulty&lt;/th&gt;
&lt;th&gt;Est. credits per run&lt;/th&gt;
&lt;th&gt;Build it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;New form response → Slack message&lt;/td&gt;
&lt;td&gt;Google Forms/Sheets, Slack&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;1 per check + 1 per response&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/templates/form-to-slack-free/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Free template&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Form lead → HubSpot contact + hot-lead Slack alert&lt;/td&gt;
&lt;td&gt;Sheets or Tally or Typeform, HubSpot, Slack&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;About 3 per lead (+1 per check)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/google-forms-to-hubspot-and-slack-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Form lead → Pipedrive lead without duplicate people&lt;/td&gt;
&lt;td&gt;Sheets or form app, Pipedrive&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;4–5 per lead&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/pipedrive-make-integration/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Typeform or Tally response → Google Sheets row&lt;/td&gt;
&lt;td&gt;Typeform or Tally, Sheets&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;About 3 per response&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/tally-to-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Facebook lead ad → sheet row + email&lt;/td&gt;
&lt;td&gt;Facebook Lead Ads, Sheets, Gmail&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;3–4 per lead&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/make-instagram-facebook-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Polite invoice payment reminders&lt;/td&gt;
&lt;td&gt;Sheets, Gmail&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;1 per run + 2–3 per reminder&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/invoice-payment-reminders-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Daily overdue-invoice digest to yourself&lt;/td&gt;
&lt;td&gt;Sheets, Gmail&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;1–2 per day, about 4 with overdue invoices&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/templates/free-overdue-digest/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Free template&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Create invoices and record payments in QuickBooks or Xero&lt;/td&gt;
&lt;td&gt;Sheets, QuickBooks or Xero&lt;/td&gt;
&lt;td&gt;Advanced&lt;/td&gt;
&lt;td&gt;About 6–8 per invoice&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/make-quickbooks-xero-invoices/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;Quote follow-up drafts after 7 days&lt;/td&gt;
&lt;td&gt;Sheets, Gmail&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;1–2 per run + 2–4 per follow-up&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/templates/quote-follow-up-free/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Free template&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;Send an email when a row is ready&lt;/td&gt;
&lt;td&gt;Sheets, Gmail&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;1 per run + about 3 per email&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/send-gmail-email-new-row-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;Shopify order → sheet row + Slack alert&lt;/td&gt;
&lt;td&gt;Shopify, Sheets, Slack&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;About 4 per order, more per line item&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/shopify-orders-to-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;WhatsApp order confirmations&lt;/td&gt;
&lt;td&gt;Sheets, WhatsApp Business Cloud&lt;/td&gt;
&lt;td&gt;Advanced&lt;/td&gt;
&lt;td&gt;1 per check + 2 per order&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/make-whatsapp-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;Save Gmail attachments to Google Drive folders&lt;/td&gt;
&lt;td&gt;Gmail, Google Drive&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;1 per check + about 4–5 per email + 1 per file&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/save-gmail-attachments-to-google-drive-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;Webhook data → sheet, without duplicate rows&lt;/td&gt;
&lt;td&gt;Webhooks, Sheets&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;About 3 per new row&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/templates/webhook-to-sheets-dedupe-free/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Free template&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;Booking form → Google Calendar event&lt;/td&gt;
&lt;td&gt;Forms/Sheets, Google Calendar&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;About 5–6 per response (+1 per check)&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/create-google-calendar-events-from-google-forms-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;Daily summary email from a sheet&lt;/td&gt;
&lt;td&gt;Sheets, Gmail&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;About 3 per day&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/send-daily-summary-email-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;Form or payment alerts in Discord&lt;/td&gt;
&lt;td&gt;Webhooks or Stripe, Discord&lt;/td&gt;
&lt;td&gt;Easy&lt;/td&gt;
&lt;td&gt;2 per submission&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/make-discord-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;Sort incoming email with AI labels&lt;/td&gt;
&lt;td&gt;Gmail, OpenAI (or Claude/Gemini)&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;1 per check + 2 per email, plus the AI provider's token bill&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/make-chatgpt-openai-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;Support-email triage with a Make AI agent&lt;/td&gt;
&lt;td&gt;Gmail, Make AI Agent, Sheets, Slack&lt;/td&gt;
&lt;td&gt;Advanced&lt;/td&gt;
&lt;td&gt;Varies with tokens and tools used&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/make-ai-agents-guide/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;Ask Claude who owes you money (MCP)&lt;/td&gt;
&lt;td&gt;Make MCP server, Sheets&lt;/td&gt;
&lt;td&gt;Advanced&lt;/td&gt;
&lt;td&gt;About 2–3 per question&lt;/td&gt;
&lt;td&gt;&lt;a href="https://flowpaja.com/guides/make-mcp-server/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Guide&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Credits are our estimates for one run, counted at about 1 credit per module action. Routers, filters and error handlers use none. Check the real count in your scenario's History.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start with the existing setup reference&lt;/strong&gt; Start with this live narrow pattern and read its own setup, test scope and limits before adapting it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://flowpaja.com/templates/lead-capture-sheets-slack-dedupe-free/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Open the free reference&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How we count the credits
&lt;/h2&gt;

&lt;p&gt;Make bills in credits. Make's pricing page says each module action uses credits, whether it reads, searches, creates, updates, transforms, aggregates or iterates data, and that routers and error handlers don't. Filters aren't modules, so they're free too. For the standard modules in these examples that works out at about 1 credit per module, per bundle (item) it processes. Two things push the number up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scheduled triggers.&lt;/strong&gt; A "Watch" or "Search Rows" trigger on a schedule uses a credit on every check, even when nothing is new. Checking every 15 minutes is up to 96 checks a day, which is about 2,900 a month on its own. An instant trigger (a webhook, Tally, Typeform, Facebook Lead Ads New Lead, Shopify Watch events) runs only when data arrives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Many items per run.&lt;/strong&gt; If a search returns 10 rows, every module after it runs 10 times. Our &lt;a href="https://flowpaja.com/guides/make-credits-explained-save-credits/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make credits guide&lt;/a&gt; shows how to estimate a month, and the &lt;a href="https://flowpaja.com/tools/make-credits-calculator/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make credits calculator&lt;/a&gt; does the sum for you.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI modules can add token-based credits on top, depending on how you connect them. Each example below says how.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sales and leads
&lt;/h2&gt;

&lt;p&gt;Lead handling is where most small businesses start: a form fills up, and someone has to copy the details into a CRM, tell the team and reply. Make does all three in one scenario.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. New form response → Slack message
&lt;/h3&gt;

&lt;p&gt;Post every Google Form response to a Slack channel, so nobody has to keep the response sheet open.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; any team that takes enquiries, bookings or internal requests through Google Forms and talks in Slack.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; Google Sheets &lt;em&gt;Watch New Rows&lt;/em&gt; on the form's response sheet → Slack &lt;em&gt;Send a Message&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; 1 per scheduled check (even with no new responses) + 1 per response posted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free. On Free, check hourly rather than every 15 minutes so the checks don't eat your 1,000 credits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; the trigger runs but finds nothing, because it starts "from now on" (&lt;a href="https://flowpaja.com/guides/make-sheets-watch-rows-not-triggering/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Watch Rows not triggering&lt;/a&gt;), or Slack answers &lt;em&gt;channel_not_found&lt;/em&gt; (&lt;a href="https://flowpaja.com/guides/make-slack-channel-not-found/?ref=jakelu-devto" rel="noopener noreferrer"&gt;fix it here&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/templates/form-to-slack-free/?ref=jakelu-devto" rel="noopener noreferrer"&gt;free Form responses to Slack template&lt;/a&gt; · &lt;a href="https://flowpaja.com/guides/google-form-responses-to-slack-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;step-by-step guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Form lead → HubSpot contact + hot-lead Slack alert
&lt;/h3&gt;

&lt;p&gt;Create or update the contact in HubSpot and ping Slack only when the lead looks hot, for example a large budget.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; service businesses using HubSpot's free CRM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; Google Sheets &lt;em&gt;Watch New Rows&lt;/em&gt; → HubSpot CRM &lt;em&gt;Search for Contacts&lt;/em&gt; (by email) → Router → &lt;em&gt;Create a Contact&lt;/em&gt; or &lt;em&gt;Update a Contact&lt;/em&gt; → Router (hot lead?) → Slack &lt;em&gt;Send a Message&lt;/em&gt;. With Tally, use Tally &lt;em&gt;Watch New Responses&lt;/em&gt; → HubSpot CRM &lt;em&gt;Create or Update a Contact&lt;/em&gt; instead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; about 3 per lead (search, create or update, Slack) + 1 per scheduled check. The Tally version is instant: about 3 per submission, with nothing spent on empty checks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free at low volume. If you use Typeform, its native HubSpot integration may be enough without Make; the &lt;a href="https://flowpaja.com/guides/typeform-to-hubspot-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Typeform to HubSpot guide&lt;/a&gt; explains when to use which.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; a plain "create" fails when someone submits twice, because HubSpot rejects a second contact with the same email. Dropdown properties also need HubSpot's internal value, not the visible label.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/google-forms-to-hubspot-and-slack-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Google Forms to HubSpot and Slack&lt;/a&gt; · &lt;a href="https://flowpaja.com/guides/tally-to-hubspot-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Tally to HubSpot&lt;/a&gt; · &lt;a href="https://flowpaja.com/templates/lead-router/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Lead Router template ($19)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Form lead → Pipedrive lead without duplicate people
&lt;/h3&gt;

&lt;p&gt;Pipedrive's own automations only react to records already inside Pipedrive, so leads from a Google Form or website form need an outside tool.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; small sales teams on Pipedrive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; your form trigger → Pipedrive &lt;em&gt;Search Persons&lt;/em&gt; (by email) → &lt;em&gt;Create a Person&lt;/em&gt; (only if none found) → &lt;em&gt;Create a Lead&lt;/em&gt; → &lt;em&gt;Create a Note&lt;/em&gt; with the answers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; 4 per lead for a known person, 5 for a new one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free at low volume.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; two submissions seconds apart can both create the person. Turn on &lt;em&gt;Process data in order&lt;/em&gt; in the scenario settings, so each run finishes before the next starts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/pipedrive-make-integration/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Pipedrive and Make guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Typeform or Tally response → Google Sheets row
&lt;/h3&gt;

&lt;p&gt;Keep one clean sheet of every response, ready for reports or the next automation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; anyone collecting enquiries, orders or applications in Typeform or Tally.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; Typeform &lt;em&gt;Watch Responses&lt;/em&gt; or Tally &lt;em&gt;Watch New Responses&lt;/em&gt; (use Typeform's instant version; Tally's is instant) → Google Sheets &lt;em&gt;Search Rows&lt;/em&gt; (by response ID) → Router → &lt;em&gt;Add a Row&lt;/em&gt; only if it's new.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; about 3 per response (trigger, search, add).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free. At 3 credits a response, 1,000 credits cover roughly 330 responses a month if nothing else uses them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; a new question doesn't appear in the mapping panel until Make sees a fresh response, and multiple-choice answers show as &lt;em&gt;[object Object]&lt;/em&gt; until you map the label. If nothing arrives at all, see &lt;a href="https://flowpaja.com/guides/make-webhook-not-receiving-data/?ref=jakelu-devto" rel="noopener noreferrer"&gt;webhook not receiving data&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/tally-to-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Tally to Google Sheets&lt;/a&gt; · &lt;a href="https://flowpaja.com/guides/send-typeform-responses-to-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Typeform to Google Sheets&lt;/a&gt; · &lt;a href="https://flowpaja.com/guides/typeform-to-make-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Typeform to Sheets, Slack and Gmail&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Facebook lead ad → sheet row + email
&lt;/h3&gt;

&lt;p&gt;Get leads out of Meta's Lead Ads into a sheet and in front of you while they're still warm.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; local businesses running Facebook or Instagram lead ads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; Facebook Lead Ads &lt;em&gt;New Lead&lt;/em&gt; (instant) → Google Sheets &lt;em&gt;Search Rows&lt;/em&gt; (lead ID, optional duplicate check) → &lt;em&gt;Add a Row&lt;/em&gt; → Gmail &lt;em&gt;Send an email&lt;/em&gt; to you, or &lt;em&gt;Create a draft email&lt;/em&gt; to the lead for review.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; about 3 per lead, or 4 with the duplicate check.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free at low volume.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; &lt;em&gt;New Lead&lt;/em&gt; never fires because Make lacks Leads Access, the Page isn't ticked in Business Integrations, or the app isn't subscribed to the Page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/make-instagram-facebook-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Instagram and Facebook automation guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Invoices and getting paid
&lt;/h2&gt;

&lt;p&gt;These keep money coming in without you rereading the invoice list every morning. All three start from a Google Sheet, so you can keep invoicing the way you do now.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Polite invoice payment reminders
&lt;/h3&gt;

&lt;p&gt;Email clients a friendly reminder a few days after the due date, then a firmer one and a final one, and record what was sent.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; freelancers and small firms that track invoices in a sheet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; daily schedule → Google Sheets &lt;em&gt;Search Rows&lt;/em&gt; (unpaid) → filter (reminder due, fewer than three sent) → &lt;em&gt;Update a Row&lt;/em&gt; (reminder count, date, recorded before sending) → Router (which reminder?) → Gmail &lt;em&gt;Send an email&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; 1 per daily run + 2 per reminder (3 if you also log each email).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free. A daily run is about 30 credits a month plus the reminders.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; dates arrive as text in another format, so the "due" filter never passes (&lt;a href="https://flowpaja.com/guides/google-sheets-date-errors-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;date errors in Make&lt;/a&gt;). It also can't know a client paid until you mark the row.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/invoice-payment-reminders-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;step-by-step guide&lt;/a&gt; · &lt;a href="https://flowpaja.com/templates/invoice-reminder/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Polite Invoice Reminder template ($19)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7. Daily overdue-invoice digest to yourself
&lt;/h3&gt;

&lt;p&gt;One email each morning listing what's overdue, sent only to you. Nothing goes to clients, which makes it a safe first scenario.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; owners who want a nudge before they chase anyone.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; daily schedule → Google Sheets &lt;em&gt;Search Rows&lt;/em&gt; (overdue) → Tools &lt;em&gt;Text aggregator&lt;/em&gt; → JSON &lt;em&gt;Parse JSON&lt;/em&gt; (list and totals) → Gmail &lt;em&gt;Send an email&lt;/em&gt;, the four modules of the free template.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; about 4 on days with overdue invoices, 1–2 on other days, so roughly 30–120 a month.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; Search Rows returns nothing because of a filter or header mismatch (&lt;a href="https://flowpaja.com/guides/make-google-sheets-search-rows-empty/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Search Rows empty&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/templates/free-overdue-digest/?ref=jakelu-devto" rel="noopener noreferrer"&gt;free Overdue Invoice Digest template&lt;/a&gt; · &lt;a href="https://flowpaja.com/guides/daily-overdue-invoice-email-google-sheets/?ref=jakelu-devto" rel="noopener noreferrer"&gt;step-by-step guide&lt;/a&gt;. No Make at all? &lt;a href="https://flowpaja.com/guides/highlight-overdue-invoices-google-sheets/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Highlight overdue invoices with Sheets formulas&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  8. Create invoices and record payments in QuickBooks or Xero
&lt;/h3&gt;

&lt;p&gt;Turn rows in a sheet (or Stripe payments) into invoices in your accounting tool, and write the paid status back.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; businesses that already use QuickBooks Online or Xero.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; Google Sheets &lt;em&gt;Search Rows&lt;/em&gt; → QuickBooks &lt;em&gt;Search for Customers&lt;/em&gt; or Xero &lt;em&gt;Search for Contacts&lt;/em&gt; → &lt;em&gt;Create a Customer&lt;/em&gt; / &lt;em&gt;Create a Contact&lt;/em&gt; if missing → &lt;em&gt;Create an Invoice&lt;/em&gt;. For payments: &lt;em&gt;Create a Payment&lt;/em&gt;, then update the sheet. Stripe &lt;em&gt;Watch Events&lt;/em&gt; can start it instead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; about 6–8 per invoice in our worked example, including the aggregator that checks the search result.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free to test. Check what your accounting plan allows through its API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; a new customer is created every time, because a router after a zero-result search never takes the "found" route. The fix is an aggregator and a &lt;em&gt;length()&lt;/em&gt; check (&lt;a href="https://flowpaja.com/guides/make-iterator-vs-aggregator/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Iterator vs Aggregator&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/make-quickbooks-xero-invoices/?ref=jakelu-devto" rel="noopener noreferrer"&gt;QuickBooks and Xero invoices guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quotes and follow-ups
&lt;/h2&gt;

&lt;h3&gt;
  
  
  9. Quote follow-up drafts after 7 days
&lt;/h3&gt;

&lt;p&gt;Find quotes that have had no answer for a week and put a follow-up draft in your Gmail. You read and send it yourself.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; trades, agencies and consultants who send quotes and forget to chase them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; daily schedule → Google Sheets &lt;em&gt;Search Rows&lt;/em&gt; (sent, no reply, 7+ days) → Gmail &lt;em&gt;Create a draft email&lt;/em&gt; → &lt;em&gt;Update a Row&lt;/em&gt; (follow-up drafted).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; the free template uses 1 per run + 2 per draft (roughly 30–60 a month). The fuller guide build uses 2 per run + about 4 per follow-up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; Update a Row fails without a row number (&lt;a href="https://flowpaja.com/guides/make-google-sheets-missing-row-number/?ref=jakelu-devto" rel="noopener noreferrer"&gt;missing row number&lt;/a&gt;). Personal Gmail connections also need re-authorizing about every six months, according to Make's Gmail docs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/templates/quote-follow-up-free/?ref=jakelu-devto" rel="noopener noreferrer"&gt;free One quote follow-up draft template&lt;/a&gt; · &lt;a href="https://flowpaja.com/guides/automate-quote-follow-up-emails-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;step-by-step guide&lt;/a&gt; · &lt;a href="https://flowpaja.com/templates/quote-follow-up/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Quote Follow-Up Assistant ($19)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  10. Send an email when a row is ready
&lt;/h3&gt;

&lt;p&gt;Send a welcome, confirmation or "your order is ready" email when a row reaches a certain status, exactly once.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; anyone running a process from a shared sheet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; schedule → Google Sheets &lt;em&gt;Search Rows&lt;/em&gt; (ready, not yet emailed) → &lt;em&gt;Update a Row&lt;/em&gt; (mark "sending") → Gmail &lt;em&gt;Send an email&lt;/em&gt; → &lt;em&gt;Update a Row&lt;/em&gt; (sent). &lt;em&gt;Watch New Rows&lt;/em&gt; also works for brand-new rows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; 1 per run + about 3 per email, counted from the modules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; Gmail returns "Invalid to header" when the cell has a trailing space, a line break or two addresses. Wrapping the field in &lt;em&gt;trim()&lt;/em&gt; fixes most cases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/send-gmail-email-new-row-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Gmail email for a new row guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Orders and customers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  11. Shopify order → sheet row + Slack alert
&lt;/h3&gt;

&lt;p&gt;Log every order to a sheet for reporting or fulfilment and tell the team in Slack.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; small Shopify stores.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; Shopify &lt;em&gt;Watch events&lt;/em&gt; (instant) or &lt;em&gt;Watch orders&lt;/em&gt; (scheduled) → Google Sheets &lt;em&gt;Search Rows&lt;/em&gt; (order ID) → &lt;em&gt;Add a Row&lt;/em&gt; → Slack &lt;em&gt;Send a Message&lt;/em&gt;. For one row per product, add an Iterator; for large orders, an Array aggregator and &lt;em&gt;Bulk Add Rows (Advanced)&lt;/em&gt; write once per order.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; about 4 per order with the instant trigger, counted from the modules. One row per line item adds credits per item, and the scheduled trigger adds 1 per check.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free for a quiet store. Check your volume with the &lt;a href="https://flowpaja.com/tools/make-credits-calculator/?ref=jakelu-devto" rel="noopener noreferrer"&gt;credits calculator&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; duplicate rows from webhook retries or re-runs. Search before you add, and remember that an empty search still passes one empty bundle on.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/shopify-orders-to-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Shopify orders to Google Sheets guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  12. WhatsApp order confirmations
&lt;/h3&gt;

&lt;p&gt;When an order is marked confirmed in your sheet, send the customer an approved WhatsApp template message.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; shops and service businesses whose customers prefer WhatsApp.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; schedule → Google Sheets &lt;em&gt;Search Rows&lt;/em&gt; (confirmed, not yet sent) → filter → WhatsApp Business Cloud &lt;em&gt;Send a Template Message&lt;/em&gt; → &lt;em&gt;Update a Row&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; 1 per check + 2 per order, so an hourly check that finds 3 orders uses 7.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Make's Free plan is enough to test. You also need a Meta business setup and approved message templates, and Meta may charge for messages, so check Meta's current pricing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; the module shows success but nothing arrives. Usually it's a free-form message outside the 24-hour window, a free tier used up with no payment method, or a recipient who hasn't opted in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/make-whatsapp-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;WhatsApp automation guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Admin and back office
&lt;/h2&gt;

&lt;h3&gt;
  
  
  13. Save Gmail attachments to Google Drive folders
&lt;/h3&gt;

&lt;p&gt;File invoices, receipts and supplier documents from email into one Drive folder per month, automatically.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; anyone whose bookkeeper asks for "all the receipts" every month.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; Gmail &lt;em&gt;Watch emails&lt;/em&gt; (filter by sender, label or "has attachment" in the trigger) → Google Drive &lt;em&gt;Search for Files/Folders&lt;/em&gt; (month folder) → Array aggregator → Router → &lt;em&gt;Create a Folder&lt;/em&gt; if missing → &lt;em&gt;Search for Files/Folders&lt;/em&gt; again (folder ID) → Iterator over the attachments → filter (skip signature images) → &lt;em&gt;Upload a File&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; 1 per scheduled check, then about 4 per email (two folder searches, the aggregator and the Iterator), 5 when it creates the month's folder, plus 1 per uploaded file. Counted from the modules. Emails filtered out in the trigger cost nothing further.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free for small volumes. The Free plan's 5 MB file size limit can block larger attachments; paid plans allow bigger files (make.com/en/pricing).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; files upload but won't open, or are 0 bytes, because the Data field is mapped to the whole attachments array instead of the current item (&lt;a href="https://flowpaja.com/guides/make-iterator-vs-aggregator/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Iterator vs Aggregator&lt;/a&gt;). Signature images also pile up unless you filter by file type.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/save-gmail-attachments-to-google-drive-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Gmail attachments to Google Drive guide&lt;/a&gt;. To read the saved PDFs or create your own: &lt;a href="https://flowpaja.com/guides/make-pdf-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;PDF automation in Make&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  14. Webhook data → sheet, without duplicate rows
&lt;/h3&gt;

&lt;p&gt;Catch data from your website, a booking tool or any app that can send a webhook, and add it to a sheet once, even when the sender retries.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; anyone whose tool has a "webhook" setting but no Make app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; Webhooks &lt;em&gt;Custom webhook&lt;/em&gt; (instant) → Google Sheets &lt;em&gt;Search Rows&lt;/em&gt; (by ID) → filter → &lt;em&gt;Add a Row&lt;/em&gt;. Add a &lt;em&gt;Webhook response&lt;/em&gt; only if your sender expects a specific reply (one more credit).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; 3 per new row and 2 per skipped duplicate, measured in our template test. No requests means no credits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free. The template uses no paid-only features.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; fields don't appear in the mapping panel because Make learned the structure from an empty request. Click &lt;em&gt;Detect new values&lt;/em&gt; in the Custom webhook module and send a full sample. If requests never arrive, see &lt;a href="https://flowpaja.com/guides/make-webhook-not-receiving-data/?ref=jakelu-devto" rel="noopener noreferrer"&gt;webhook not receiving data&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/templates/webhook-to-sheets-dedupe-free/?ref=jakelu-devto" rel="noopener noreferrer"&gt;free Webhook to Sheets with duplicate check template&lt;/a&gt; · &lt;a href="https://flowpaja.com/guides/receive-webhook-data-in-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;step-by-step guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  15. Booking form → Google Calendar event
&lt;/h3&gt;

&lt;p&gt;Turn a booking or appointment request into a calendar event at the right time, in the right time zone.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; consultants, trainers and service businesses that take bookings through a Google Form.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; Google Sheets &lt;em&gt;Watch New Rows&lt;/em&gt; on the response sheet (or Google Forms &lt;em&gt;Watch Responses&lt;/em&gt;) → three Tools &lt;em&gt;Set variable&lt;/em&gt; modules (combine date and time, parse it in your time zone, work out the end time) → Google Calendar &lt;em&gt;Search Events&lt;/em&gt; → Router → &lt;em&gt;Create an Event&lt;/em&gt; → optional Google Sheets &lt;em&gt;Update a Row&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; about 5–6 per response (three variables, the search and the event, plus &lt;em&gt;Update a Row&lt;/em&gt; if you use it), counted from the modules, plus 1 per check for the scheduled trigger.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; the event lands an hour or more off because the date was parsed without a time zone (&lt;a href="https://flowpaja.com/guides/google-sheets-date-errors-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;date errors in Make&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/create-google-calendar-events-from-google-forms-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Google Forms to Google Calendar guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  16. Daily summary email from a sheet
&lt;/h3&gt;

&lt;p&gt;A morning email with today's jobs, new leads or open tasks as a small table.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; owners and team leads who live in a shared sheet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; daily schedule → Google Sheets &lt;em&gt;Search Rows&lt;/em&gt; → Tools &lt;em&gt;Text aggregator&lt;/em&gt; (builds the table) → Gmail &lt;em&gt;Send an email&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; about 3 per day, counted from the modules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; the email shows raw HTML tags (set the Gmail body type to Raw HTML), or an ampersand or line break in a cell breaks the table. &lt;em&gt;escapeHTML()&lt;/em&gt; fixes most of that.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/send-daily-summary-email-google-sheets-make/?ref=jakelu-devto" rel="noopener noreferrer"&gt;daily summary email guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Team alerts
&lt;/h2&gt;

&lt;h3&gt;
  
  
  17. Form or payment alerts in Discord
&lt;/h3&gt;

&lt;p&gt;Post new form submissions or Stripe payments to a Discord channel as a tidy embed.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; small teams and communities that work in Discord rather than Slack.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; Webhooks &lt;em&gt;Custom webhook&lt;/em&gt; or Stripe &lt;em&gt;Watch Events&lt;/em&gt; → HTTP &lt;em&gt;Make a request&lt;/em&gt; to a Discord webhook URL with an embed. Make's Discord app works too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; 2 per submission (webhook + HTTP).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; quotes or line breaks in mapped text break the JSON string, so Discord rejects the request. The &lt;a href="https://flowpaja.com/guides/make-error-cheat-sheet/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make error cheat sheet&lt;/a&gt; lists the common 400 errors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/make-discord-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Discord automation guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  AI examples
&lt;/h2&gt;

&lt;p&gt;AI steps are the newest part of Make and change fastest. Keep a human check wherever a wrong answer would reach a customer.&lt;/p&gt;

&lt;h3&gt;
  
  
  18. Sort incoming email with AI labels
&lt;/h3&gt;

&lt;p&gt;Have an AI model read each new email and label it, for example quote request, invoice, support or spam, so your inbox sorts itself.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; owners whose one inbox gets everything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; Gmail &lt;em&gt;Watch emails&lt;/em&gt; → OpenAI &lt;em&gt;Transform text to structured data&lt;/em&gt; (returns the category) → Gmail &lt;em&gt;Update email labels&lt;/em&gt;. The Anthropic Claude and Google Gemini AI apps work the same way.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; 1 per check + 2 per email (AI module + label). With your own API key, OpenAI bills the tokens separately. Claude's and Gemini's no-key &lt;em&gt;Simple Text Prompt&lt;/em&gt; modules bill tokens in Make credits instead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Free to build and test.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; a 401 error from a wrong or revoked API key, or a 429 rate limit. Add an error route so one failed email doesn't stop the run (&lt;a href="https://flowpaja.com/guides/make-error-handling-resume-ignore-break-rollback-commit/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make error handling&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/make-chatgpt-openai-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;ChatGPT and OpenAI in Make&lt;/a&gt; · &lt;a href="https://flowpaja.com/guides/make-claude-gemini/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Claude and Gemini in Make&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  19. Support-email triage with a Make AI agent
&lt;/h3&gt;

&lt;p&gt;An agent reads each support email, looks up the order, logs the request and alerts the team. It decides which tools to use rather than following fixed routes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; small shops and SaaS teams that already have the fixed-route basics running.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; Gmail &lt;em&gt;Watch emails&lt;/em&gt; → Make AI Agent (New) &lt;em&gt;Run an agent&lt;/em&gt;, with tools: a "Find order" scenario (Search Rows → Router → Return output, scheduled On demand), Google Sheets &lt;em&gt;Add a Row&lt;/em&gt; and Slack &lt;em&gt;Send a Message&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; varies. The agent uses credits per operation plus token-based credits when you use Make's AI Provider, and each tool it calls uses its own credits. Run a few test emails and read the History.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; Make's pricing table lists AI Agents (beta) on every plan, including Free, with Make's AI Provider. Connecting your own OpenAI or Claude key needs a paid plan. The app is in open beta, so features and pricing may change.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; the agent never calls a tool because the tool descriptions are vague. Write descriptions that say "use when…" and name the tool in the instructions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/make-ai-agents-guide/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make AI agents guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  20. Ask Claude who owes you money (MCP)
&lt;/h3&gt;

&lt;p&gt;Connect Claude or ChatGPT to the Make MCP server and ask in plain language: "Who's more than 14 days overdue?" A Make scenario reads your invoice sheet and returns the answer.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Who it's for:&lt;/strong&gt; owners who already use Claude or ChatGPT and want answers from their own data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trigger → modules:&lt;/strong&gt; a scenario scheduled On demand with a scenario input (minimum days overdue) → Google Sheets &lt;em&gt;Search Rows&lt;/em&gt; → filter → Array aggregator → Scenarios &lt;em&gt;Return output&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; about 2–3 per question, counted from the modules. The AI app's own usage is billed by that app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan fit:&lt;/strong&gt; the pricing table lists the MCP server and scenario inputs and outputs on every plan, including Free. Letting the AI build or edit scenarios needs management scopes, which are paid-only.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What usually breaks:&lt;/strong&gt; the scenario doesn't show up as a tool. It must be active and scheduled On demand, and the connection needs the run scope.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it:&lt;/strong&gt; &lt;a href="https://flowpaja.com/guides/make-mcp-server/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make MCP server guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to pick your first automation
&lt;/h2&gt;

&lt;p&gt;The best first scenario is small, frequent and low-risk. Five questions help:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Do you do it every week?&lt;/strong&gt; Copying leads, chasing invoices and filing receipts come up again and again. A once-a-year task isn't worth a scenario.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is the data already in one place?&lt;/strong&gt; Examples that start from a Google Sheet (6, 7, 9, 10, 16) are the easiest, because you can see and fix the data yourself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Who sees the result?&lt;/strong&gt; Start with something that reaches only you or your team: a digest (7), a Slack alert (1) or drafts you send yourself (9). Move to customer-facing emails once you trust it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Does it fit the Free plan?&lt;/strong&gt; Free allows 2 active scenarios, 1,000 credits a month and runs at most every 15 minutes (make.com/en/pricing, checked 3 October 2026). An instant trigger or a daily schedule keeps credit use low.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Can you test it with fake data?&lt;/strong&gt; Use a copy of the sheet and a test channel or your own email address.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you're unsure, start with the &lt;a href="https://flowpaja.com/templates/free-overdue-digest/?ref=jakelu-devto" rel="noopener noreferrer"&gt;free Overdue Invoice Digest&lt;/a&gt; (7) or &lt;a href="https://flowpaja.com/templates/form-to-slack-free/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Form responses to Slack&lt;/a&gt; (1). Both take a few modules, reach only you or your team, and teach the pattern most of the other examples use: search a sheet, then do something with each row. New to Make altogether? Read &lt;a href="https://flowpaja.com/guides/make-com-for-beginners/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make.com for beginners&lt;/a&gt; first.&lt;/p&gt;

&lt;p&gt;If you don't have a Make account yet, &lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;create a free Make account&lt;/a&gt; (affiliate link). Everything marked "Free" above runs on it.&lt;/p&gt;

&lt;p&gt;Affiliate disclosure: links marked "affiliate link" include our partner code. If you sign up or later buy a paid plan through them, Flowpaja may earn a commission at no extra cost to you. More on the tools we use: &lt;a href="https://flowpaja.com/guides/best-tools-for-make-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;best tools for Make automation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Importing a template instead of building from scratch
&lt;/h2&gt;

&lt;p&gt;Most of the "Build it" links above are step-by-step guides, and the templates come as a Make blueprint (a JSON file) you import into your own account:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a new scenario in Make and choose &lt;strong&gt;Import blueprint&lt;/strong&gt;. It's in the upper-right corner of the Scenario Builder; older tutorials show it in the bottom toolbar.&lt;/li&gt;
&lt;li&gt;Pick the .json file. It has to be under 2 MB, and a word processor that turns straight quotes into curly ones makes it invalid.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reconnect every module.&lt;/strong&gt; Blueprints carry modules and mappings, never connections, so each module that needs one shows a warning until you pick your own Google, Slack or Gmail connection.&lt;/li&gt;
&lt;li&gt;Reselect your own sheet, channel or folder, set the schedule, and test with &lt;strong&gt;Run once&lt;/strong&gt; on fictional data before switching it on.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The full walkthrough, including what to do with JSON text instead of a file: &lt;a href="https://flowpaja.com/guides/import-make-blueprint/?ref=jakelu-devto" rel="noopener noreferrer"&gt;how to import a Make blueprint&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What these cost to run
&lt;/h2&gt;

&lt;p&gt;On Make's Free plan, all 20 examples cost nothing to build and test. What limits you is the 1,000 credits a month, the 2 active scenarios and the 15-minute minimum interval. A few rough monthly figures, using the counts above:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setup&lt;/th&gt;
&lt;th&gt;How we count it&lt;/th&gt;
&lt;th&gt;Rough credits a month&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Overdue digest (7), daily&lt;/td&gt;
&lt;td&gt;1–2 on quiet days, about 4 with overdue invoices&lt;/td&gt;
&lt;td&gt;30–120&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Invoice reminders (6), daily, 20 reminders&lt;/td&gt;
&lt;td&gt;30 runs × 1 + 20 × 2&lt;/td&gt;
&lt;td&gt;About 70&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tally → Sheets (4), 100 responses&lt;/td&gt;
&lt;td&gt;100 × 3, nothing on empty checks&lt;/td&gt;
&lt;td&gt;About 300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Form → Slack (1), hourly checks, 50 responses&lt;/td&gt;
&lt;td&gt;720 checks + 50&lt;/td&gt;
&lt;td&gt;About 770&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The last row shows the usual trap: scheduled checks, not the actual work, use most of the credits. Checking every two hours halves that, and an instant trigger removes it. Before you switch a scenario on, put your own numbers into the &lt;a href="https://flowpaja.com/tools/make-credits-calculator/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make credits calculator&lt;/a&gt;. &lt;a href="https://flowpaja.com/guides/make-credits-explained-save-credits/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make credits explained&lt;/a&gt; has 12 ways to use fewer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plan check:&lt;/strong&gt; none of the 20 examples needs a paid-only feature. According to Make's pricing table (3 October 2026), the MCP server, AI Agents (beta), the AI Content Extractor, scenario inputs and outputs, and subscenarios are on every plan, including Free (the Content Extractor's own app docs still say paid plans, so check your account). The Make Code app isn't on Free. Custom variables start on Pro, and custom functions are Enterprise-only. When you outgrow Free, mostly because of a third active scenario or more credits, compare Make with the alternatives in &lt;a href="https://flowpaja.com/guides/make-vs-zapier-vs-n8n/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make vs Zapier vs n8n&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources checked (3 October 2026)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;make.com/en/pricing: Free plan limits, credit rules (routers and error handlers use no credits) and the per-plan feature table, as seen from a US connection&lt;/li&gt;
&lt;li&gt;Make app pages on make.com/en/integrations for Google Sheets, Gmail, Slack, Shopify, Facebook Lead Ads, WhatsApp Business Cloud, Google Calendar, Google Drive, QuickBooks, Xero, OpenAI, Typeform, Tally, Pipedrive, Discord, Stripe and Make AI Agent; apps.make.com docs for HubSpot CRM, Shopify and Google Calendar&lt;/li&gt;
&lt;li&gt;The linked Flowpaja guides and templates, for the scenario steps, credit counts and common errors in each example&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Don't have a Make account yet?&lt;/strong&gt; You can build and test this scenario on Make's free plan.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Create a free Make account (opens Make in a new tab)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Affiliate link: Flowpaja may earn a commission at no extra cost to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;What can you automate with Make.com in a small business?&lt;/p&gt;

&lt;p&gt;Mostly repetitive work between the apps you already use: sending form leads to a CRM and Slack, invoice reminders and overdue digests, quote follow-up drafts, logging Shopify orders to a sheet, saving Gmail attachments to Google Drive, calendar events from booking forms, daily summary emails, and AI steps such as labelling incoming email. This guide lists 20 examples with their modules and links to step-by-step guides.&lt;/p&gt;

&lt;p&gt;What are the best Make.com use cases to start with?&lt;/p&gt;

&lt;p&gt;Start with something you do every week that only reaches you or your team, such as a daily overdue-invoice digest, new form responses posted to Slack, or quote follow-up drafts that you send yourself. Once you trust the scenario, move on to customer-facing emails and CRM updates.&lt;/p&gt;

&lt;p&gt;Are there free Make.com templates for these examples?&lt;/p&gt;

&lt;p&gt;Yes. Flowpaja has sixteen free Make templates: Overdue Invoice Digest, Invoice email from a Sheets row, Form responses to Slack, One quote follow-up draft, Webhook to Sheets with a duplicate check, Quote Reply Signal, Lead capture to Sheets + Slack, Typeform hot-lead alert, Unanswered leads digest, Gmail lead label log, Fillout Docs + PDF, Webflow form dedupe, Tally hot-lead alert, Google Forms to HubSpot create or update, Safe Slack Block Kit alerts, and Sheets write reconciliation. Three fuller templates cost $19 each: Polite Invoice Reminder, Quote Follow-Up Assistant and Lead Router. All are listed on flowpaja.com/templates/.&lt;/p&gt;

&lt;p&gt;Can I run these automations on Make's Free plan?&lt;/p&gt;

&lt;p&gt;Most of them, at low volume. As of 3 October 2026, Make's Free plan includes 1,000 credits a month and 2 active scenarios, runs scheduled scenarios at most every 15 minutes, and limits files to 5 MB. None of the 20 examples needs a paid-only feature, but connecting your own OpenAI or Claude key to a Make AI agent requires a paid plan.&lt;/p&gt;

&lt;p&gt;How many credits does a typical Make automation use?&lt;/p&gt;

&lt;p&gt;Roughly 1 credit per module action for each item processed, so a simple three-module scenario uses about 3 credits per new item. Scheduled triggers also use 1 credit per check, even when nothing is new, while routers, filters and error handlers use none. The examples here range from about 2 to 8 credits per item. Check the real numbers in your scenario's History after a test run.&lt;/p&gt;

&lt;p&gt;Do I need coding skills to use Make?&lt;/p&gt;

&lt;p&gt;No. All 20 examples are built from visual modules, filters and a few built-in functions such as trim() or parseDate(). Make's Code app for JavaScript or Python exists but isn't on the Free plan, and none of these examples needs it.&lt;/p&gt;

&lt;p&gt;How do I import a Make blueprint?&lt;/p&gt;

&lt;p&gt;Create a new scenario, choose Import blueprint in the upper-right corner of the Scenario Builder and pick the .json file, which must be under 2 MB. Blueprints never include connections, so reconnect each module to your own accounts, reselect your sheets and channels, then test with Run once on fictional data before switching the scenario on.&lt;/p&gt;

&lt;p&gt;What is the easiest first automation in Make?&lt;/p&gt;

&lt;p&gt;A scenario that searches a Google Sheet once a day and emails only you, such as the free Overdue Invoice Digest, or one that posts new Google Form responses to Slack. Both use 2 to 4 modules, cost only a few credits a run and can't send anything to a customer by mistake.&lt;/p&gt;

</description>
      <category>make</category>
      <category>automation</category>
      <category>smallbusiness</category>
      <category>nocode</category>
    </item>
    <item>
      <title>Send a Gmail email when a new row is added in Google Sheets (Make.com)</title>
      <dc:creator>Flowpaja</dc:creator>
      <pubDate>Fri, 16 Oct 2026 11:12:28 +0000</pubDate>
      <link>https://dev.to/flowpaja/send-a-gmail-email-when-a-new-row-is-added-in-google-sheets-makecom-4eca</link>
      <guid>https://dev.to/flowpaja/send-a-gmail-email-when-a-new-row-is-added-in-google-sheets-makecom-4eca</guid>
      <description>&lt;p&gt;A form response, a lead from a landing page or a manual entry lands in a Google Sheet, and you want an email sent to that person without copy-pasting. The part that goes wrong is not the sending: it is sending the same email twice, or not at all, when rows get sorted, edited or deleted.&lt;/p&gt;

&lt;p&gt;This guide contains affiliate links, marked “affiliate link”.&lt;/p&gt;

&lt;h2&gt;
  
  
  Short answer
&lt;/h2&gt;

&lt;p&gt;Use explicit ready and sent states when eligibility can change after row creation. Choose &lt;code&gt;Search Rows&lt;/code&gt; for a status-based work queue. Keep uncertain outcomes for inspection before releasing a row again. Before enabling the scenario, inspect the destination using a fictional input and compare the result with the intended business outcome.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key facts
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Select only rows deliberately marked ready.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Watch New Rows&lt;/code&gt; is not a general edited-row trigger.&lt;/li&gt;
&lt;li&gt;A failed log after sending does not prove the email was unsent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Need ready-made spreadsheets as well? The &lt;a href="https://flowpaja.gumroad.com/l/sheets-bundle?utm_source=flowpaja.com&amp;amp;utm_medium=site&amp;amp;utm_campaign=sheets&amp;amp;ref=jakelu-devto" rel="noopener noreferrer"&gt;Flowpaja Sheets Bundle&lt;/a&gt; has 10 Google Sheets templates (bookkeeping, invoices, CRM, budgets and more) for $39.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A Make.com account with Google Sheets and Gmail connections. No account yet? &lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Create a free Make account&lt;/a&gt; (affiliate link).&lt;/li&gt;
&lt;li&gt;A Google Sheet with a header row in row 1&lt;/li&gt;
&lt;li&gt;These columns: Name, Email, Topic, Status, Sent at&lt;/li&gt;
&lt;li&gt;An email text you are happy to send automatically&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ad disclosure: links marked "affiliate link" are ads. If you sign up or buy through them, Flowpaja may earn a commission at no extra cost to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Watch New Rows or Search Rows?
&lt;/h2&gt;

&lt;p&gt;Make gives you two ways to pick up new rows, and the choice matters more than any other setting in this scenario.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Google Sheets – Watch New Rows&lt;/strong&gt; remembers where it stopped, by row position, and returns whatever is below that point. It is simple and it keeps credit use low. It also trusts the position blindly: sort the sheet, delete a row above the marker, or insert a row in the middle, and it can skip rows or pick up old ones again. It also ignores edits to rows it has already seen, and Make's documentation notes that a blank row stops it from processing the rows below it. Older tutorials sometimes call it Watch Rows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Google Sheets – Search Rows&lt;/strong&gt; on a schedule looks at the sheet each time and asks a plain question: which rows have no status yet? It does not remember anything, so there is nothing to get out of sync. It uses a few more credits on quiet days, but it recovers by itself after a failed run.&lt;/p&gt;

&lt;p&gt;For anything where a duplicate email would be embarrassing, use Search Rows with a Status column. The build below does that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start with the existing setup reference&lt;/strong&gt; Start with this live narrow pattern and read its own setup, test scope and limits before adapting it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://flowpaja.com/templates/quote-follow-up-free/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Open the free reference&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step-by-step build
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Prepare the sheet
&lt;/h3&gt;

&lt;p&gt;Leave the Status column empty for new rows. Make sure the header names have no trailing spaces, because Make shows them as field names and a stray space is annoying to debug later.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Add Google Sheets – Search Rows as the first module
&lt;/h3&gt;

&lt;p&gt;Select the spreadsheet and the sheet tab. Set "Table contains headers" to yes. Set a limit, for example 20, so a big backlog does not send hundreds of emails in one run. Put the scenario on a schedule, for example every 15 minutes, using the clock icon on the module.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Filter for rows that still need an email
&lt;/h3&gt;

&lt;p&gt;Click the link after the module and add a filter with two conditions, combined with AND:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Status, equal to nothing (an empty value). Depending on how your sheet returns empty cells, "Does not exist" may work better than "Equal to". Test both on a real empty row.&lt;/li&gt;
&lt;li&gt;Email, matches pattern: &lt;code&gt;^[^@\s]+@[^@\s]+\.[^@\s]+$&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The second condition keeps half-typed rows from reaching Gmail.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Mark the row as "sending"
&lt;/h3&gt;

&lt;p&gt;Add Google Sheets – Update a Row. Set Row number to the row number from the Search Rows output, and write &lt;code&gt;sending&lt;/code&gt; into the Status column. This step comes before the email, on purpose: if the scenario crashes during sending, the row is no longer empty and will not be picked up again.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Send the email with Gmail – Send an email
&lt;/h3&gt;

&lt;p&gt;To: &lt;code&gt;{{trim(2.Email)}}&lt;/code&gt;. Fill in Subject and Body contents, and map fields into the text, for example "Hi {{2.Name}}, thanks for your message about {{2.Topic}}." Body contents accepts HTML tags if you want links or formatting. The &lt;code&gt;2.&lt;/code&gt; prefix is the module number from this example, so use the mapping panel for yours.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Update the row again
&lt;/h3&gt;

&lt;p&gt;Add a second Google Sheets – Update a Row. Same row number, Status set to &lt;code&gt;sent&lt;/code&gt;, and Sent at set to &lt;code&gt;{{formatDate(now; "YYYY-MM-DD HH:mm")}}&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Handle failures
&lt;/h3&gt;

&lt;p&gt;Right-click the Gmail module and add an error handler. Route it to Google Sheets – Update a Row, with the row number from step 2 and Status set to &lt;code&gt;failed&lt;/code&gt;, then end the route with the Skip error handler (called Ignore in older versions) so the run continues with the next row. A failed row is now visible in the sheet and does not block the others.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Test
&lt;/h3&gt;

&lt;p&gt;Add a row with your own email address, click Run once, and confirm that the Status moves to &lt;code&gt;sent&lt;/code&gt;. Run it a second time right away: nothing should happen. That second run is the real test.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common errors and fixes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The same person gets the email twice.&lt;/strong&gt; Usually the status update failed after the email went out, or two copies of the scenario run on the same sheet. Update the status before sending, as in step 4, and check that you have not cloned the scenario and left both active.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search Rows returns nothing, but the sheet has new rows.&lt;/strong&gt; The filter on Status does not match how Make reads empty cells, or the module points at the wrong sheet tab. Open the output of a Run once and look at what the Status field actually contains. A single space counts as content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The wrong row gets updated.&lt;/strong&gt; The row number was taken from a different module than the one that found the row, or someone sorted the sheet while the scenario ran. Always use the row number from the Search Rows bundle in the same run, and avoid sorting the live sheet. A separate view or tab for sorting keeps the working sheet stable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Invalid to header" from Gmail.&lt;/strong&gt; The Email cell contains a trailing space, a line break or two addresses. Wrapping the field in &lt;code&gt;trim()&lt;/code&gt; fixes most cases, and the pattern filter in step 3 catches the rest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;429 or quota errors from Google Sheets.&lt;/strong&gt; Too many reads and writes in a short time. Lower the limit in Search Rows, and consider adding Tools – Sleep for a second or two between rows. Make usually treats a 429 as a rate-limit error and retries later, so it does not count like an ordinary error.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"You have reached a limit for sending mail" from Gmail.&lt;/strong&gt; Google caps how much one account can send. Google's help pages give roughly 500 emails or recipients per day for a personal Gmail account and up to 2,000 messages per day per user on Google Workspace, with lower limits for trial accounts. Treat these as approximate, check Google's current documentation, and keep the Search Rows limit well below your daily cap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't have a Make account yet?&lt;/strong&gt; You can build and test this scenario on Make's free plan.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Create a free Make account (opens Make in a new tab)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Affiliate link: Flowpaja may earn a commission at no extra cost to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;Can I use Watch New Rows instead?&lt;/p&gt;

&lt;p&gt;Yes, if the sheet only ever grows at the bottom and nobody sorts or deletes rows. Add the Status update anyway, as a record of what was sent.&lt;/p&gt;

&lt;p&gt;Can it run the moment a row is added?&lt;/p&gt;

&lt;p&gt;Watch New Rows and Search Rows run on a schedule. The instant Watch Changes module only reacts to edits a person makes in Google Sheets and does not watch for new rows, so it does not fit here. For instant triggers, a small Google Apps Script that calls a Make webhook on edit works. That is a different build.&lt;/p&gt;

&lt;p&gt;How do I send an email again?&lt;/p&gt;

&lt;p&gt;Clear the Status cell for that row. The next run picks it up.&lt;/p&gt;

&lt;p&gt;Can I send from an alias or a shared mailbox?&lt;/p&gt;

&lt;p&gt;The Send an email module has a From field for a custom sender address. It has to be an address the connected Gmail account is allowed to send from, such as an alias set up in that Gmail account.&lt;/p&gt;

</description>
      <category>make</category>
      <category>gmail</category>
      <category>googlesheets</category>
      <category>automation</category>
    </item>
    <item>
      <title>Make WhatsApp error 133010 "Account not registered": register the sender</title>
      <dc:creator>Flowpaja</dc:creator>
      <pubDate>Fri, 16 Oct 2026 10:59:04 +0000</pubDate>
      <link>https://dev.to/flowpaja/make-whatsapp-error-133010-account-not-registered-register-the-sender-go1</link>
      <guid>https://dev.to/flowpaja/make-whatsapp-error-133010-account-not-registered-register-the-sender-go1</guid>
      <description>&lt;p&gt;Fix [400] [133010] Account not registered in Make WhatsApp Business Cloud: run Register a Sender once with a 6-digit PIN, plus 133016, 133005 and 133006.&lt;/p&gt;

&lt;p&gt;Updated 15 Oct 2026 · ~6 min read&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; this guide has one affiliate link to Make, marked "affiliate link", and mentions our Fiverr fix service. Error messages, settings and limits come from Make Help Center / app docs, Meta WhatsApp Cloud API docs and Make Community thread 105136 checked on 15 October 2026; anything we could not confirm is flagged for review before publishing. We did not reproduce these in a live Make scenario for this guide. Prices, where mentioned, are as seen from the US.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; &lt;code&gt;[400] [133010] (#133010) Account not registered&lt;/code&gt; means the phone number is known to Meta but has not been &lt;strong&gt;registered&lt;/strong&gt; for the WhatsApp Cloud API, so it can't send yet. In Make, add &lt;strong&gt;WhatsApp Business Cloud › Register a Sender&lt;/strong&gt;, pick the same connection and phone number, enter a 6-digit PIN, run it once, then delete the module and retry.&lt;/p&gt;

&lt;p&gt;Everything here works on Make's Free plan. The steps come from Make's WhatsApp Business Cloud troubleshooting page and Meta's Cloud API docs; we did not register a number ourselves for this guide.&lt;/p&gt;

&lt;h2&gt;
  
  
  What 133010 means
&lt;/h2&gt;

&lt;p&gt;Meta's Cloud API error code list gives 133010 as "Phone number not registered on the WhatsApp Business Platform." and the fix as "Register the phone number before trying again." Make's troubleshooting page shows the error as &lt;code&gt;[400] [133010] (#133010) Account not registered&lt;/code&gt; and explains that the number "has been added to your Facebook Business Portfolio but hasn't been officially registered as a sender on the WhatsApp Business Platform."&lt;/p&gt;

&lt;p&gt;Meta's registration docs say you can only register a number through the API, not in WhatsApp Manager or the App Dashboard. That is why Make has a module for it. The error usually shows up on &lt;strong&gt;Send a Template Message&lt;/strong&gt; or &lt;strong&gt;Send a Message&lt;/strong&gt;, often right after a new connection or a new number.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix: register the sender in Make
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;In the scenario, add &lt;strong&gt;WhatsApp Business Cloud › Register a Sender&lt;/strong&gt; (you can put it on a new, unconnected spot in the canvas).&lt;/li&gt;
&lt;li&gt;Select the same &lt;strong&gt;Connection&lt;/strong&gt; and the &lt;strong&gt;Sender ID&lt;/strong&gt; (phone number ID) that the failing module uses.&lt;/li&gt;
&lt;li&gt;Enter a 6-digit &lt;strong&gt;PIN&lt;/strong&gt;. If two-step verification is already on for the number, it must be that PIN. If it isn't, the 6 digits you enter become the new two-step verification PIN, so write it down.&lt;/li&gt;
&lt;li&gt;Right-click the module and choose &lt;strong&gt;Run this module only&lt;/strong&gt;, once.&lt;/li&gt;
&lt;li&gt;When it succeeds, delete the Register a Sender module and run the original scenario again.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Don't leave Register a Sender inside the running scenario. Meta limits registration to 10 requests per business number in a 72-hour moving window; after that it returns error &lt;code&gt;133016&lt;/code&gt; and blocks registration of that number for the next 72 hours.&lt;/p&gt;

&lt;h2&gt;
  
  
  If Register a Sender fails or 133010 comes back
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;You see&lt;/th&gt;
&lt;th&gt;What Meta's docs say&lt;/th&gt;
&lt;th&gt;What to do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;133016&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Over 10 registration requests in 72 hours&lt;/td&gt;
&lt;td&gt;Wait 72 hours; stop any scenario that registers on every run&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;133005&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Two-step verification PIN incorrect&lt;/td&gt;
&lt;td&gt;Use the correct PIN. To reset it, Meta says to disable two-step verification, then set a new PIN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;133008&lt;/code&gt; / &lt;code&gt;133009&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Too many PIN guesses / PIN entered too quickly&lt;/td&gt;
&lt;td&gt;Wait the time given in the error details&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;133006&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Phone number needs to be verified before registering&lt;/td&gt;
&lt;td&gt;Verify the number first (Make has &lt;strong&gt;Verify a Sender&lt;/strong&gt;: request a code by SMS or voice, then verify it)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;133015&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The number was recently deleted and deletion has not finished&lt;/td&gt;
&lt;td&gt;Wait 5 minutes, then try again&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Also check the number's status in WhatsApp Manager. A Make Community answer in thread &lt;a href="https://community.make.com/t/getting-an-error-when-i-set-up-my-whatsapp-business-cloud/105136" rel="noopener noreferrer"&gt;105136&lt;/a&gt; suggests confirming the number shows as Active there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make's two-step verification note
&lt;/h2&gt;

&lt;p&gt;Make's WhatsApp Business Cloud requirements say you must turn off two-step verification for the WhatsApp Business number if it's enabled, and its troubleshooting page has a separate error for certificate creation when two-factor authentication is still on. Meta's registration endpoint, on the other hand, takes the existing PIN if two-step verification is on. If registration fails with a PIN error, follow Make's note: turn two-step verification off in WhatsApp Manager, then register again with a new 6-digit PIN.&lt;/p&gt;

&lt;h2&gt;
  
  
  After it works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;New chats must start with &lt;strong&gt;Send a Template Message&lt;/strong&gt;; Make's docs say you can use Send a Message only after the customer has replied to a template.&lt;/li&gt;
&lt;li&gt;Until Meta has reviewed your business and display name, Make's docs mention a limit of 5 business-initiated test messages every 24 hours.&lt;/li&gt;
&lt;li&gt;Coexistence numbers (the WhatsApp Business app and Cloud API on one number) have their own connection mode in Make; see &lt;a href="https://flowpaja.com/guides/make-whatsapp-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make WhatsApp automation&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Sources checked (15 October 2026)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Make apps: &lt;a href="https://apps.make.com/whatsapp-business-cloud-troubleshooting" rel="noopener noreferrer"&gt;WhatsApp Business Cloud troubleshooting&lt;/a&gt; (Account not registered), &lt;a href="https://apps.make.com/whatsapp-business-cloud" rel="noopener noreferrer"&gt;WhatsApp Business Cloud&lt;/a&gt; (requirements, Register/Verify a Sender)&lt;/li&gt;
&lt;li&gt;Meta for Developers: &lt;a href="https://developers.facebook.com/docs/whatsapp/cloud-api/support/error-codes" rel="noopener noreferrer"&gt;Cloud API error codes&lt;/a&gt;, &lt;a href="https://developers.facebook.com/docs/whatsapp/cloud-api/reference/registration" rel="noopener noreferrer"&gt;Register a business phone number&lt;/a&gt; (updated 26 Jun 2026)&lt;/li&gt;
&lt;li&gt;Make Community: &lt;a href="https://community.make.com/t/getting-an-error-when-i-set-up-my-whatsapp-business-cloud/105136" rel="noopener noreferrer"&gt;105136&lt;/a&gt;, &lt;a href="https://community.make.com/t/whatsapp-message-failed-with-error/93457" rel="noopener noreferrer"&gt;93457&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Don't have a Make account yet?&lt;/strong&gt; You can build and test this scenario on Make's free plan.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Create a free Make account (opens Make in a new tab)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Affiliate link: Flowpaja may earn a commission at no extra cost to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;What does WhatsApp error 133010 mean?&lt;/p&gt;

&lt;p&gt;Meta's error list says the phone number is not registered on the WhatsApp Business Platform. The number is in your business portfolio but not registered as a Cloud API sender.&lt;/p&gt;

&lt;p&gt;How do I fix 133010 in Make?&lt;/p&gt;

&lt;p&gt;Add WhatsApp Business Cloud Register a Sender, select the same connection and phone number, enter a 6-digit PIN, run it once, then delete the module and retry.&lt;/p&gt;

&lt;p&gt;How many times can I register a number?&lt;/p&gt;

&lt;p&gt;Meta allows 10 registration requests per business number in a 72-hour moving window. After that you get error 133016 and must wait 72 hours.&lt;/p&gt;

&lt;p&gt;Which PIN do I use?&lt;/p&gt;

&lt;p&gt;If two-step verification is on, the existing PIN. If it is off, the 6 digits you enter become the new PIN. Make's requirements say to turn two-step verification off for Make connections.&lt;/p&gt;

</description>
      <category>make</category>
      <category>whatsapp</category>
      <category>automation</category>
      <category>nocode</category>
    </item>
    <item>
      <title>Make Instagram IM006 "Token already exist / Token not found": what to check</title>
      <dc:creator>Flowpaja</dc:creator>
      <pubDate>Fri, 16 Oct 2026 10:55:15 +0000</pubDate>
      <link>https://dev.to/flowpaja/make-instagram-im006-token-already-exist-token-not-found-what-to-check-19fd</link>
      <guid>https://dev.to/flowpaja/make-instagram-im006-token-already-exist-token-not-found-what-to-check-19fd</guid>
      <description>&lt;p&gt;IM006 Token already exist / Token not found when connecting Instagram for Business in Make: what reports show, what you can check, and what to send support.&lt;/p&gt;

&lt;p&gt;Updated 15 Oct 2026 · ~6 min read&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; this guide has one affiliate link to Make, marked "affiliate link", and mentions our Fiverr fix service. Error messages, settings and limits come from Make Help Center / app docs and Make Community threads 115997, 90137 and 100489 checked on 15 October 2026; anything we could not confirm is flagged for review before publishing. We did not reproduce these in a live Make scenario for this guide. Prices, where mentioned, are as seen from the US.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; &lt;code&gt;IM006&lt;/code&gt; with "Token already exist." / "Token not found." appears when Make finishes an OAuth sign-in (Instagram for Business, Facebook, QuickBooks) but cannot save the token. Make's Help Center does not document this code. In every Make Community thread we found, deleting and recreating the connection did not fix it, and the answer was a ticket to Make support or a fix on Make's side. Check the few things you can check yourself, then open a ticket with the evidence below.&lt;/p&gt;

&lt;p&gt;We could not reproduce IM006 for this guide. Everything here comes from Make's Instagram app docs and Make Community threads.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the error looks like
&lt;/h2&gt;

&lt;p&gt;The callback page shows a JSON body like this (seen in Make Community, January 2026):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"detail"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Token not found."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Token already exist."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"code"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"IM006"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Some reports say "Token already exists." with an s. In thread &lt;a href="https://community.make.com/t/instagram-for-business-oauth-fails-with-im006-token-already-exist-token-not-found/115997" rel="noopener noreferrer"&gt;115997&lt;/a&gt; (September 2026) the Facebook/Instagram authorization completed, the callback to Make failed with IM006, and Make could not load the Facebook Page or Instagram Business assets.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Make Community reports show
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Thread&lt;/th&gt;
&lt;th&gt;App&lt;/th&gt;
&lt;th&gt;What happened&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="https://community.make.com/t/facebook-connection-error-token-already-exist-not-found-im006/90137" rel="noopener noreferrer"&gt;90137&lt;/a&gt; (Aug 2025)&lt;/td&gt;
&lt;td&gt;Facebook&lt;/td&gt;
&lt;td&gt;Removed Make from Facebook Business Integrations, deleted old connections, tried incognito and other browsers. No fix posted.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="https://community.make.com/t/unable-to-connect-to-qbo-token-already-exist-code-im006-error/100489" rel="noopener noreferrer"&gt;100489&lt;/a&gt; (Jan 2026)&lt;/td&gt;
&lt;td&gt;QuickBooks Online&lt;/td&gt;
&lt;td&gt;A Make community manager said the development team was aware connections to QuickBooks were not being created and was investigating with high priority.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="https://community.make.com/t/instagram-for-business-oauth-fails-with-im006-token-already-exist-token-not-found/115997" rel="noopener noreferrer"&gt;115997&lt;/a&gt; (Sep 2026)&lt;/td&gt;
&lt;td&gt;Instagram for Business (Facebook login)&lt;/td&gt;
&lt;td&gt;Permissions confirmed, connection deleted and recreated, reauthorized. A community helper called it an internal connection issue on the Make account side and pointed to a Make Customer Care ticket.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;So far, the pattern is: the same error across different OAuth apps, reconnecting does not help, and the fix comes from Make. That is why this guide does not promise a reconnect trick.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check these first (10 minutes)
&lt;/h2&gt;

&lt;p&gt;These come from Make's Instagram for Business (Facebook login) app docs. They don't fix IM006 itself, but they rule out the setup problems that look similar, and support will ask about them.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Business account, not Creator.&lt;/strong&gt; Make's docs say creator accounts are not supported. Switch the Instagram profile to a business account.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Page link.&lt;/strong&gt; The Instagram business account must be connected to a Facebook Page, and you must sign in with a Facebook account that has admin-level access to that Page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom app only:&lt;/strong&gt; if you turned on &lt;strong&gt;Show advanced settings&lt;/strong&gt; and entered your own client credentials, the redirect URI in your Meta app must be &lt;code&gt;https://www.integromat.com/oauth/cb/facebook&lt;/code&gt;. See &lt;a href="https://flowpaja.com/guides/make-oauth-redirect-url/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make OAuth redirect URLs&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One clean attempt in a private window.&lt;/strong&gt; A community helper suggested a private browser window so cookies and cache don't affect the OAuth flow. Do it once; repeating it many times did not help anyone in the threads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Other connections still work?&lt;/strong&gt; If your existing Facebook or Instagram connections in the same Make organization still run, don't delete them while you troubleshoot. Rename the new one instead.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Open a Make support ticket with this evidence
&lt;/h2&gt;

&lt;p&gt;Make support has access to internal systems and logs; community members do not. Open a ticket at &lt;a href="https://www.make.com/en/ticket" rel="noopener noreferrer"&gt;make.com/en/ticket&lt;/a&gt; and include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The full JSON from the callback page (screenshot and text), with the time and your time zone.&lt;/li&gt;
&lt;li&gt;Your Make zone (for example eu1 or us1), organization and team.&lt;/li&gt;
&lt;li&gt;The app and connection type (Instagram for Business (Facebook login), default or custom client).&lt;/li&gt;
&lt;li&gt;What you already checked from the list above.&lt;/li&gt;
&lt;li&gt;Whether older connections to the same Facebook account exist and still work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While you wait, keep the scenario's other parts running: if posts or comments must not be lost, log them in a Google Sheet or send them to Slack until the Instagram module works again.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not IM006? Similar Instagram connection problems
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Page dropdown is empty after connecting:&lt;/strong&gt; Make's docs say this is often because the Facebook Page is not properly connected to the Instagram business account in Meta Business Suite.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Publishing fails:&lt;/strong&gt; accounts linked to a Page that requires Page Publishing Authorization can't publish until it is completed, and media must be on a publicly accessible URL (not Google Drive).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Insights are empty:&lt;/strong&gt; Make's docs note insights are unavailable for Instagram users with fewer than 100 followers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For setup and ideas see &lt;a href="https://flowpaja.com/guides/make-instagram-facebook-automation/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make Instagram and Facebook automation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources checked (15 October 2026)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Make apps: &lt;a href="https://apps.make.com/instagram-business" rel="noopener noreferrer"&gt;Instagram for Business (Facebook login)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Make Community: &lt;a href="https://community.make.com/t/instagram-for-business-oauth-fails-with-im006-token-already-exist-token-not-found/115997" rel="noopener noreferrer"&gt;115997&lt;/a&gt;, &lt;a href="https://community.make.com/t/facebook-connection-error-token-already-exist-not-found-im006/90137" rel="noopener noreferrer"&gt;90137&lt;/a&gt;, &lt;a href="https://community.make.com/t/unable-to-connect-to-qbo-token-already-exist-code-im006-error/100489" rel="noopener noreferrer"&gt;100489&lt;/a&gt;, &lt;a href="https://community.make.com/t/quickbooks-online-connection-issue-token-already-exists/100683" rel="noopener noreferrer"&gt;100683&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Make Help Center search for IM006: no article (15 Oct 2026)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Don't have a Make account yet?&lt;/strong&gt; You can build and test this scenario on Make's free plan.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Create a free Make account (opens Make in a new tab)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Affiliate link: Flowpaja may earn a commission at no extra cost to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;What is IM006 in Make?&lt;/p&gt;

&lt;p&gt;An error on the OAuth callback with Token already exist and Token not found. Make's Help Center does not document it. Community reports cover Instagram for Business, Facebook and QuickBooks.&lt;/p&gt;

&lt;p&gt;Does deleting and recreating the connection fix IM006?&lt;/p&gt;

&lt;p&gt;Not in the Make Community threads we found. Users had tried it, plus other browsers and incognito, without success.&lt;/p&gt;

&lt;p&gt;Who can fix IM006?&lt;/p&gt;

&lt;p&gt;Make support. In the QuickBooks case Make's team said they were investigating; in the Instagram case a helper pointed to a Customer Care ticket because support can see internal logs.&lt;/p&gt;

&lt;p&gt;Are Instagram Creator accounts supported in Make?&lt;/p&gt;

&lt;p&gt;No. Make's Instagram for Business docs say creator accounts are not supported; switch to a business account linked to a Facebook Page.&lt;/p&gt;

</description>
      <category>make</category>
      <category>instagram</category>
      <category>automation</category>
      <category>nocode</category>
    </item>
    <item>
      <title>Make Airtable 422 INVALID_VALUE_FOR_COLUMN: match the value to the field type</title>
      <dc:creator>Flowpaja</dc:creator>
      <pubDate>Fri, 16 Oct 2026 10:50:43 +0000</pubDate>
      <link>https://dev.to/flowpaja/make-airtable-422-invalidvalueforcolumn-match-the-value-to-the-field-type-1nlh</link>
      <guid>https://dev.to/flowpaja/make-airtable-422-invalidvalueforcolumn-match-the-value-to-the-field-type-1nlh</guid>
      <description>&lt;p&gt;Fix Airtable 422 INVALID_VALUE_FOR_COLUMN in Make: what each 422 type means, the value each field type takes, Smart links (typecast) and HTTP 422s.&lt;/p&gt;

&lt;p&gt;Updated 15 Oct 2026 · ~8 min read&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; this guide has one affiliate link to Make, marked "affiliate link", and mentions our Fiverr fix service. Error messages, settings and limits come from Make Help Center / app docs, Airtable API docs and Make Community threads 59826, 79365 and 115822 checked on 15 October 2026; anything we could not confirm is flagged for review before publishing. We did not reproduce these in a live Make scenario for this guide. Prices, where mentioned, are as seen from the US.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; An Airtable &lt;code&gt;422&lt;/code&gt; in Make means Airtable understood the address but rejected the data. With &lt;code&gt;INVALID_VALUE_FOR_COLUMN&lt;/code&gt; the value you mapped does not fit the field type: text into a number field, the text &lt;code&gt;true&lt;/code&gt; into a checkbox, a date-time into a date-only field, a name instead of a record ID in a linked field. Open the module's input bundle in History, find the field Airtable names, and convert the value to the format that field type takes.&lt;/p&gt;

&lt;p&gt;Everything here works on Make's Free plan. We did not reproduce these errors in our own Make account; they come from Airtable's API docs and threads in Make Community.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a 422 from Airtable means
&lt;/h2&gt;

&lt;p&gt;Airtable's API errors page lists &lt;code&gt;422 Invalid Request&lt;/code&gt;: "The request data is invalid. This includes most of the base-specific validations." Airtable sends a type and a message with it, and that type tells you which problem you have. Make shows it in the module's error, usually as &lt;code&gt;[422]&lt;/code&gt; followed by Airtable's message.&lt;/p&gt;

&lt;p&gt;The type &lt;code&gt;INVALID_VALUE_FOR_COLUMN&lt;/code&gt; with a message saying a field &lt;em&gt;cannot accept the provided value&lt;/em&gt; is the most common one in Make scenarios. Airtable's public docs do not list this type in the errors table, so the exact wording can vary.&lt;/p&gt;

&lt;h2&gt;
  
  
  422 types and what each one means
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;What it means&lt;/th&gt;
&lt;th&gt;Fix in Make&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;INVALID_VALUE_FOR_COLUMN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The value does not fit the field type&lt;/td&gt;
&lt;td&gt;Convert the value (table below)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;INVALID_MULTIPLE_CHOICE_OPTIONS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;A select option that does not exist yet&lt;/td&gt;
&lt;td&gt;Match the option exactly, or let Airtable create it (typecast, see below)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;UNKNOWN_FIELD_NAME&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The field was renamed, or deleted and recreated with a new field ID&lt;/td&gt;
&lt;td&gt;Refresh the module and remap; see &lt;a href="https://flowpaja.com/guides/make-airtable-create-record-new-fields-not-showing/?ref=jakelu-devto" rel="noopener noreferrer"&gt;new fields not showing&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;INVALID_REQUEST_UNKNOWN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Airtable could not validate the request body and does not say which parameter&lt;/td&gt;
&lt;td&gt;Mostly HTTP / Make an API Call: check the raw JSON (below)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;FAILED_STATE_CHECK&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;IDs in the path don't belong together (for example a view from another table)&lt;/td&gt;
&lt;td&gt;Re-select base, table and view&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Field types and the value Airtable expects
&lt;/h2&gt;

&lt;p&gt;From Airtable's field model reference. Check the field type in Airtable first, then compare it with what Make actually sent in the input bundle.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Airtable field&lt;/th&gt;
&lt;th&gt;Send&lt;/th&gt;
&lt;th&gt;Typical Make mistake&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Number, Currency, Percent&lt;/td&gt;
&lt;td&gt;A number&lt;/td&gt;
&lt;td&gt;Text such as &lt;code&gt;1 200,50&lt;/code&gt; or &lt;code&gt;$40&lt;/code&gt;. Use &lt;code&gt;parseNumber()&lt;/code&gt;; see &lt;a href="https://flowpaja.com/guides/make-invalid-number-form-answers/?ref=jakelu-devto" rel="noopener noreferrer"&gt;invalid number from form answers&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Checkbox&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;true&lt;/code&gt; / &lt;code&gt;false&lt;/code&gt; (boolean)&lt;/td&gt;
&lt;td&gt;Text such as &lt;code&gt;Yes&lt;/code&gt; or &lt;code&gt;true&lt;/code&gt; from a form&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Date&lt;/td&gt;
&lt;td&gt;An ISO 8601 date string&lt;/td&gt;
&lt;td&gt;A local format like 03/09/2026; Airtable Community also reports rejections when a date with a time goes to a field without &lt;strong&gt;Include time&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Single select&lt;/td&gt;
&lt;td&gt;The option name as text&lt;/td&gt;
&lt;td&gt;A spelling or case difference from the existing option&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multiple select&lt;/td&gt;
&lt;td&gt;An array of option names&lt;/td&gt;
&lt;td&gt;One comma-separated text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Link to another record&lt;/td&gt;
&lt;td&gt;An array of record IDs (&lt;code&gt;rec…&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Names instead of IDs without Smart links on&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Fix it step by step
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open the failed run in &lt;strong&gt;History&lt;/strong&gt;, click the Airtable module's bubble and read the &lt;strong&gt;input&lt;/strong&gt; bundle. That is what Airtable received, not what the mapping panel shows.&lt;/li&gt;
&lt;li&gt;Find the field named in the error message. If the message has a field ID (&lt;code&gt;fld…&lt;/code&gt;), look it up in Airtable's field settings or the API docs for the base.&lt;/li&gt;
&lt;li&gt;Check its type in Airtable, then convert in the mapping: &lt;code&gt;parseNumber()&lt;/code&gt; for numbers, &lt;code&gt;formatDate()&lt;/code&gt; for dates, a boolean for checkboxes, &lt;code&gt;split()&lt;/code&gt; for multiple selects.&lt;/li&gt;
&lt;li&gt;Empty values: if a source field may be empty, map it with &lt;code&gt;ifempty()&lt;/code&gt; or leave it out. To clear a field in Update a Record, Make's docs say to use the &lt;code&gt;erase&lt;/code&gt; function.&lt;/li&gt;
&lt;li&gt;Run the module again with &lt;strong&gt;Run this module only&lt;/strong&gt; using the same input.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A rich text field that rejected a long text in Community thread &lt;a href="https://community.make.com/t/airtable-problem-field-cannot-accept-the-provided-value/59826" rel="noopener noreferrer"&gt;59826&lt;/a&gt; got the same answer from helpers there: check the field type in Airtable, because the problem is in what the field accepts, not in Make.&lt;/p&gt;

&lt;h2&gt;
  
  
  Smart links and typecast
&lt;/h2&gt;

&lt;p&gt;Airtable's API has a &lt;code&gt;typecast&lt;/code&gt; parameter: Airtable then does best-effort conversion from text and can create a select option that does not exist yet. It is off by default. Airtable's support article says that in Make this option is called &lt;strong&gt;Smart links&lt;/strong&gt;. Make's own Airtable docs describe Smart links on Create a Record and Update a Record as entering names instead of record IDs in linked-record fields, with the linked record created when there's no match.&lt;/p&gt;

&lt;p&gt;Typecast is not a fix for every 422. Airtable notes that creating select options with typecast needs creator permissions on the base, and a value that can't be parsed still fails. Fix the value first; use Smart links when you really want new options or names in linked fields.&lt;/p&gt;

&lt;h2&gt;
  
  
  422 with HTTP or Make an API Call
&lt;/h2&gt;

&lt;p&gt;When you build the JSON yourself, the type is often &lt;code&gt;INVALID_REQUEST_UNKNOWN&lt;/code&gt; with "Invalid request: parameter validation failed. Check your request data." In thread &lt;a href="https://community.make.com/t/http-module-fails-with-422-creating-an-airtable-webhook-but-identical-request-works-via-curl-airtables-own-testhttp/115822" rel="noopener noreferrer"&gt;115822&lt;/a&gt; (September 2026) the same webhook request worked with curl but failed from the HTTP module. The replies suggested checking:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Typographic quotes (“ ”) in a body pasted from a document or chat. The body is then not valid JSON.&lt;/li&gt;
&lt;li&gt;Content type: with Body type Raw, choose JSON in the module, and don't add a second &lt;code&gt;Content-Type&lt;/code&gt; header by hand.&lt;/li&gt;
&lt;li&gt;Mapped values: read the runtime input bundle, not the module settings.&lt;/li&gt;
&lt;li&gt;Build the body with &lt;strong&gt;JSON › Create JSON&lt;/strong&gt; instead of a hand-written string.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That thread has no confirmed root cause yet. For general JSON problems see &lt;a href="https://flowpaja.com/guides/make-parse-json-errors/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make Parse JSON errors&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources checked (15 October 2026)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Airtable Web API: &lt;a href="https://airtable.com/developers/web/api/errors" rel="noopener noreferrer"&gt;Errors&lt;/a&gt;, &lt;a href="https://airtable.com/developers/web/api/field-model" rel="noopener noreferrer"&gt;Field model&lt;/a&gt;, &lt;a href="https://airtable.com/developers/web/api/create-records" rel="noopener noreferrer"&gt;Create records&lt;/a&gt; (typecast)&lt;/li&gt;
&lt;li&gt;Airtable Support: &lt;a href="https://support.airtable.com/docs/en/airtable-api-common-troubleshooting" rel="noopener noreferrer"&gt;Airtable API: Common troubleshooting&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Make apps: &lt;a href="https://apps.make.com/airtable" rel="noopener noreferrer"&gt;Airtable&lt;/a&gt; (Smart links, Use Column ID, erase)&lt;/li&gt;
&lt;li&gt;Make Community: &lt;a href="https://community.make.com/t/airtable-problem-field-cannot-accept-the-provided-value/59826" rel="noopener noreferrer"&gt;59826&lt;/a&gt;, &lt;a href="https://community.make.com/t/422-airtable-error-on-multi-select-field-required-documents-proper-array-passed/79365" rel="noopener noreferrer"&gt;79365&lt;/a&gt;, &lt;a href="https://community.make.com/t/http-module-fails-with-422-creating-an-airtable-webhook-but-identical-request-works-via-curl-airtables-own-testhttp/115822" rel="noopener noreferrer"&gt;115822&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Don't have a Make account yet?&lt;/strong&gt; You can build and test this scenario on Make's free plan.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Create a free Make account (opens Make in a new tab)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Affiliate link: Flowpaja may earn a commission at no extra cost to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;What does INVALID_VALUE_FOR_COLUMN mean?&lt;/p&gt;

&lt;p&gt;The value Make sent does not fit the Airtable field type, for example text in a number field or the text true in a checkbox. Convert the value to the format the field takes.&lt;/p&gt;

&lt;p&gt;Does Smart links fix Airtable 422 errors?&lt;/p&gt;

&lt;p&gt;Sometimes. Airtable's support says Smart links is Make's equivalent of typecast, which converts text and can create new select options. Make's docs only describe it for linked records, and unparseable values still fail.&lt;/p&gt;

&lt;p&gt;How do I see what Make sent to Airtable?&lt;/p&gt;

&lt;p&gt;Open the failed run in History and click the Airtable module's bubble. The input bundle shows the values Airtable received.&lt;/p&gt;

&lt;p&gt;Why does the HTTP module get 422 when curl works?&lt;/p&gt;

&lt;p&gt;Usually the body differs: curly quotes, a wrong or double Content-Type, or a mapped value that is empty at run time. Build the body with Create JSON and compare the requests.&lt;/p&gt;

</description>
      <category>make</category>
      <category>airtable</category>
      <category>automation</category>
      <category>nocode</category>
    </item>
    <item>
      <title>Make Airtable 429 "Rate limit exceeded": per-second limit or monthly API calls?</title>
      <dc:creator>Flowpaja</dc:creator>
      <pubDate>Fri, 16 Oct 2026 10:44:37 +0000</pubDate>
      <link>https://dev.to/flowpaja/make-airtable-429-rate-limit-exceeded-per-second-limit-or-monthly-api-calls-58b8</link>
      <guid>https://dev.to/flowpaja/make-airtable-429-rate-limit-exceeded-per-second-limit-or-monthly-api-calls-58b8</guid>
      <description>&lt;p&gt;Fix Airtable 429 in Make: 5 requests per second per base vs the monthly API call limit, "Failed to load data (429)", and how to slow scenarios down.&lt;/p&gt;

&lt;p&gt;Updated 15 Oct 2026 · ~7 min read&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; this guide has one affiliate link to Make, marked "affiliate link", and mentions our Fiverr fix service. Error messages, settings and limits come from Make Help Center / app docs, Airtable API docs and Make Community threads 101017 and 108653 checked on 15 October 2026; anything we could not confirm is flagged for review before publishing. We did not reproduce these in a live Make scenario for this guide. Prices, where mentioned, are as seen from the US.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; An Airtable &lt;code&gt;429&lt;/code&gt; in Make means Airtable refused the call, not Make. There are two different 429s: the &lt;strong&gt;per-second&lt;/strong&gt; limit (5 requests per second per base; Airtable then wants a 30-second wait) and the &lt;strong&gt;monthly API call limit&lt;/strong&gt; of your Airtable plan (it lasts until the next month). Find out which one you hit first, because only the first one goes away with Sleep modules and retries.&lt;/p&gt;

&lt;p&gt;Everything below works on Make's Free plan. We did not reproduce a 429 in our own Make account for this guide; the error texts come from Airtable's API docs and Make Community threads.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Airtable's 429 means
&lt;/h2&gt;

&lt;p&gt;Airtable's API docs say: "The API is limited to 5 requests per second per base." There is also a limit of 50 requests per second for all traffic using personal access tokens from one user or service account. When you go over, Airtable answers &lt;code&gt;429 Too Many Requests&lt;/code&gt; with the type &lt;code&gt;RATE_LIMIT_REACHED&lt;/code&gt; and the message "Rate limit exceeded. Please try again later", and you "will need to wait 30 seconds before subsequent requests will succeed."&lt;/p&gt;

&lt;p&gt;Make shows a 429 as a &lt;code&gt;RateLimitError&lt;/code&gt;. Make's &lt;a href="https://help.make.com/fix-rate-limit-errors" rel="noopener noreferrer"&gt;rate limit help page&lt;/a&gt; says the rate limit error in Make corresponds to HTTP 429, and it names Airtable as one of the apps that often hits it when a scenario processes many records in a short time.&lt;/p&gt;

&lt;p&gt;Airtable's own troubleshooting article adds a second 429: when you have used up the plan's &lt;strong&gt;monthly&lt;/strong&gt; API call limit, the error type is &lt;code&gt;PUBLIC_API_BILLING_LIMIT_EXCEEDED&lt;/code&gt; and the fix is to wait for the first day of the next month or change plan. Airtable's troubleshooting article gives the monthly limits: 1,000 API calls on the Free plan and 100,000 on the Team plan; Business and Enterprise plans have no monthly call limit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which 429 do you have?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What you see&lt;/th&gt;
&lt;th&gt;Likely limit&lt;/th&gt;
&lt;th&gt;What fixes it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;429 in the middle of a run that handles many records; later runs work&lt;/td&gt;
&lt;td&gt;5 requests per second per base&lt;/td&gt;
&lt;td&gt;Fewer calls per second: bulk modules, smaller batches, Sleep, Retry handler&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;429 on the first Airtable call, every run, even with one record&lt;/td&gt;
&lt;td&gt;Monthly API call limit of the Airtable plan (&lt;code&gt;PUBLIC_API_BILLING_LIMIT_EXCEEDED&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Check API usage in the Airtable workspace settings; wait for next month or upgrade&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Failed to load data (429)" when you open the Table dropdown in a module&lt;/td&gt;
&lt;td&gt;Either of the above, or a base-specific problem&lt;/td&gt;
&lt;td&gt;Test the metadata call with Make an API Call (see below)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;In Make Community thread &lt;a href="https://community.make.com/t/error-429-failed-to-load-data/108653" rel="noopener noreferrer"&gt;108653&lt;/a&gt; (May 2026) the user could not pick a table in Watch Records, opened the workspace settings in Airtable and found that the monthly API calls were used up. That is the second row.&lt;/p&gt;

&lt;h2&gt;
  
  
  "Failed to load data (429)" on one base only
&lt;/h2&gt;

&lt;p&gt;Thread &lt;a href="https://community.make.com/t/airtable-module-fails-to-load-table-list-429-error-on-one-specific-base/101017" rel="noopener noreferrer"&gt;101017&lt;/a&gt; (January 2026) describes the Table dropdown in Airtable Search Records failing with "Failed to load data (429)" for one base while another base on the same connection worked. A community member suggested testing Airtable's metadata endpoint directly:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add &lt;strong&gt;Airtable › Make an API Call&lt;/strong&gt; with the same connection.&lt;/li&gt;
&lt;li&gt;URL: &lt;code&gt;v0/meta/bases/{baseId}/tables&lt;/code&gt; (the base ID starts with &lt;code&gt;app&lt;/code&gt; and is in the Airtable URL). Method: &lt;code&gt;GET&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Run this module only&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If this returns 200, the problem is in how the module loads the list, so open a ticket with Make support. If it also returns 429, the answer comes from Airtable, so take the evidence to Airtable support. In that thread the direct call also returned a 429 &lt;code&gt;RateLimitError&lt;/code&gt; with origin Airtable, and the user took it to Airtable. The thread has no confirmed fix.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Make does after a 429
&lt;/h2&gt;

&lt;p&gt;If the Airtable module has no error handler, Make's help page lists what happens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scheduled scenario:&lt;/strong&gt; Make pauses the next scenario run for 20 minutes. With &lt;a href="https://flowpaja.com/guides/make-incomplete-executions/?ref=jakelu-devto" rel="noopener noreferrer"&gt;incomplete executions&lt;/a&gt; enabled, it also reruns the stored incomplete execution with exponential backoff.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant scenario&lt;/strong&gt; (webhook trigger): Make reruns the execution with exponential backoff.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Turn on &lt;strong&gt;Store incomplete executions&lt;/strong&gt; in Scenario settings so the failed bundle is kept. A &lt;code&gt;RateLimitError&lt;/code&gt; is one of the error types Make retries automatically from incomplete executions.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to stop hitting the per-second limit
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Use bulk modules.&lt;/strong&gt; Make's Airtable app has &lt;strong&gt;Bulk Create Records (advanced)&lt;/strong&gt;, &lt;strong&gt;Bulk Update Records (advanced)&lt;/strong&gt; and &lt;strong&gt;Bulk Upsert Records (advanced)&lt;/strong&gt;. Airtable's create and update endpoints take up to 10 records per request, so batching can cut the number of calls. Make's module docs don't say how the Bulk modules split larger arrays, so test with your own data. Put an aggregator in front to build the array (see &lt;a href="https://flowpaja.com/guides/make-iterator-vs-aggregator/?ref=jakelu-devto" rel="noopener noreferrer"&gt;iterator vs aggregator&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Process fewer records per run.&lt;/strong&gt; Make recommends a limit of up to 20 records per run for frequently scheduled scenarios; set it in the trigger's &lt;strong&gt;Limit&lt;/strong&gt; field.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Slow instant scenarios down.&lt;/strong&gt; Set &lt;strong&gt;Maximum runs to start per minute&lt;/strong&gt; on the instant trigger (the lightning icon or Schedule setting).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add a Sleep module&lt;/strong&gt; before the Airtable module that fails. Make's Sleep waits up to 300 seconds. At 5 requests per second per base, even a 1-second pause per bundle keeps a single route well under the limit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add a Retry error handler&lt;/strong&gt; (formerly &lt;strong&gt;Break&lt;/strong&gt;) on the Airtable module with automatic completion, so a rare 429 is retried later instead of failing the run. Don't use &lt;strong&gt;Skip&lt;/strong&gt; (formerly Ignore) here: it drops the record.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Count every scenario.&lt;/strong&gt; The 5 per second limit is per &lt;strong&gt;base&lt;/strong&gt;, so two scenarios writing to the same base at the same moment share it. Spread their schedules.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Read requests can also be cut: one Search Records with a formula instead of a Get a Record per bundle. Airtable's docs suggest a caching proxy if you expect a high read volume.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you hit the monthly limit
&lt;/h2&gt;

&lt;p&gt;No amount of Sleep fixes this one. Open the Airtable workspace settings and check API usage (the Make announcement points there). Then either wait until the limit resets on the first day of next month, upgrade the Airtable plan, or cut the calls: polling triggers such as Watch Records call Airtable on every scheduled run even when nothing changed, so a 1-minute schedule spends calls all day. A longer interval, or a webhook pushed from an Airtable automation, uses far fewer.&lt;/p&gt;

&lt;p&gt;The same thinking applies to Make credits. See &lt;a href="https://flowpaja.com/guides/make-credits-explained-save-credits/?ref=jakelu-devto" rel="noopener noreferrer"&gt;Make credits explained&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources checked (15 October 2026)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Airtable Web API: &lt;a href="https://airtable.com/developers/web/api/rate-limits" rel="noopener noreferrer"&gt;Rate limits&lt;/a&gt; and &lt;a href="https://airtable.com/developers/web/api/errors" rel="noopener noreferrer"&gt;Errors&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Airtable Support: &lt;a href="https://support.airtable.com/docs/en/airtable-api-common-troubleshooting" rel="noopener noreferrer"&gt;Airtable API: Common troubleshooting&lt;/a&gt; (&lt;code&gt;TOO_MANY_REQUESTS&lt;/code&gt;, &lt;code&gt;PUBLIC_API_BILLING_LIMIT_EXCEEDED&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Make Help: &lt;a href="https://help.make.com/fix-rate-limit-errors" rel="noopener noreferrer"&gt;Fix rate limit errors&lt;/a&gt;; Make apps: &lt;a href="https://apps.make.com/airtable" rel="noopener noreferrer"&gt;Airtable&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Make Community: &lt;a href="https://community.make.com/t/airtable-module-fails-to-load-table-list-429-error-on-one-specific-base/101017" rel="noopener noreferrer"&gt;101017&lt;/a&gt;, &lt;a href="https://community.make.com/t/error-429-failed-to-load-data/108653" rel="noopener noreferrer"&gt;108653&lt;/a&gt;, &lt;a href="https://community.make.com/t/important-update-airtable-enforcing-free-plan-api-limits/66395" rel="noopener noreferrer"&gt;66395&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Don't have a Make account yet?&lt;/strong&gt; You can build and test this scenario on Make's free plan.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Create a free Make account (opens Make in a new tab)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Affiliate link: Flowpaja may earn a commission at no extra cost to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;What does a 429 from Airtable mean in Make?&lt;/p&gt;

&lt;p&gt;Airtable refused the request because a limit was hit. Make shows it as a RateLimitError. It is either the 5 requests per second per base limit or the monthly API call limit of the Airtable plan.&lt;/p&gt;

&lt;p&gt;How long do I have to wait after an Airtable 429?&lt;/p&gt;

&lt;p&gt;For the per-second limit, Airtable's docs say to wait 30 seconds before new requests succeed. For the monthly limit (PUBLIC_API_BILLING_LIMIT_EXCEEDED) the limit resets on the first day of the next month.&lt;/p&gt;

&lt;p&gt;Does Make retry an Airtable 429 automatically?&lt;/p&gt;

&lt;p&gt;With incomplete executions enabled, yes: RateLimitError is retried with exponential backoff. Scheduled scenarios also pause the next run for 20 minutes.&lt;/p&gt;

&lt;p&gt;Why does the Table dropdown say Failed to load data (429)?&lt;/p&gt;

&lt;p&gt;Make could not load the table list from Airtable. Test GET v0/meta/bases/{baseId}/tables with Airtable Make an API Call: a 429 there points to Airtable, a 200 points to Make support.&lt;/p&gt;

</description>
      <category>make</category>
      <category>airtable</category>
      <category>automation</category>
      <category>nocode</category>
    </item>
    <item>
      <title>A HubSpot 409 Is a Record-Matching Problem</title>
      <dc:creator>Flowpaja</dc:creator>
      <pubDate>Fri, 16 Oct 2026 07:40:34 +0000</pubDate>
      <link>https://dev.to/flowpaja/a-hubspot-409-is-a-record-matching-problem-1a86</link>
      <guid>https://dev.to/flowpaja/a-hubspot-409-is-a-record-matching-problem-1a86</guid>
      <description>&lt;p&gt;Some links are affiliate links. If you sign up, Flowpaja may earn a commission at no extra cost to you.&lt;/p&gt;

&lt;p&gt;A contact creation fails with a 409, so the tempting repair is to add another retry. That changes the timing of the request without changing its meaning: create a contact for an email address that already belongs to a contact. The useful question is which record the workflow should have updated.&lt;/p&gt;

&lt;p&gt;Consider a fictional enquiry from Morgan Example. The form sends a name, an email and a project note. Morgan already exists in HubSpot because someone entered the contact last month. The automation should preserve that relationship while recording the new enquiry. Repeating the create request cannot express that intention.&lt;/p&gt;

&lt;p&gt;Treat the conflict as evidence about identity. First establish which email was submitted, where it was mapped and which existing record HubSpot identifies. Then choose the smallest repair that preserves the right contact and its existing sales context.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the failed write
&lt;/h2&gt;

&lt;p&gt;Open the failed execution and inspect the input of HubSpot CRM's &lt;strong&gt;Create a Contact&lt;/strong&gt; module. Copy the actual email value into your investigation notes. An email-looking question label in the form does not prove that the standard HubSpot Email property received a value.&lt;/p&gt;

&lt;p&gt;Read the full error. If it provides an existing contact ID, open that record in HubSpot. Compare its primary email, additional email addresses and name with the submission. Do not merge contacts simply because the error contains a record ID. A merge changes the CRM's identity history and is not a routine retry strategy.&lt;/p&gt;

&lt;p&gt;Also separate the error families. A 409 contact conflict and a 400 invalid property value require different repairs. If the latter identifies a dropdown, compare the submitted value with the property's internal option value. A visible label on a form is not necessarily the value the CRM API expects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choose the write behavior you need
&lt;/h2&gt;

&lt;p&gt;For a workflow that handles new and existing contacts identically, &lt;strong&gt;Create or Update a Contact&lt;/strong&gt; is the simpler starting point. Map the normalized email into the standard Email property, then map the fields the form is allowed to change. Make's &lt;a href="https://apps.make.com/hubspotcrm" rel="noopener noreferrer"&gt;HubSpot CRM reference&lt;/a&gt; lists the available contact modules.&lt;/p&gt;

&lt;p&gt;Normalize once in concept, and use the same result for every lookup and write. &lt;code&gt;lower(trim(email))&lt;/code&gt; removes surrounding whitespace and case differences. Select your actual email token in Make's mapping panel; &lt;code&gt;email&lt;/code&gt; here describes the value, not a universal field path.&lt;/p&gt;

&lt;p&gt;Avoid replacing the email with a custom work-email field while leaving the standard property empty. The contact-matching behavior relies on the standard property. Also stop incomplete submissions before the CRM write. A nonempty, plausible email is an intake requirement; an address merely containing an at-sign is only a basic screen, not proof of deliverability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Search first when the next action depends on newness
&lt;/h2&gt;

&lt;p&gt;An upsert alone does not establish whether a Slack alert should say “new contact.” If new and existing contacts need different downstream actions, add &lt;strong&gt;Search for Contacts&lt;/strong&gt; before the decision. Use an exact Email equality condition with the same normalized value. Leave a broad free-text query out of the identity lookup.&lt;/p&gt;

&lt;p&gt;Test the no-match behavior before adding the create branch. A search that emits no bundle cannot reach a router merely because the router has a “missing ID” condition. Test whether your current HubSpot search module continues on zero results, and which supported setting or lookup response provides a bundle for that case. Do not copy Google Sheets' empty-bundle behavior onto HubSpot by assumption.&lt;/p&gt;

&lt;p&gt;Once the search result can reach the decision, a found ID belongs on &lt;strong&gt;Update a Contact&lt;/strong&gt;. A no-match path can use &lt;strong&gt;Create or Update a Contact&lt;/strong&gt; to tolerate a contact that appears between lookup and write. Keep any “new person” notification policy separate from the upsert's success status.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give the form limited authority
&lt;/h2&gt;

&lt;p&gt;A resubmission might contain a better phone number. It should not necessarily replace the contact owner, lifecycle stage or carefully maintained company details. Write down which properties intake owns before mapping everything the form offers.&lt;/p&gt;

&lt;p&gt;Make update modules skip empty mapped values by default. An unanswered optional question therefore should not be treated as an instruction to clear a known value. For deliberate clearing, use Make's &lt;code&gt;erase&lt;/code&gt; keyword rather than an ordinary blank. Test explicit clearing on the exact HubSpot property and connector version before relying on it. Keep a fictional record for this check.&lt;/p&gt;

&lt;p&gt;This distinction matters during repair. Mapping a fallback phrase into an empty field can make the run succeed while polluting a record. A missing phone number does not become a real phone number because the mapping inserts “Not provided.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspect additional emails and overlapping runs
&lt;/h2&gt;

&lt;p&gt;The contact identified by the conflict may have a different primary address. An additional email on that record can explain why a primary-email lookup found nothing but creation still collided. Review the record before deciding whether to update it. The right identity decision is more important than forcing the scenario green.&lt;/p&gt;

&lt;p&gt;Two near-simultaneous deliveries create another gap: both lookups may happen before the first contact is visible to search. For an instant-trigger scenario, sequential processing prevents those runs from overlapping within that scenario. It does not serialize another scenario writing to the same CRM, and it does not turn the search into a database lock.&lt;/p&gt;

&lt;p&gt;Keep the error visible if identity remains uncertain. &lt;strong&gt;Retry&lt;/strong&gt; can help a temporary connection problem; the same unresolved conflict needs a changed write or an identity decision. &lt;strong&gt;Skip&lt;/strong&gt; drops the failed bundle. If you choose it after an alert, someone still has to recover the missed update.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test the relationship, not just the badge
&lt;/h2&gt;

&lt;p&gt;Use a disposable contact and a fictional address such as &lt;code&gt;morgan@example.invalid&lt;/code&gt;. Submit a new email, submit it again with changed project text, and submit it with surrounding spaces and capitals. Check that the intended contact persists and the changed field is actually present.&lt;/p&gt;

&lt;p&gt;Then test an omitted optional field and an existing owner. Both should follow your ownership rules. If the workflow branches on newness, verify that the new-email case reaches the write and that a repeat does not receive the new-contact treatment.&lt;/p&gt;

&lt;p&gt;Record the contact ID after each case. That gives a concrete acceptance result: one continuing CRM relationship with controlled updates. Count the credits in actual history; additional searches, alerts and retries change the total.&lt;/p&gt;

&lt;p&gt;For Google Forms intake with budget-based Slack routing, the related Lead Router template is an optional starting point. It routes by budget, not by rotation between reps. Follow the full conflict guide before adapting its mappings. If you need a Make account for a disposable test, use &lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Make&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Further reading
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Full guide: &lt;a href="https://flowpaja.com/guides/hubspot-contact-already-exists-make/?ref=devto-hubspot-contact-already-exists-make" rel="noopener noreferrer"&gt;A HubSpot 409 Is a Record-Matching Problem&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Related template: &lt;a href="https://flowpaja.com/templates/lead-router/?ref=devto-hubspot-contact-already-exists-make" rel="noopener noreferrer"&gt;lead router&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>automation</category>
      <category>hubspot</category>
      <category>api</category>
      <category>nocode</category>
    </item>
    <item>
      <title>Make Notion invalid_request_url: fix the empty page ID after Gmail and Search Objects</title>
      <dc:creator>Flowpaja</dc:creator>
      <pubDate>Thu, 15 Oct 2026 15:55:11 +0000</pubDate>
      <link>https://dev.to/flowpaja/make-notion-invalidrequesturl-fix-the-empty-page-id-after-gmail-and-search-objects-59j0</link>
      <guid>https://dev.to/flowpaja/make-notion-invalidrequesturl-fix-the-empty-page-id-after-gmail-and-search-objects-59j0</guid>
      <description>&lt;p&gt;Fix Notion invalid_request_url in Make: Search Objects shows green but returns no page ID, so the PATCH URL ends at /v1/pages/. Filter, fix the search, use Notion modules.&lt;/p&gt;

&lt;p&gt;Updated 14 Oct 2026 · ~12 min read&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; this guide has one affiliate link to Make, marked "affiliate link", and mentions our Fiverr fix service. Error messages, settings and limits come from Make Help Center / app docs, Notion API docs and Make Community thread 110323 checked on 14 October 2026; anything we could not confirm is flagged for review before publishing. We did not reproduce these in a live Make scenario for this guide. Prices, where mentioned, are as seen from the US.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Notion's API returns &lt;code&gt;invalid_request_url&lt;/code&gt; when the page URL ends at &lt;code&gt;/v1/pages/&lt;/code&gt; with &lt;strong&gt;no page ID&lt;/strong&gt;. In Make that usually means Gmail → Notion Search Objects looked successful (green ✓1) but the output bundle had an empty ID, and HTTP › Make a request built &lt;code&gt;https://api.notion.com/v1/pages/{{empty}}&lt;/code&gt;. Fix the search (and prefer Notion's own Update modules over a bare HTTP PATCH).&lt;/p&gt;

&lt;p&gt;Everything here works on Make's Free plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  What &lt;code&gt;invalid_request_url&lt;/code&gt; means
&lt;/h2&gt;

&lt;p&gt;Notion's HTTP status reference lists status &lt;strong&gt;400&lt;/strong&gt; with code &lt;code&gt;invalid_request_url&lt;/code&gt; and message like &lt;strong&gt;Invalid request URL&lt;/strong&gt; when the request URL is not valid. A URL that is literally &lt;code&gt;https://api.notion.com/v1/pages/&lt;/code&gt; (nothing after the last slash) matches that class of failure.&lt;/p&gt;

&lt;p&gt;Make Community thread &lt;a href="https://community.make.com/t/claude-has-me-going-round-in-circles-for-this-tiny-automation/110323" rel="noopener noreferrer"&gt;110323&lt;/a&gt; (June 2026) describes exactly this: Gmail Watch Emails → Notion Search Objects → HTTP PATCH; Search Objects showed green ✓1 while Page ID mapped empty into the HTTP URL.&lt;/p&gt;

&lt;h2&gt;
  
  
  Green ✓1 is not "one match found"
&lt;/h2&gt;

&lt;p&gt;Community answers in that thread stress: a green check with &lt;strong&gt;1&lt;/strong&gt; means the module ran once and returned a bundle, not that a Notion page was found. Open the output bubble. If the ID / page fields are empty, the next HTTP URL will be invalid even though Search Objects did not throw.&lt;/p&gt;

&lt;p&gt;Treat "module success" and "business match found" as two different checks. Add a filter after Search Objects: Page ID (or equivalent) &lt;strong&gt;Exists&lt;/strong&gt; before any update module runs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fix the Notion search first
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Confirm the CRM page or data source is shared with your Make Notion connection (Notion → Add connections for internal integrations; reauthorize public connections after sharing new pages). Make's Notion app docs require sharing databases for them to appear.&lt;/li&gt;
&lt;li&gt;Prefer current &lt;strong&gt;Data Source&lt;/strong&gt; modules over Legacy database-item modules. Make documents that from 3 September 2025 Notion API &lt;code&gt;2025-09-03&lt;/code&gt; uses &lt;code&gt;data_source_id&lt;/code&gt; for new modules; Legacy modules still use &lt;code&gt;database_id&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Match the property type in the Search Objects filter. Thread replies note email properties need an email-style filter, not a plain text equals against a mismatched type.&lt;/li&gt;
&lt;li&gt;Normalize addresses the same way on both sides (trim, consistent case) before comparing.&lt;/li&gt;
&lt;li&gt;Inspect the Search Objects output bundle for the page/data-source item ID you will map.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Prefer Notion Update modules over raw HTTP
&lt;/h2&gt;

&lt;p&gt;Make's Notion app includes &lt;strong&gt;Update a Data Source Item&lt;/strong&gt;, &lt;strong&gt;Update a Page&lt;/strong&gt;, and &lt;strong&gt;Make an API Call&lt;/strong&gt;. Community staff advised using Notion modules (with the existing connection) instead of a generic HTTP module with no Notion auth. That avoids hand-built URLs and missing &lt;code&gt;Notion-Version&lt;/code&gt; headers.&lt;/p&gt;

&lt;p&gt;If you must use HTTP › Make a request:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Method PATCH, URL &lt;code&gt;https://api.notion.com/v1/pages/&amp;lt;page_id&amp;gt;&lt;/code&gt; only when &lt;code&gt;page_id&lt;/code&gt; is non-empty (Notion &lt;a href="https://developers.notion.com/reference/patch-page" rel="noopener noreferrer"&gt;Update page&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Send Notion's required headers (authorization and &lt;code&gt;Notion-Version&lt;/code&gt;) as documented by Notion.&lt;/li&gt;
&lt;li&gt;Never map a possibly empty ID into the path; filter first.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Safe Gmail → mark Replied pattern
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Gmail › Watch emails (or a label watch).&lt;/li&gt;
&lt;li&gt;Notion › Search Objects / search data source items by email.&lt;/li&gt;
&lt;li&gt;Filter: ID Exists (and optionally status is not already Replied).&lt;/li&gt;
&lt;li&gt;Notion › Update a Data Source Item (or Update a Page): set Status / Last contacted.&lt;/li&gt;
&lt;li&gt;Optional: log the Message ID in Sheets so repeats do not re-process (see free &lt;a href="https://flowpaja.com/templates/quote-reply-signal-free/?ref=jakelu-devto" rel="noopener noreferrer"&gt;quote-reply-signal-free&lt;/a&gt; for a Gmail-reply → Sheets pattern).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For temporary Notion or HTTP failures after a valid ID exists, attach &lt;strong&gt;Retry&lt;/strong&gt; (formerly Break) and enable incomplete executions, not for empty-ID URL errors, which will not heal by repeating.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources checked (14 October 2026)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://developers.notion.com/reference/status-codes" rel="noopener noreferrer"&gt;Notion status codes&lt;/a&gt;: &lt;code&gt;invalid_request_url&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developers.notion.com/reference/patch-page" rel="noopener noreferrer"&gt;Notion Update page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://apps.make.com/notion" rel="noopener noreferrer"&gt;Make Notion app&lt;/a&gt; (modules, data source migration, sharing)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://community.make.com/t/claude-has-me-going-round-in-circles-for-this-tiny-automation/110323" rel="noopener noreferrer"&gt;Community 110323&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;content_gaps.csv row 12 (priority 5)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Don't have a Make account yet?&lt;/strong&gt; You can build and test this scenario on Make's free plan.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.make.com/en/register?pc=flowpaja" rel="noopener noreferrer"&gt;Create a free Make account (opens Make in a new tab)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Affiliate link: Flowpaja may earn a commission at no extra cost to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;What does invalid_request_url mean in Notion?&lt;/p&gt;

&lt;p&gt;Notion's status codes list 400 invalid_request_url when the request URL is not valid, for example /v1/pages/ with no page ID.&lt;/p&gt;

&lt;p&gt;Why does Search Objects show green if nothing was found?&lt;/p&gt;

&lt;p&gt;A green check with 1 means the module ran and returned a bundle. Open the output: the ID can still be empty.&lt;/p&gt;

&lt;p&gt;Should I use HTTP or Notion modules to update a page?&lt;/p&gt;

&lt;p&gt;Prefer Notion's Update a Data Source Item or Update a Page with your Make connection. Use HTTP only with a filtered, non-empty page ID and Notion's required headers.&lt;/p&gt;

</description>
      <category>make</category>
      <category>notion</category>
      <category>automation</category>
      <category>nocode</category>
    </item>
  </channel>
</rss>
