by Vytenis
Fully automate deep research from start to finish: scrape Google Search results, select relevant sources, scrape & analyze each source in parallel, and generate a comprehensive research report. Who is this for? This workflow is for anyone who needs to research topics quickly and thoroughly: content creators, marketers, product managers, researchers, journalists, students, or anyone seeking deep insights without spending hours browsing websites. If you find yourself opening dozens of browser tabs to piece together information, this template will automate that entire process and deliver comprehensive reports in minutes. How it works Submit your research questions through n8n's chat interface (include as much context as you need) AI generates strategic search queries to explore different angles of your topic (customize the number of queries as needed) Oxylabs scrapes Google Search results for each query (up to 50 results per query) AI evaluates and selects sources that are the most relevant and authoritative Content extraction runs in parallel as Oxylabs scrapes each source and AI extracts key insights Summaries are collected in n8n's data table for final processing AI synthesizes everything into a comprehensive research report with actionable insights Requirements Oxylabs AI Studio API key** – Get a free API key with 1000 credits OpenAI API key** (or use alternatives like Claude, Gemini, and local Ollama LLMs) Setup Install Oxylabs AI Studio as shown on this page Set your API keys: Oxylabs AI Studio OpenAI Create a data table Select the table name in each data table node Create a sub-workflow: Select the 3 nodes (Scrape content, Summarize content, Insert row) Right-click Select “Convert 3 nodes to sub-workflow” Edit the sub-workflow settings for for parallel execution: Mode: Run once for each item Options → Add Option → disable “Wait For Sub-Workflow Completion” Once you finish all these setup steps, you can run the workflow through n8n's chat interface. For example, send the following message: I'm planning to build a wooden summer house and would appreciate guidance on the process. What are the key considerations I should keep in mind from planning through completion? I'm particularly interested in the recommended construction steps and which materials will ensure long-term durability and quality. Customize this workflow for your needs Feel free to modify the workflow to fit the scale and final output your project requires: To reuse this workflow, clear the data table after the final analysis by adding a Data table node with the Delete row(s) action Scale up** by processing more search queries, increasing results per query beyond 10, and selecting additional relevant URLs Enable JavaScript rendering** in Oxylabs AI Studio (Scraper) node to ensure all content is gathered Adjust the system prompts** in LLM nodes to fit your specific research goals Explore other AI Studio apps** like Browser Agent for interactive browser control or Crawler for mapping entire websites Connect other nodes** like Google Sheets, Notion, Airtable, or webhooks to route results where you need them
by Marth
How it Works This workflow automates customer support for SMEs in five simple steps: Capture requests via a Webhook connected to a contact form. Extract the message to make processing easier. Check categories (e.g., refund-related requests) using an IF node. Save all tickets to a Google Sheet for tracking. Send an acknowledgment email back to the customer automatically. This setup ensures all customer inquiries are logged, categorized, and acknowledged without manual effort. Setup Steps Webhook Add a Webhook node with the path customer-support. Configure your contact form or system to send name, email, and message to this webhook. Extract Message (Set Node) Add a Set node. Map the incoming message field to make it available for other nodes. Check Category (IF Node) Insert an IF node. Example: check if the message contains the word “refund”. This allows you to route refund-related requests differently if needed. Save Ticket (Google Sheets) Connect to Google Sheets with OAuth2 credentials. Operation: Append. Range: Tickets!A:C. Map the fields Name, Email, and Message. Send Acknowledgement (Email Send) Configure the Email Send node with your SMTP credentials. To: ={{$json.email}}. Subject: Support Ticket Received. Body: personalize with {{$json.name}} and include the {{$json.message}}. 👉 With this workflow, SMEs can handle incoming support tickets more efficiently, maintain a simple ticket log, and improve customer satisfaction through instant acknowledgment.
by Oneclick AI Squad
This workflow automates real-time student tracking using iOS Shortcuts and geolocation data, notifying both teachers and parents based on geofenced logic. 🎯 What This Workflow Does Receives student location updates via webhook (iOS Shortcuts) Detects if the student has arrived at school Logs arrival data to Google Sheets Sends email alerts** to teacher and/or parent based on location 🔄 Workflow Steps | Step | Description | | --------------------------- | -------------------------------------------------------- | | Location Update Webhook | Triggered via iOS Shortcut when student location updates | | Process Location Data | Extracts coordinates and metadata | | Student Arrived? | Checks if student entered school zone | | Log School Arrival | Adds arrival data to Google Sheet | | At School? | Double-checks geofence condition before notifying | | Notify Teacher | Sends email if student is confirmed at school | | Notify Parent | Sends email to parent (can vary based on geofence logic) | | Success Response | Returns a 200 response to the triggering device | 🧠 How the Logic Works The student’s phone runs a shortcut when near school. Sends coordinates to webhook. Workflow compares coordinates with predefined geofence (e.g., radius around school). If inside school zone: Log arrival Notify teacher and/or parent Else: Optionally notify parent only 📱 iOS Shortcut Sample (Trigger Setup) Automation Trigger**: Arrive at Location (e.g., School) Action**: Run Shortcut → Make Web Request (POST) POST URL: https://your-n8n-instance.com/webhook/location-update Body Example: { "student_id": "STU042", "student_name": "Anaya Joshi", "lat": 19.0760, "lng": 72.8777, "timestamp": "2025-08-06T08:05:00" } 📊 Google Sheets Logging | Student ID | Name | Date | Time | Status | | ---------- | ----------- | ---------- | ----- | ------- | | STU042 | Anaya Joshi | 2025-08-06 | 08:05 | Arrived | ⚙️ Setup Requirements n8n Instance** with webhook support Google Sheet** with appropriate columns iOS Shortcut** setup on student device Teacher and Parent Email Addresses** configured in workflow
by PhilanthropEAK Automation
Who's it for Small online store owners, new entrepreneurs, and anyone getting started with e-commerce automation. Perfect for beginners who want to automate their order process without complexity or additional costs. Ideal for stores using Shopify, WooCommerce, Etsy, or any platform that supports webhooks. How it works This simple workflow automatically handles new orders by sending professional confirmation emails to customers and notification emails to your team. When a customer places an order, your e-commerce platform sends the order data to this workflow via webhook. The system extracts essential order information like customer details, order number, and total amount, then validates the data to ensure completeness. It sends a beautifully formatted confirmation email to the customer with order details, next steps, and your contact information. Simultaneously, your team receives an order notification email with all the details needed to process and fulfill the order. The workflow includes error handling for incomplete orders and sends appropriate responses back to your e-commerce platform to confirm successful processing. Everything is logged for easy tracking and troubleshooting. How to set up Prerequisites: An online store (Shopify, WooCommerce, etc.) Gmail account or any email service with SMTP 5 minutes for setup Setup steps: Configure your store information: Open the "Store Configuration" node Update with your store name, email addresses, phone number, and website This information appears in customer emails and notifications Set up email credentials: Add your Gmail account or SMTP email service to n8n Use the built-in email credential setup Gmail is free and works perfectly for most small stores Copy the webhook URL: Click on the "New Order Webhook" node Copy the webhook URL that appears This is where your store will send order data Add webhook to your store: Shopify: Go to Settings > Notifications > Webhooks, create new webhook for "Order creation" WooCommerce: WooCommerce > Settings > Advanced > Webhooks, add new webhook for "Order created" Other platforms: Look for webhook, API, or integration settings Test the workflow: Place a test order in your store Check that confirmation email was sent to customer Verify team notification email was received Confirm webhook response shows success Requirements E-commerce platform** with webhook support (Shopify, WooCommerce, BigCommerce, Etsy, etc.) Email account** - Gmail (free) or any SMTP email service n8n instance** - cloud subscription or self-hosted installation Basic store information** - contact details and branding How to customize the workflow Personalize email content: Edit the email templates in the "Send Customer Confirmation" and "Send Team Notification" nodes Add your brand voice and specific messaging Include additional order details or shipping information Add your logo or signature (if using HTML email) Modify order validation: Adjust validation rules in the "Validate Order Data" node Add checks for minimum order amounts Include product-specific validation Set up different handling for different order types Enhance team notifications: Add team member-specific routing based on order value or products Include inventory alerts for low-stock items Add urgency flags for rush orders Set up different notification schedules for weekends vs weekdays Extend functionality: Add SMS notifications using Twilio for urgent orders Include automated inventory updates Set up follow-up email sequences for customer engagement Add order status updates as items are processed and shipped Integration improvements: Connect with Google Sheets to log all orders automatically Add Slack notifications for team collaboration Integrate with shipping services for automatic label creation Link to accounting software for financial tracking This template focuses on simplicity and reliability, using only built-in n8n nodes and free services to get new store owners started with automation quickly and affordably.
by Jose Castillo
Overview This workflow acts as an AI-powered smart time tracker for employees or personal use. It records work sessions via a webhook, logs start/end/break times into n8n Data Tables, and uses OpenAI to automatically summarize working patterns and send reminders or monthly reports via Gmail. How It Works Webhook /track-time → Receives a POST request with a method (start, break, or end) and duration if applicable. Switch Logic → Directs the request to create or update the appropriate record in your Data Table. Data Tables → Store timestamps, break durations, and worker IDs in a secure local table. Schedule Triggers Daily (10:00) → Checks if today’s shift was not started and sends a reminder. Monthly (Day 1, 06:00) → Compiles last month’s working data and sends an AI report to management. OpenAI Analysis Summarizes working hours and productivity trends. Detects missed clock-ins or irregular patterns. Gmail Integration → Sends formatted daily or monthly reports to both employees and supervisors. Example Webhook Requests Start work POST /track-time { "method": "start", "headers": { "id": "EMP001" } } Log a break POST /track-time { "method": "break", "duration": 15, "headers": { "id": "EMP001" } } End work POST /track-time { "method": "end", "headers": { "id": "EMP001" } } Example Email Output Subject: “Workday Summary – EMP001” 🕒 Workday completed successfully Start: 09:00 Break: 15 minutes End: 17:45 AI Summary: Consistent work pattern detected this week. Consider shorter but more frequent breaks.
by Oneclick AI Squad
This n8n workflow automates attendance tracking for construction workers at a designated site in Thaltej, Ahmedabad (GPS coordinates: 23.0489, 72.5118). Using geofencing technology, it logs "Punch In" and "Punch Out" times when workers enter or exit a predefined 100-meter radius around the site, requiring no manual input. Attendance data is stored in Google Sheets for easy access and reporting, and error notifications are sent via email to ensure reliable operation. Good to Know Fully Automated**: Tracks attendance without worker intervention using GPS data from a mobile app. Geofence-Based**: Only logs entries/exits within the Thaltej, Ahmedabad site radius. Structured Logs**: Stores data in Google Sheets with columns for User ID, Punch Type, Punch Date, and Punch Time. Error Handling**: Sends email notifications for any issues in the workflow. Scalable**: Supports multiple workers with unique IDs sent by the GPS app. Real-Time**: Processes location updates instantly for accurate time tracking. How It Works Attendance Tracking Flow Webhook Trigger: Listens for POST requests from a GPS tracking app at the endpoint /webhook/geofence-thaltej-attendance. Expects a JSON payload with: { "latitude": 23.0489, "longitude": 72.5118, "event": "enter", // or "exit" "userId": "worker123" } Validate Geofence & Format Log: Validates the received payload for required fields (latitude, longitude, event, userId). Uses the Haversine formula to check if the coordinates are within 100 meters of Thaltej, Ahmedabad (23.0489, 72.5118). Maps event ("enter" to "in", "exit" to "out") and formats the log with current date and time (e.g., Punch Type: "in", Punch Date: "2025-08-01", Punch Time: "11:53:07"). Skips invalid or out-of-geofence data. Save to Google Sheets: Appends the formatted log to a Google Sheet in the "Attendance" tab, under columns: User ID, Punch Type, Punch Date, Punch Time. Error Notification via Email: Sends an email to a specified address if the workflow encounters errors (e.g., invalid payload or geofence mismatch). Includes error details for troubleshooting. Example Log Output in Google Sheets | User ID | Punch Type | Punch Date | Punch Time | |------------|------------|-------------|------------| | worker123 | in | 2025-08-01 | 11:53:07 | | worker123 | out | 2025-08-01 | 13:30:20 | | worker123 | in | 2025-08-01 | 13:50:21 | How to Use Import Workflow: Copy the workflow JSON (provided below) and import it into n8n via the "Import Workflow" feature. Configure GPS Tracking App: Use a GPS app (e.g., allGeo, Truein, or a custom solution) that supports geofencing and webhook integration. Set the geofence to Thaltej, Ahmedabad (latitude: 23.0489, longitude: 72.5118, radius: 100 meters). Configure the app to send POST requests to the n8n webhook URL (/webhook/geofence-thaltej-attendance) with the payload: { "latitude": 23.0489, "longitude": 72.5118, "event": "enter", // or "exit" "userId": "worker123" } Ensure the app is installed on workers’ devices and running in the background. Set Up Google Sheets: Create a Google Sheet with a tab named "Attendance". Add headers in columns A to D: User ID, Punch Type, Punch Date, Punch Time. Copy the Sheet ID from the URL (e.g., https://docs.google.com/spreadsheets/d/[your_sheet_id]/edit). In n8n, configure Google Sheets OAuth2 credentials and update the sheetId in the workflow. Configure Email Notifications: Set up an email service (e.g., Gmail, SendGrid) in n8n with appropriate credentials. Update the email node with your recipient email address and SMTP settings. Activate Workflow: Save and activate the workflow in n8n. Test by simulating a webhook call or using the GPS app to send a sample payload. Monitor and Verify: Check Google Sheets for attendance logs after workers enter/exit the geofence. Verify error emails are received if issues occur. Requirements n8n Instance**: Self-hosted or cloud-based n8n setup. GPS Tracking App**: A mobile app or service (e.g., allGeo, Truein) that sends geofence events via webhooks. Google Sheets API**: Google Cloud project with Sheets API enabled. OAuth2 credentials configured in n8n. Email Service**: SMTP credentials for an email provider (e.g., Gmail, SendGrid). Worker Devices**: Smartphones with GPS enabled and the tracking app installed. Customizing This Workflow Adjust Geofence Radius**: Modify the radius value in the Function node (e.g., change from 100 meters to 200 meters). Change Location**: Update latitude and longitude in the Function node for a different site. Alternative Storage**: Replace Google Sheets with a database (e.g., MySQL, PostgreSQL) by adding a database node. Custom Email Content**: Modify the email node’s message template for specific error details or branding. Add Authentication**: Secure the webhook with an API key or basic auth in the Webhook node. Multi-Site Support**: Add a Switch node to handle multiple geofence locations by checking coordinates against different sites.
by Calistus Christian
What this workflow does Automatically triages inbound security findings (e.g., from AWS Security Hub via EventBridge → SNS → Webhook), classifies them with an LLM, generates a 3-step remediation plan, and emails a compact incident brief. Pipeline: Webhook → Clean_Finding (normalize) → Classify (LLM) → Plan (LLM) → Gmail (email). You can substitute Microsoft Teams, Slack, etc. Normalizes the incoming finding JSON (title, description, account, resource id/type, updated_at). Uses an LLM to assign incident_type, severity (P0--P3), urgency, short_title, and why (concise rationale). Produces a 3-step remediation plan with owner_hint and success_criteria---kept atomic and practical. Sends a clean HTML email with all details (subject line includes short title, resource, and account). Category: Security / Cloud / Incident Management\ Time to set up: ~10--15 minutes\ Difficulty: Beginner--Intermediate\ Cost: Mostly free (n8n CE; OpenAI usage + Gmail/SMTP as used) * What you'll need An n8n instance reachable over HTTP (for the Webhook node). OpenAI (or compatible) credentials set in n8n. Gmail OAuth2 credentials (or swap Gmail node for SMTP). A source that can POST a Security-Hub-style finding to your webhook (EventBridge/SNS, a SIEM, or curl). Output (Email) Subject: <short_title> - <resource_id> in <account_id> Body: HTML summary with Type, Account, Urgency, Why, Next Actions (3 steps), Owner, Success criteria.
by Kev
Example generated with this workflow: Simply upload a image and a watermark file, and the workflow will automatically combine them into a professional watermarked image. Use cases include adding logos to content, branding product photos, or protecting images with copyright marks. Good to know Completely free solution with no ongoing costs or subscriptions Processing typically takes 5-15 seconds depending on image size The workflow uses a polling mechanism to check job completion every 3 seconds Supports standard image formats (PNG, JPG, etc.) No credit card required to get started How it works The Form Trigger creates a user-friendly upload interface for two files: main image and watermark Both images are uploaded simultaneously to the API's file storage via parallel HTTP requests The uploaded file URLs are aggregated and used to create an image composition job The workflow polls the API every 3 seconds to check job completion status Once completed, the final watermarked image is downloaded and returned as a file download The watermark is automatically positioned in the bottom-right corner with 50% opacity, but this can be easily customized. How to use The form trigger provides a clean interface, but you can replace this with other triggers like webhooks or manual triggers if needed. The workflow handles all file processing automatically and returns the result as a downloadable file. Requirements Free account at jsoncut.com API key with full access (generated at app.jsoncut.com) HTTP Header Auth credential configured in n8n with header name x-api-key Setup steps Sign up for a free account at jsoncut.com Navigate to your dashboard at app.jsoncut.com → API Keys and create a new key with full access In n8n, create an HTTP Header Auth credential named "JsonCut API Key" Set the header name to x-api-key and the value to your API key Apply this credential to all HTTP Request nodes in the workflow Customising this workflow The watermark positioning, size, and opacity can be easily adjusted by modifying the JSON body in the "Create Job" node. You can change: Position coordinates (x, y values from 0 to 1) Watermark dimensions (width, height in pixels) Transparency (opacity from 0.1 to 1.0) Output image dimensions Fit options (cover, contain, fill) For more advanced image generation examples and configuration options, check out the documentation and image generation examples. For bulk processing, you could extend this workflow to handle multiple images or integrate it with cloud storage/database services.
by Ossian Madisson
This n8n template makes it easy to perform DNS lookups directly within your n8n workflow using dns.google, without any API credentials. Use Cases Track changes:** Schedule execution and log DNS answers to track changes to records over time. Monitoring and alerts:** Schedule execution for DNS monitoring to detect misconfiguration and to trigger immediate alerts. Prerequisite checks:** Use in more extensive workflows to ensure DNS resolves correctly before running a website crawl or other sensitive tasks. Good to Know Requires no API credentials. You do not need to sign up for any third party service for DNS resolution. Can easily be modified to use with a webhook instead of the default Forms node for external triggering. By default performs lookup for: A CNAME AAAA MX TXT NS How It Works The workflow checks the input for a specified DNS type. If none is found, it uses all types in a predefined list. It splits the data into separate items for each DNS type. It loops through all items and executes DNS resolution via the highly reliable dns.google service. It aggregates all results into a single, easy-to-use output structure. How to Use Import the template and execute the workflow to enter the domain you want to look up in the Form interface. Connect the final output node to your specific use case (logging, alerting, subsequent workflow steps, etc.).
by moosa
This guide explains how to send form data from n8n to a JotForm form submission endpoint using the HTTP Request node. It avoids the need for API keys and works with standard multipart/form-data. 📌 Overview With this workflow, you can automatically submit data from any source (Google Sheets, databases, webhooks, etc.) directly into JotForm. ✅ Useful for: Pushing information into a form without manual entry. Avoiding API authentication. Syncing external data into JotForm. 🛠 Requirements A JotForm account. An existing JotForm form. Access to the form’s direct link. Basic understanding of JotForm’s field naming convention. ⚙️ Setup Instructions 1. Get the JotForm Submission URL Open your form in JotForm. Go to Publish → Quick Share → Copy Link. Example form URL: sample form Convert it into a submission endpoint by replacing form with submit: Example: submit url 2. Identify Field Names Each JotForm field has a unique identifier like q3_name[first] or q4_email. Steps to find them: Right-click a field in your published form → choose Inspect. Locate the name attribute in the <input> tag. Copy those values into the HTTP Request node in n8n. Example mappings: First Name → q3_name[first] Last Name → q3_name[last] Email → q4_email 3. Configure HTTP Request Node in n8n Method:** POST URL:** Your JotForm submission URL (from Step 1). Content Type:** multipart/form-data Body Parameters:** Add field names and values. Example Body Parameters: { "q3_name[first]": "John", "q3_name[last]": "Doe", "q4_email": "john.doe@example.com" } 4. Test the Workflow Trigger the workflow (manually or with a trigger node). Submit test data. Check JotForm → Submissions to confirm the entry appears. 🚀 Use Cases Automating lead capture from CRMs or websites into JotForm. Syncing data from Google Sheets, Airtable, or databases. Eliminating manual data entry when collecting responses. 🎛 Customization Tips Replace placeholder values (John, Doe, john.doe@example.com) with dynamic values. Add more fields by following the same naming convention. Use n8n expressions ({{$json.fieldName}}) to pass values dynamically.
by Sven Rösser
Overview This workflow provides a universal webhook endpoint that dynamically routes incoming requests to different subflows. It allows you to manage multiple API-like endpoints from a single entry point, while ensuring proper error handling and consistent responses. How it works Webhook Receiver – A single URL accepts requests. Method Detection – Branches capture the request method. Route Resolver – Matches the action parameter and method against your route configuration. Execute Subflow – If valid, the matching workflow is executed. Error Handling – If invalid, the workflow responds with a clear status code and JSON error. About the action parameter The action query parameter is the key that controls routing: In your Routes Config, every route is defined with an action name, a list of allowed HTTP methods, and the target subflow ID. When a request comes in, the workflow looks up the provided action in this config. If the action is valid and the method is allowed, the corresponding subflow is executed. If not, the workflow returns a structured error. In other words: Config side** → map action → subflow ID Request side** → send ?action=... → determines which subflow runs This makes action both the mapping key in the configuration and the control key for triggering the correct logic. Setup steps Import the workflow into n8n. Define your routes in the Routes Config node. Each route contains: action name allowed HTTP methods target subflow ID This workflow is useful if you want to: Expose multiple clean API endpoints without creating many Webhook nodes Ensure consistent error handling across all endpoints Keep your n8n setup more structured and maintainable 👉 A practical solution to turn n8n into a flexible and maintainable API gateway.
by Aitor | 1Node
This n8n automation connects your Typeform forms with Vapi AI, allowing you to immediately call new form respondents with a personalized message from a Vapi AI assistant, as soon as a form submission is received. 🧾 Requirements Typeform A Typeform account Typeform personal access token and credentials enabled in n8n A Typeform form published that includes a phone number field Vapi A Vapi account with credit A connected phone number to make calls An assistant created and ready to make calls Your Vapi API key 🔗 Useful Links n8n Typeform Credentials Setup Vapi Docs 🔄 Workflow Breakdown 1. Trigger: Typeform Submission Triggered when a new response is submitted to your Typeform. The form must include a phone number field. 2. Wait 2 Minutes Adds a short delay before proceeding. Useful to ensure form data is fully synced or to give time for related automations. 3. Set Vapi Fields (Manual Step) Set the required fields for the Vapi API call: phone number id - connected in Vapi assistant id - the assistant enabled in the call Vapi API key - your secure API key 4. Start Outbound Vapi Call Sends a POST request to https://api.vapi.ai/call Payload includes: Respondent’s phone number (from Typeform) Vapi assistant id Vapi phone number id to initiate the call ✏️ Template Customization Guidance How to Adapt for Your Specific Needs Personalize the Call Content:** Include additional fields in your Typeform (e.g., first name, interest, location). In n8n, map these form fields into the payload sent to Vapi. Update your Vapi assistant’s prompt/script to reference these variables for a highly personalized experience. Conditional Call Logic:** Use n8n's logic nodes (e.g., IF, Switch) to, for example: Only trigger calls if a respondent checks a checkbox (e.g., consent or interest). Use a different Vapi assistant or phone number based on responses (e.g., language preference or location). Advanced Routing:** Configure the workflow to choose different assistants, phone numbers, or call scripts based on the respondent’s answers. Store assistant IDs or numbers as environment variables or reference them from a lookup table for dynamic selection. 📞 Examples: Using Form Data to Personalize Calls Greeting by Name:** If your Typeform collects first_name, map it into the Vapi payload. Your assistant script can begin, "Hi {{first_name}}, thanks for your interest in XYZ!" Custom Message Based on Product Interest:** Add a product_interest field in Typeform. Pass its value to Vapi and have the assistant mention the product, e.g., “I see you’re interested in our Premium Plan…” Reference Appointment Times or Locations:** Collect appointment_time and/or city fields, and tailor the call to reconfirm booking details using these inputs. 🛠️ Troubleshooting & Tips Call Not Triggering:** Ensure your Typeform webhook connection and credentials are correctly set up in n8n. Check that your workflow is active and the trigger node is configured for the correct form. Invalid Phone Number Format:** Vapi requires numbers in full international format (e.g., +11234567890). Use n8n expressions to clean or verify the incoming number if needed. Missing Data in the Call:** Confirm that additional fields (e.g., first_name) exist in the Typeform response and that your mapping in n8n matches the exact field names. Failed API Call:** Double-check your Vapi phone number id, assistant id, and API key. Use n8n’s execution logs to inspect the payload sent to Vapi for debugging. Duplicate Calls:** If your Typeform allows multiple submissions, add logic in n8n to check for and avoid duplicate calls, for example by maintaining a record of called numbers. 🙋♂️ Need Help? Feel free to contact us at 1 Node Get instant access to a library of free resources we created.