HTTP Request workflow'ları
1.200 sonuç — 3 indirilebilir workflow dosyası, 1.197 kaynağa bağlı n8n referansı
Extend videos with audio using Fal, OpenAI, and Upload-Post for TikTok
Quick overview This workflow accepts a video URL and prompt, uses Fal.ai (ltx-2.3-quality) to extend the video forward with generated audio, generates an SEO-friendly title with OpenAI, downloads the finished video, and uploads it to TikTok via the Upload-Post API. How it works Triggers from either an n8n Form submission or an incoming Webhook request containing video_url and prompt. Sends the video URL and prompt to Fal.ai’s ltx-2.3-quality extend-video endpoint to start an asynchronous high-quality render with audio generation enabled. Waits 60 seconds and repeatedly polls Fal.ai’s queue status endpoint until the job status returns COMPLETED. Fetches the completed Fal.ai request details to retrieve the final generated video URL. Sends the original prompt to OpenAI (GPT-5) to generate a short, clickable, SEO-oriented video title. Downloads the generated video file and uploads it to Upload-Post with the generated title, targeting the TikTok platform. Setup Add a Fal.run API credential (HTTP Header Auth) and confirm the extend-video and status/request URLs match your Fal.ai account and model. Add an OpenAI API credential and, if needed, change the model in the title-generation step.
Notify new Jumia orders with Telegram and WhatsApp Cloud API alerts
Quick Overview This workflow polls the Jumia Vendor API for recent orders, formats each new order into a readable alert, and sends notifications to both Telegram and WhatsApp, while tracking processed order IDs in an n8n Data Table to prevent duplicate messages. How it works Runs manually or on a 5-minute schedule to start the order-check process. Requests an access token from the Jumia Vendor API using a refresh token. Fetches recent orders from the Jumia Vendor API and normalizes the order data into a consistent structure. Checks an n8n Data Table to skip any orders that have already been processed. Formats a detailed notification message containing order, customer, totals, and shipping information. Sends the notification to a Telegram chat and then sends the same message via the WhatsApp Cloud API. Inserts the order ID and metadata into the n8n Data Table to mark the order as processed. Setup Provide your Jumia Vendor API values (client_id, refresh_token, and seller ID) in the HTTP request and normalization steps. Create an n8n Data Table named jumia_processed_orders with columns seller_id, marketplace, order_id, status, first_seen, notified_at, and raw_payload. Add Telegram cre
Generate sound effects from chat with Groq, ElevenLabs and Google Drive
Quick Overview This workflow turns an n8n Chat message into a generated sound effect using Groq (Llama 3.3) to refine the prompt, calls the ElevenLabs sound-generation API to create an MP3, uploads the file to Google Drive, and replies in chat with a shareable link. How it works Receives a message in an n8n Chat trigger containing the user’s description of a sound. Uses Groq (Llama 3.3) to rewrite the description into a single detailed ElevenLabs sound-effects prompt and choose duration and prompt-influence settings. Parses the model’s JSON response and clamps duration (0.5–30s) and prompt influence (0–1), falling back to the original message if parsing fails. Sends the prompt and settings to the ElevenLabs sound-generation API and downloads the generated MP3. Uploads the MP3 to Google Drive with a timestamped filename based on the prompt text. Responds in chat with the prompt used, the final settings, and a Google Drive link, or returns a friendly error message if generation fails. Setup Create an ElevenLabs API credential using HTTP Header Auth (header name xi-api-key) and select it on the ElevenLabs request. Add a Groq API credential and select it on the Groq Llama model node. C
Rename Japan e-bookkeeping receipts and invoices with Gemini and Google Drive
Quick overview Helps Japanese businesses digitizing paper invoices and receipts under Japan's Electronic Bookkeeping Act. Files in a Google Drive INPUT folder are read with Google Gemini OCR, then copied to OUTPUT with a compliant searchable filename (date_partner_amount_type) or to SKIP for human review. Originals are never modified. How it works Runs manually to start processing. Lists up to the configured maximum number of files in a Google Drive INPUT folder and iterates through them one at a time. Downloads each file from Google Drive, detects its MIME type, base64-encodes the content, and prepares a Gemini request payload. Sends supported images and PDFs to the Google Gemini generateContent API to extract document count, transaction date, partner, amount, and document type as JSON. Builds a compliant filename in the format YYYYMMDD_partner_amount_type.ext when the response indicates a single valid document with required fields. Copies the original file to a Google Drive OUTPUT folder using the new filename, or copies it to a SKIP folder unchanged when the file type is unsupported or the extraction is ambiguous (non-document/multiple documents/missing fields). Setup Create thr
Send ranked freight quote PDFs with GPT-4o, Google Sheets, Gmail and PDFShift
Quick overview This workflow receives shipment requests via webhook, pulls carrier rate data from Google Sheets, uses OpenAI GPT-4o to generate a ranked HTML freight quote, converts it to a PDF with PDFShift, and emails the PDF to the customer via Gmail, with Slack alerts on workflow errors. How it works Receives a POST webhook request containing shipment details like origin, destination, weight, mode, and customer contact information. Reads rate information in parallel from three carrier tabs in a Google Sheets spreadsheet (BlueDart, DTDC, and Delhivery). Combines the carrier results and calculates per-carrier total cost based on the shipment weight. Sends the shipment and carrier data to OpenAI GPT-4o to generate a complete HTML quote page with a ranked comparison table. Converts the generated HTML into an A4 PDF file using the PDFShift API. Emails the PDF quote to the customer using Gmail with a prefilled subject and message. If the workflow fails, posts an error alert message to a Slack channel. Setup Configure the webhook path in n8n and copy the production webhook URL into the system that submits shipment requests. Add Google Sheets OAuth2 credentials and ensure the reference
Handle Shopify Admin GraphQL requests with error handling and retries
Quick Overview This sub-workflow is called by another n8n workflow to execute Shopify Admin GraphQL queries and mutations via HTTP, adding input validation, detailed error detection (including rate limits), and automatic retries with exponential backoff before returning the final Shopify response. How it works Receives input from a parent workflow execution, including a Shopify GraphQL query, shop API endpoint, and Admin API access token. Validates required inputs, normalizes the shop endpoint, and builds the Shopify Admin GraphQL request payload with variables and API version defaults. Sends the POST request to the Shopify Admin GraphQL endpoint with the X-Shopify-Access-Token header and captures the full HTTP response. Parses the response to detect HTTP/network failures, GraphQL errors, Shopify userErrors, bulk/job failures, and throttle status from Shopify cost extensions. If throttled or encountering retryable server/network errors, waits for the calculated backoff interval and retries the same Shopify GraphQL request up to the configured maximum. If non-retryable errors remain, stops the execution and returns a formatted error object; otherwise returns the Shopify data, rate-l
Track meal nutrition from photos with LINE, Google Gemini and Google Sheets
Quick Overview This workflow receives meal photos via LINE, uses Google Gemini to estimate nutrition facts and generate advice, stores the photo in Google Drive, logs the results to Google Sheets, and replies to the user in LINE with a formatted analysis. How it works Receives a POST webhook event from LINE when a user sends a message. Checks whether the incoming LINE message contains an image and stops processing if it does not. Downloads the image content from the LINE Messaging API and sends it to Google Gemini to identify foods, estimate nutrition values, and generate health guidance. If the AI response indicates the image is not food, sends a LINE push message asking the user to submit a clearer meal photo. If the AI response is valid, parses the returned text into structured fields (food items, macros, calories, score, and advice) and calculates remaining calories based on a daily goal. Uploads the meal photo to Google Drive, appends the nutrition log (including the Drive image URL) to Google Sheets, and sends the formatted nutrition summary back to the user via LINE. Setup Create a LINE Messaging API channel, enable the webhook, and add the workflow’s webhook URL (the /MealT
Post approved Trello bookkeeping drafts to Xero with receipt attachments
Quick overview This workflow listens for an “Approved” label on a Trello card, reads the AI draft bookkeeping JSON from card comments, and posts the corresponding transaction to Xero. It then adds a Xero deep link back to Trello, uploads receipt images as Xero attachments, and moves the card to Done. How it works Triggers in Trello when a user adds the configured Approved label to a card on the target board. Fetches the card’s comments, extracts the ` payload, validates required fields, and skips processing if a ` sentinel comment already exists. For SPEND_MONEY and PAY_BILL entries, pulls active Xero bank accounts and resolves the bank account and payment reference from the draft and any reviewer comments, pausing to request confirmation on the Trello card if values are ambiguous. For PAY_BILL entries, fetches open supplier bills from Xero and either matches the payment to a single ACCPAY invoice or asks the reviewer to confirm the bill in a Trello comment. Builds and posts the appropriate Xero record (Bank Transaction, Bill, Payment, or Manual Journal) via the Xero API and generates a Xero deep link for the created entity. Immediately writes the `` deep link back to Trello, then
Draft funding-based cold email openers with Datahyena and OpenAI GPT-4o
Quick overview This workflow runs daily at 9am to fetch recent $1M+ funding events from Datahyena, uses OpenAI Chat Completions to generate a two-sentence cold email opener referencing each raise, and outputs a structured draft record with company and funding details. How it works Runs every morning at 9am on a schedule. Requests up to 15 funding events from the last day from the Datahyena Funding Events API, filtered to rounds with at least $1M raised. Splits the API response so each funding event is processed individually. Sends the company and funding details to the OpenAI Chat Completions API to generate a concise, funding-aware cold email opener. Outputs a cleaned draft object containing the company name, domain, round, amount, announcement date, and generated opener text. Setup Add an HTTP Header Auth credential for Datahyena (header X-API-Key) and select it in the Datahyena request step. Add an HTTP Header Auth credential for OpenAI (header Authorization: Bearer ) and select it in the OpenAI request step. Update the prompt text in the OpenAI request to replace “EDIT THIS WITH WHAT YOU SELL” with your actual offer. Optionally connect a destination after the final output to st
Create real estate listing video ads with OpenAI and Videotok
Quick Overview This workflow takes a real estate listing, uses OpenAI to generate ad copy and a video generation prompt, then sends it to the Videotok API to create a 9:16 vertical listing video ad with a caption and compliance notes. How it works Starts manually to test the workflow with a sample property listing. Builds a listing record containing the address, listing details, and image URLs (replace this with your real listing source). Sends the listing data to OpenAI to generate structured JSON for a video ad, including a script, generation prompt, caption, and compliance notes. Parses the OpenAI output and maps it into a Videotok generation payload with brand kit, reference images, quality, duration, and an idempotency key. Calls the Videotok Generations API to create the vertical video ad using the generated prompt and listing images. Setup Add environment variables for OPENAI_API_KEY, VIDEOTOK_API_KEY, and VIDEOTOK_BRAND_KIT_ID. Replace the sample listing step with your own source (CRM, Airtable, Google Sheets, MLS export, or scraper) and ensure it outputs address, listing_details, and listing_image_urls. Confirm the Videotok template slug (viral-video-ads) and adjust the vi
Log Airtable worklogs to Tempo with Jira and Slack notifications
Quick overview This workflow runs nightly to pull time entries from Airtable, converts Jira issue keys to issue IDs, logs the time to Tempo via its REST API, archives the processed entries back to Airtable, and sends a confirmation message to a Slack user. How it works Runs on a schedule. Fetches all records from the Airtable “Daily Worklog” table. Looks up each entry’s Jira issue by Issue Key to retrieve the issue ID. Builds a Tempo worklog payload (authorAccountId, issueId, start date/time, description, and time spent calculated from start/end times). Sends each worklog to the Tempo to create the worklog entry. Archives each submitted entry into the Airtable “Worklog History” table and deletes the original record from “Daily Worklog”. Aggregates the processed records and sends a direct message in Slack confirming the upload. Setup Connect Airtable credentials and update the base ID and table IDs for “Daily Worklog” and “Worklog History” to match your Airtable setup. Connect Jira Software Cloud credentials with access to the projects/issues referenced by the Airtable Issue Key field. Connect an HTTP Bearer credential using your Tempo API token, and replace YOUR_TEMPO_AUTHOR_ID in
Back up workflows daily to GitHub with incremental updates
Quick overview This workflow runs nightly to back up all workflows from your n8n instance to a GitHub repository, creating a new JSON file for new workflows and only updating existing files when the workflow has changed to avoid unnecessary commits. How it works Runs every day at 11 PM on a schedule trigger. Retrieves a list of all workflows in your n8n instance using the n8n API and processes them one by one. Checks GitHub to see whether a backup JSON file already exists for the current workflow. If no file exists, fetches the full workflow JSON from n8n and creates a new file in the GitHub repository. If a file exists, calls the GitHub Commits API to get the latest commit date for that file and compares it to the workflow’s updatedAt date in n8n. If n8n is newer, downloads the latest workflow JSON and updates the existing file on GitHub; otherwise it skips updating to avoid creating a commit. Waits 10 seconds between GitHub operations to reduce the chance of hitting GitHub API rate limits. Setup Create an n8n API key and add an n8n API credential, then select it in the n8n nodes that list and fetch workflows. Create a GitHub Personal Access Token with repo access and add a GitHub
Send railway queue predictions with OpenAI GPT-4o-mini, Gmail, and Google Sheets
Quick overview This workflow collects train trip details via an n8n Form, predicts station crowding and queue times with a rule-based algorithm, generates a short advisory with OpenAI, then emails a color-coded HTML alert via Gmail and logs each prediction to Google Sheets. How it works Receives a submission from an n8n Form containing the traveler’s train, station, date/time, class, e-ticket status, passenger count, and email. Calculates a crowd score, alert level, queue-time breakdown (platform, ticket counter, security, walking), and an optimal station arrival time using an in-workflow rules engine. Sends the prediction context to OpenAI Chat Completions (gpt-4o-mini) to generate a plain-text, under-120-word travel advisory. Combines the advisory with the prediction results and assigns alert colors and text based on the computed alert level. Builds a color-coded HTML email summarizing the recommended arrival time and queue breakdown. Appends the prediction details to a Google Sheets tab and sends the HTML alert email to the traveler via Gmail. Setup Add an OpenAI API credential for the HTTP request to https://api.openai.com/v1/chat/completions. Connect Google Sheets OAuth2 and r
Run a Telegram productivity assistant with OpenRouter, Google Calendar, and Todoist
Quick overview This workflow turns Telegram into a personal assistant that manages your Google Calendar and Todoist, sends daily briefings, and alerts you when meetings are booked or things break. How it works Morning briefing - Every day at a set time, the workflow checks your Google Calendar for today's events and your Todoist for open tasks, then sends you two Telegram messages: a calendar rundown and a task summary grouped by project with priority flags. Cal.com booking alerts - When someone books, reschedules, or cancels a call on Cal.com, or a meeting ends, the workflow catches the webhook and sends you a Telegram notification with the attendee's name, email, meeting title, and time. Talk to your assistant on Telegram - Message the bot with text or a voice note. Voice notes get transcribed automatically. Your message goes to an AI agent that can read, create, update, or delete calendar events, and create, find, update, complete, or delete Todoist tasks, all through natural conversation. The agent replies back in the same chat. Error alerts - If any part of the workflow fails, you get a Telegram message with the failed node, the error, and a link to the execution, so you catch
Sync Salesforce MQL lead journey timelines with Factors.ai
Quick overview This workflow runs on a schedule to fetch new, unsynced Salesforce leads, pulls account journey activity from the Factors.ai API based on the lead’s email domain, and updates the lead in Salesforce with a formatted journey summary and sync/status fields. How it works Runs on a schedule and loads the last successful run timestamp (defaulting to the last 7 days on first run). Retrieves Salesforce leads created since the last run that match the defined criteria (Demo Request conversion type, not converted, and not yet Factors-synced). Processes leads in batches and checks whether each lead has an email address. For leads with an email, extracts the email domain, waits briefly, and calls the Factors.ai account journey endpoint for that domain. Normalizes the Factors.ai response, searches the returned data for a valid email, and proceeds only when a valid email is found. Updates the Salesforce lead with a formatted journey/activity summary and marks the lead as Factors-synced, or writes a status to Salesforce when the lead has no email or no matching email is found. After all items are processed, commits the current run timestamp as the new last run time to avoid missing
Match packing list PDFs to purchase orders with docling-serve and Ollama
Quick overview This workflow checks an SFTP “pending” folder for packing list PDFs, converts them to OCR text with docling-serve, and uses Ollama (Gemma) to extract structured line items and match them to a purchase order, logging results and moving files to completed or error folders. How it works Runs every hour and lists files in the SFTP pending folder. Filters for PDFs, downloads each file from SFTP, and logs a PENDING status to an n8n Data Table. Uploads the PDF to docling-serve for OCR conversion (RapidOCR, English) and stops with an error status if conversion fails. Sends the converted Markdown text to an Ollama Gemma chat model to extract a normalized packing-list JSON (PO number, parties, and line items). Loads the matching purchase order data and cross-references PO vs packing-list SKUs and quantities to determine whether the document matches. If SKU count matches but SKU text differs, uses an Ollama-based healing step to detect likely OCR-misread SKUs, applies the corrections, and re-runs the cross-reference. Writes the final status (COMPLETED or ERROR) to the n8n Data Table and moves the PDF in SFTP into a folder named after the status (for example, completed/ or error
Triage and reply to email threads with GPT-5.2, IMAP, Gmail, and ESP suppression
Quick overview Automatically read inbound email replies, use AI to detect intent and sentiment, and send natural in-thread responses. Opt-out requests are confirmed, pushed to your ESP suppression list, and logged. A hands-off reply layer that keeps your sender reputation clean while every conversation gets fast, human-sounding answer. How it works An IMAP trigger watches your inbox and picks up new reply emails as they arrive. A filter keeps only genuine replies, and a code node strips quoted history and signatures, then parses the sender name, email, and threading headers. A code node builds a strict AI prompt with the cleaned message and your trigger-word hints. The OpenAI node classifies intent and sentiment and drafts a reply, returning strict JSON. A code node normalizes the response, enforces a clean email structure, and adds your CTA once. A switch routes on the unsubscribe flag: normal replies go back in-thread through Gmail, opt-outs get a neutral confirmation. Opt-outs are posted to your ESP suppression list, every action is logged to a data table, and Gmail labels are updated to mark the thread handled. Setup (5 steps): Add your IMAP credentials to the email trigger and
Summarize Zoom meeting recordings in Notion with Smallest.ai and Gemini
Quick Overview This workflow receives Zoom recording webhooks, downloads the meeting recording, transcribes it with Smallest.ai, summarizes it with a Google Gemini-powered AI Agent, and saves the summary and action items as a new page in a Notion database. How it works Receives a POST webhook from Zoom and checks whether the event is Zoom’s endpoint URL validation challenge. For URL validation events, computes the Zoom CRC HMAC SHA-256 token and responds with the plain and encrypted tokens to verify the endpoint. For recording events, immediately acknowledges Zoom with a 200 OK response, then extracts the meeting topic, metadata, and an audio recording download URL from the webhook payload. Downloads the recording file from Zoom using the provided download token for authorization. Sends the downloaded audio to Smallest.ai to generate a full transcription. Uses a LangChain AI Agent with Google Gemini to produce a short meeting summary and a list of action items from the transcript. Creates a new page in a Notion database using the meeting topic as the title and the generated summary as the page content. Setup Create and configure a Zoom Event Notifications webhook (for a recording-c
Answer legal questions with Groq using CanLII and CourtListener
Quick overview This workflow collects a legal question via an n8n form, retrieves supporting authorities from CourtListener or CanLII, and uses a Groq-hosted Llama model to produce an answer grounded only in the retrieved text with verified, non-hallucinated citations. How it works Receives a legal question through an n8n form and captures the selected source database (CourtListener or CanLII) plus optional CanLII database and case IDs. Routes the request to CourtListener full-text search or to CanLII case metadata and citator endpoints based on the selected database. For CourtListener, pulls the top search results and fetches the full text of the top-ranked opinion; for CanLII, loads the selected case and a list of related cases from the CanLII citator. Normalizes the retrieved items into a single numbered “sources” block with excerpts that the model can cite. Sends the question and sources to a Groq Chat Model (Llama 3.3 70B) and parses the response into a structured format containing an answer, a supported flag, and a list of citations. Verifies every cited source index against the retrieved sources, drops any mismatches, and renders an HTML result page showing the answer, verif
Triage PubMed clinical literature with Gemini and Google Sheets and Docs
Quick overview Automatically retrieve recent PubMed articles, identify the three papers most worth reading first using AI, and generate structured clinical literature triage reports in Google Sheets and Google Docs. How it works Reads the first pending literature request from the Google Sheets "Search Requests" tab. Marks the request as “processing” in Google Sheets and builds the PubMed query parameters (keyword, max results, specialty, clinical question, and output language). Searches PubMed via the NCBI E-utilities API (esearch) and fetches the corresponding article abstracts and metadata as XML (efetch). Parses and normalizes the XML into a structured list of candidate articles including title, abstract, journal, publication year, DOI, and PubMed URL. Sends the aggregated candidate articles to Google Gemini to select and rank the best three papers and generate a structured clinical evaluation for each. Appends the three ranked papers with summaries and triage fields to a Google Sheets “Triage Results” tab. Generates a formatted triage report in Google Docs and updates the original request status to “completed” in Google Sheets. Setup Create a Google Sheets OAuth connection and
Generate sales call proposals with GPT-4o, Google Slides, PandaDoc, and Gmail
Quick overview This workflow captures details via an n8n form, uses OpenAI to generate structured proposal copy, and then produces a client-ready proposal either by filling a Google Slides template or by creating a PandaDoc document with pricing, before emailing the proposal to the prospect via Gmail. How it works Triggers when a sales rep submits the built-in n8n “Sales Call Logging Form” with the prospect and deal details. Sends the submitted company, problem, solution, scope, timeline, and cost to OpenAI (GPT‑4o) to generate proposal fields as a single JSON object. For the PandaDoc path, creates a PandaDoc document from a template via the PandaDoc API and injects the OpenAI-generated text plus a pricing table based on the form’s Cost value. Emails the PandaDoc proposal to the prospect using Gmail. For the Google Slides path, copies a proposal template in Google Drive and names it using the OpenAI-generated proposal title. Replaces placeholder tokens in the copied Google Slides presentation with the OpenAI-generated proposal sections. Emails the Google Slides proposal link to the prospect using Gmail. Setup Add an OpenAI API credential and confirm the selected GPT‑4o model is ava
Deduplicate and archive Notion database rows daily with an audit log
Quick overview This workflow runs daily and deduplicates a Notion database by grouping pages on a chosen property, keeping one “best” page per group (newest by default) and archiving the rest, then appending an audit recap line to a Notion log page. How it works Runs every day at 2am on a schedule. Fetches all pages from the selected Notion database, including full property data. Groups pages by a configurable Notion property (for example, “Name”) and identifies groups with more than one page. Chooses one page to keep per duplicate group based on the configured rule (newest, oldest, or mostFilled) and prepares the other pages for archiving. Archives each duplicate page in Notion by updating the page to archived: true. Appends a one-line recap (scanned count, duplicates found, and how many were archived) to a specified Notion page as an audit log. Setup Add your Notion API credentials and share both the target database and the audit log page with the Notion integration. Select the Notion database to deduplicate in the database ID field of the database query step. Update MATCH_PROPERTY and KEEP_RULE in the code step to match your database and your preferred keeper strategy. Paste the
Analyse tender PDFs with LlamaParse, Gemini, Supabase and WhatsApp chat
Quick overview This workflow lets you upload a tender/RFT PDF via an n8n form, extracts key fields into Google Sheets using LlamaParse, and makes the document chat-searchable by embedding section chunks with Google Gemini and storing them in Supabase for WhatsApp-based Q&A with Anthropic/DeepSeek. How it works Receives a tender PDF when a user submits the n8n form. Generates a normalized document ID from the uploaded filename and sends the PDF to LlamaParse to parse the full text, split it into predefined tender sections, and extract structured tender metadata. Normalizes the extracted fields, calculates days-until-deadline and a bid score/recommendation, and appends or updates a row in a Google Sheets tender tracker. Combines the parsed full text with the section/page mapping, then carves each section into paragraph-aligned text chunks with page references. Creates an embedding for each chunk using the Google Gemini Embeddings API and inserts the chunk text and vectors into a Supabase table for retrieval. Triggers on an incoming WhatsApp message, embeds the user’s question with Google Gemini, runs a Supabase RPC vector search scoped to a single doc_id, and builds a context payload
Log multi-platform ad spend from Meta, Google, TikTok, and Taboola to Airtable
Quick overview This workflow runs hourly to collect campaign spend, clicks, and impressions from Meta (Facebook), Google Ads, TikTok Ads, and Taboola, then upserts the metrics into Airtable and creates a time-stamped snapshot record for Meta campaigns. Get Implementation help via https://nocode.expert How it works Runs every 60 minutes on a schedule. Builds today’s date values (including a sheet-friendly format and PST-adjusted dates) for use in API queries and Airtable filters. Pulls ACTIVE and PAUSED campaign lists from up to four Meta ad accounts and searches Airtable for existing rows matching today’s date. Matches Meta campaigns to Airtable records by Campaign ID, fetches Meta Insights for each campaign for today, and keeps only campaigns with non-zero spend. Upserts the Meta campaign metrics into the Airtable “Daily Ad Spend” table and creates a separate time-slot snapshot row in a second Airtable table. Retrieves today’s performance data from Taboola (via OAuth token), Google Ads (GAQL query), and TikTok Ads (integrated report), then normalizes the results into a single campaign list. Filters out non-spending campaigns and upserts the remaining Google, Taboola, and TikTok ca