Avoid Asking Redundant Questions with Dynamically Generated Forms using OpenAI Target Audience This workflow has been built for those who require a form to capture as much data as possible as well as the answers to predefined questions, whilst optimising the user experience by avoiding asking redundant questions. Use Case When creating a form to capture information, it can be useful to give the user an opportunity to input a long answer to a large, open-ended question. We then want to drill down to answer specific questions that we require the answer to. When doing this, we don't want to ask duplicate questions. This particular scenario imagines an AI consultancy capturing leads. What it Does This workflow requires users to input basic information and then answer an open ended question. The specific questions on the next page will only be those that weren't answered in the open-ended question. How it Works The open-ended question (and relevant basic information) is analysed by an LLM to determine which specific questions have not been answered. Chain-of-thought reasoning is utilised and the output structure is specified with the Structured Output Parser.
Tags
Related workflows
See all AI Automation→Force AI to use a specific output format
This workflow is for anyone looking to automatically fetch, validate, and parse complex language-based queries into a structured format. Its unique capability lies in not only processing language but also fixing invalid outputs before structuring them. Note that to use this template, you need to be on n8n version 1.19.4 or later.
Schedule weekly focus-time blocks with Google Calendar, OpenAI, and Slack
Quick overview This workflow runs every Sunday at 18:00 to scan your Google Calendar for next week, find free gaps of at least two hours within your working hours, auto-book them as “🧘 Focus Time” events, and then DM you a personalized deep-work plan in Slack using OpenAI. How it works Runs every Sunday at 18:00 on a schedule. Loads your working-hour preferences and fetches all events from your Google Calendar. Calculates weekday-only free gaps within your working hours and keeps only gaps that meet the minimum block length. If no qualifying gap exists, sends you a Slack DM warning that next week is too fragmented for a focus block. If gaps exist, limits the number of blocks for the week and creates “🧘 Focus Time (protected by n8n)” events in Google Calendar for each selected slot. Uses OpenAI to generate a short, personal Slack message that lists the protected blocks and suggests what kind of work fits each. Sends the generated deep-work plan to you as a Slack DM. Setup Add Google Calendar credentials, select the calendar to read from and the calendar to create “🧘 Focus Time” events in. Add Slack credentials and set your target Slack username in both the plan DM and warning mes
Enrich company records with social media links using GPT-4o and Supabase
Quick overview This workflow is manually triggered to pull company names and websites from Supabase, crawl each site with an OpenAI-powered agent to extract social media profile URLs, and write the enriched results to a separate Supabase table. How it works Runs when you manually execute the workflow. Reads all rows from the Supabase companies_input table and keeps the name and website fields for processing. Uses an OpenAI (GPT-4o) agent to crawl the company website, following discovered links and extracting social media profile URLs. Forces the agent output into a structured JSON schema and maps the extracted links into a social_media array. Merges the original company name and website with the extracted social media data. Inserts the enriched record into the Supabase companies_output table. Setup Add a Supabase credential and set the correct project details for both reading from companies_input and writing to companies_output. Add an OpenAI API credential for the GPT-4o chat model used by the crawling agent. Ensure your input table has name and website fields or update the field selection and mapping to match your schema. Confirm the output table accepts the mapped fields (for ex