[{"data":1,"prerenderedAt":196},["ShallowReactive",2],{"pseo:platforms:airtable":3,"highlight:platform:airtable":182},{"auth_method":4,"ban_risk":5,"capabilities":6,"example_flows":73,"faqs":121,"http_module":131,"name":134,"official_connector_note":135,"recipes":136,"related":140,"seo":155,"setup_steps":169,"setup_time":175,"slug":176,"tier":177,"type":178,"updated":167,"url":163,"webhook_trigger":179},"Token passed into the script as an input variable from a settings table or a secret field","high",[7,16,22,27,32,38,43,49,56,62,67],{"availability":8,"category":9,"cloud_api_status":10,"in_flows":11,"name":12,"slug":13,"summary":14,"url":15},"ga","groups","forbidden",true,"Create Group","create-group","Open a WhatsApp group from your own backend.","\u002Fwhatsapp-api\u002Fcreate-group\u002F",{"availability":8,"category":9,"cloud_api_status":10,"in_flows":17,"name":18,"slug":19,"summary":20,"url":21},false,"Group Participants","group-participants","Add, remove and list members of a WhatsApp group.","\u002Fwhatsapp-api\u002Fgroup-participants\u002F",{"availability":8,"category":9,"cloud_api_status":10,"in_flows":17,"name":23,"slug":24,"summary":25,"url":26},"Group Invite Link","group-invite-link","Read, revoke and resolve group invite links.","\u002Fwhatsapp-api\u002Fgroup-invite-link\u002F",{"availability":8,"category":9,"cloud_api_status":10,"in_flows":11,"name":28,"slug":29,"summary":30,"url":31},"Send Group Message","send-group-message","Send text, media and polls into a WhatsApp group.","\u002Fwhatsapp-api\u002Fsend-group-message\u002F",{"availability":8,"category":33,"cloud_api_status":10,"in_flows":17,"name":34,"slug":35,"summary":36,"url":37},"channels","Create Channel","create-channel","Create and manage a WhatsApp Channel.","\u002Fwhatsapp-api\u002Fcreate-channel\u002F",{"availability":8,"category":33,"cloud_api_status":10,"in_flows":11,"name":39,"slug":40,"summary":41,"url":42},"Post to Channel","post-to-channel","Publish text and media to a WhatsApp Channel.","\u002Fwhatsapp-api\u002Fpost-to-channel\u002F",{"availability":8,"category":44,"cloud_api_status":10,"in_flows":17,"name":45,"slug":46,"summary":47,"url":48},"status","Post Status","post-status","Post text, image and video status updates.","\u002Fwhatsapp-api\u002Fpost-status\u002F",{"availability":8,"category":50,"cloud_api_status":51,"in_flows":11,"name":52,"slug":53,"summary":54,"url":55},"messaging","restricted","Send Without Template","send-message-without-template","Send any message with no template approval.","\u002Fwhatsapp-api\u002Fsend-message-without-template\u002F",{"availability":8,"category":57,"cloud_api_status":51,"in_flows":11,"name":58,"slug":59,"summary":60,"url":61},"contacts","Check Number","check-number","Check whether a phone number is on WhatsApp.","\u002Fwhatsapp-api\u002Fcheck-number\u002F",{"availability":8,"category":57,"cloud_api_status":51,"in_flows":17,"name":63,"slug":64,"summary":65,"url":66},"LID to Phone","lid-to-phone","Map a WhatsApp LID to a phone number.","\u002Fwhatsapp-api\u002Flid-to-phone\u002F",{"availability":8,"category":68,"cloud_api_status":51,"in_flows":17,"name":69,"slug":70,"summary":71,"url":72},"account","Connect a Number","connect-number-qr-pairing","Link any WhatsApp number by code or QR.","\u002Fwhatsapp-api\u002Fconnect-number-qr-pairing\u002F",[74,88,98,109],{"body":75,"curl":76,"operation":79,"title":87},"A view holds records ready to contact. The script sends the message, writes the id and timestamp back, and the record leaves the view, which makes the view itself the queue and the audit trail at once.",{"code":77,"lang":78},"curl --request POST \\\n  --url https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fmessages\u002Ftext \\\n  --header 'Authorization: Bearer wpt_YOUR_TOKEN' \\\n  --header 'Content-Type: application\u002Fjson' \\\n  --data '{\"to\":\"+15551234567\",\"body\":\"Your order #4182 has shipped. Track it here: https:\u002F\u002Facme.example\u002Ft\u002F4182\",\"typing_time\":3}'","bash",{"availability":8,"ban_risk":80,"method":81,"operationId":82,"path":83,"summary":84,"tag":85,"url":86},"medium","POST","sendText","\u002Fmessages\u002Ftext","Send a text message","messages","\u002Fdocs\u002Fapi\u002Fmessages\u002Fsend-text\u002F","Message a contact when a record enters a view",{"body":89,"curl":90,"operation":92,"title":97},"When a project record is created, the script creates the group from the linked team members' numbers and stores the group id on the record, so later automations can post updates into the right thread.",{"code":91,"lang":78},"curl --request POST \\\n  --url https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fgroups \\\n  --header 'Authorization: Bearer wpt_YOUR_TOKEN' \\\n  --header 'Content-Type: application\u002Fjson' \\\n  --data '{\"subject\":\"Acme Launch Team\",\"participants\":[\"+15551234567\",\"+15559876543\"],\"description\":\"Coordination for the Q3 launch. Keep it on topic.\"}'",{"availability":8,"ban_risk":5,"method":81,"operationId":93,"path":94,"summary":95,"tag":9,"url":96},"createGroup","\u002Fgroups","Create a group","\u002Fdocs\u002Fapi\u002Fgroups\u002Fcreate-group\u002F","Create a group for a new project record",{"body":99,"curl":100,"operation":102,"title":108},"A script checks the number on creation and sets a checkbox plus a checked-on date. Records that fail are routed to a review view rather than silently sitting in the queue waiting to fail at send time.",{"code":101,"lang":78},"curl --request GET \\\n  --url 'https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fcontacts\u002F+15551234567\u002Fexists' \\\n  --header 'Authorization: Bearer wpt_YOUR_TOKEN'",{"availability":8,"ban_risk":5,"method":103,"operationId":104,"path":105,"summary":106,"tag":57,"url":107},"GET","checkContactExists","\u002Fcontacts\u002F{id}\u002Fexists","Check one number for WhatsApp","\u002Fdocs\u002Fapi\u002Fcontacts\u002Fcheck-contact-exists\u002F","Validate numbers as records are added",{"body":110,"curl":111,"operation":113,"title":120},"The webhook automation creates a message record linked to the contact it came from, so the whole conversation is visible from the contact record without leaving the base.",{"code":112,"lang":78},"curl --request GET \\\n  --url 'https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fmessages\u002Flist\u002F15551234567@s.whatsapp.net?count=50&offset=0&from_me=true&time_from=1789372800000&time_to=1789459200000' \\\n  --header 'Authorization: Bearer wpt_YOUR_TOKEN'",{"availability":114,"ban_risk":115,"method":103,"operationId":116,"path":117,"summary":118,"tag":85,"url":119},"beta","low","listMessages","\u002Fmessages\u002Flist\u002F{chat_id}","List messages in a chat","\u002Fdocs\u002Fapi\u002Fmessages\u002Flist-messages\u002F","Capture inbound replies as linked records",[122,125,128],{"a":123,"q":124},"Yes. Airtable caps the number of fetch calls and record queries a single script run may make, so a script that loops over a whole table will hit the ceiling. Process one record per run by driving the automation from a view, which is also better pacing for your number.","Are there limits on fetch inside a script action?",{"a":126,"q":127},"In a settings table restricted by field permissions, or in a field that collaborators cannot read, passed into the script as an input variable. Hard-coding it in the script body means anyone who can open the automation can read it, which is usually more people than you think.","Where should the token live?",{"a":129,"q":130},"The webhook trigger is part of Airtable's automation features and availability depends on your plan, so check before you design around it. The outbound half - Run a script with fetch - is available more widely, and plenty of useful integrations only need that direction.","Do I need a paid plan for the webhook trigger?",{"docs_url":132,"name":133},"https:\u002F\u002Fsupport.airtable.com\u002Fdocs\u002Frun-a-script-action","Run a script automation action (fetch)","Airtable","Airtable ships no WhatsApp integration, official or third-party, that covers groups, Channels or status - the marketplace options route through Meta's platform or through another automation tool. A Run a script action calling Wapito keeps the whole flow inside the base.",[137],{"feature":59,"title":138,"url":139},"Check whether an Airtable record's number is on WhatsApp","\u002Fintegrations\u002Fairtable\u002Fcheck-number\u002F",{"hub":141,"pillars":142,"siblings":151},"\u002Fintegrations\u002F",[143,144,145,148,149,150],{"title":12,"url":15},{"title":28,"url":31},{"title":146,"url":147},"Group Events","\u002Fwhatsapp-api\u002Fgroup-events\u002F",{"title":39,"url":42},{"title":58,"url":61},{"title":52,"url":55},[152],{"title":153,"url":154},"Google Sheets","\u002Fintegrations\u002Fgoogle-sheets\u002F",{"breadcrumb":156,"canonical":164,"description":165,"h1":166,"lastmod":167,"title":168},[157,160,162],{"name":158,"url":159},"Home","\u002F",{"name":161,"url":141},"Integrations",{"name":134,"url":163},"\u002Fintegrations\u002Fairtable\u002F","https:\u002F\u002Fwapito.com\u002Fintegrations\u002Fairtable\u002F","Connect WhatsApp to Airtable with the Run a script automation action (fetch) and the When webhook received trigger. Set up in about 20 minutes.","Integrate WhatsApp with Airtable","2026-09-15","WhatsApp Airtable Integration | Wapito",[170,171,172,173,174],"Create an automation with the trigger you want - a record entering a view is usually the cleanest - and add a Run a script action.","Declare the fields you need as input variables rather than querying the whole table, and pass the channel token in as one of them from a settings record.","In the script, call fetch against the Wapito endpoint with the Authorization header, and read the response body before deciding whether the step succeeded.","Write the message id and the status back to the record with an update, so the view empties as records are processed and a re-run cannot double-send.","For inbound events, add a second automation with the webhook trigger, copy its URL, and register it in Wapito.","20 minutes","airtable","t3a","data",{"docs_url":180,"name":181},"https:\u002F\u002Fsupport.airtable.com\u002Fdocs\u002Fwhen-webhook-received-trigger","When webhook received trigger",[183,187,190,193],{"label":184,"id":185,"lang":78,"code":77,"html":186},"curl","flow-0","\u003Cpre class=\"shiki shiki-themes github-light-default github-dark-default\" style=\"background-color:#ffffff;--shiki-dark-bg:#0d1117;color:#1f2328;--shiki-dark:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#953800;--shiki-dark:#FFA657\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\"> --request\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> POST\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --url\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fmessages\u002Ftext\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --header\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> 'Authorization: Bearer wpt_YOUR_TOKEN'\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --header\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> 'Content-Type: application\u002Fjson'\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --data\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> '{\"to\":\"+15551234567\",\"body\":\"Your order #4182 has shipped. Track it here: https:\u002F\u002Facme.example\u002Ft\u002F4182\",\"typing_time\":3}'\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"label":184,"id":188,"lang":78,"code":91,"html":189},"flow-1","\u003Cpre class=\"shiki shiki-themes github-light-default github-dark-default\" style=\"background-color:#ffffff;--shiki-dark-bg:#0d1117;color:#1f2328;--shiki-dark:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#953800;--shiki-dark:#FFA657\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\"> --request\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> POST\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --url\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fgroups\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --header\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> 'Authorization: Bearer wpt_YOUR_TOKEN'\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --header\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> 'Content-Type: application\u002Fjson'\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --data\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> '{\"subject\":\"Acme Launch Team\",\"participants\":[\"+15551234567\",\"+15559876543\"],\"description\":\"Coordination for the Q3 launch. Keep it on topic.\"}'\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"label":184,"id":191,"lang":78,"code":101,"html":192},"flow-2","\u003Cpre class=\"shiki shiki-themes github-light-default github-dark-default\" style=\"background-color:#ffffff;--shiki-dark-bg:#0d1117;color:#1f2328;--shiki-dark:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#953800;--shiki-dark:#FFA657\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\"> --request\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> GET\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --url\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> 'https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fcontacts\u002F+15551234567\u002Fexists'\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --header\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> 'Authorization: Bearer wpt_YOUR_TOKEN'\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"label":184,"id":194,"lang":78,"code":112,"html":195},"flow-3","\u003Cpre class=\"shiki shiki-themes github-light-default github-dark-default\" style=\"background-color:#ffffff;--shiki-dark-bg:#0d1117;color:#1f2328;--shiki-dark:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#953800;--shiki-dark:#FFA657\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\"> --request\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> GET\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --url\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> 'https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fmessages\u002Flist\u002F15551234567@s.whatsapp.net?count=50&#x26;offset=0&#x26;from_me=true&#x26;time_from=1789372800000&#x26;time_to=1789459200000'\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --header\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> 'Authorization: Bearer wpt_YOUR_TOKEN'\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",1790464904137]