Back to Catalog

Generate property investment reports with GPT-4, SerpAPI, Google Docs & Airtable

MarthMarth
106 views
2/3/2026
Official Page

How It Works βš™οΈ

This workflow is a comprehensive, multi-AI-agent system that acts as a virtual property analysis team. It automates the entire process from initial data research to final report delivery.

  1. Data Research (AI Agent 1): The workflow is triggered by an input of a property address. The first AI agent, powered by Google Search, immediately scours the web to gather all relevant public data, including historical sales data, local rental prices, and nearby amenities.
  2. Market Analysis (AI Agent 2): All the raw data from the first agent is consolidated. A second AI agent, powered by OpenAI, then performs a deep, intelligent analysis. It identifies key insights, calculates potential rental yield, and assigns a definitive "Investment Score."
  3. Report Generation (AI Agent 3): A third AI agent, also using OpenAI, takes the structured analysis and writes a professional, persuasive report. The report is then automatically populated into a pre-designed Google Docs template, ensuring a polished and professional look.
  4. Database Logging & Delivery: The final report is automatically converted to a PDF and sent to the client via Gmail. Simultaneously, the key findings (address, score, key takeaways) are logged into an Airtable database for quick reference and tracking.

How to Set Up πŸ› οΈ

  1. Import the Workflow: Copy the provided workflow JSON and import it into your n8n instance.
  2. Configure Credentials:
    • Google Search: Add your API Key.
    • OpenAI: Add your API Key.
    • Google Docs: Add your OAuth2 credential.
    • Airtable: Add your API Key and token.
    • Gmail: Add your OAuth2 credential.
  3. Customize Workflow Nodes:
    • Node 6 (Google Docs): Create a new Google Doc to serve as your report template. Use placeholders like {{ report_content }} and {{ property_address }} to define where the AI-generated text will go. Then, copy the document ID from the URL and paste it into this node's parameters.
    • Node 7 (Airtable): Replace [YOUR AIRTABLE BASE ID] and Property Reports with your specific Airtable base and table names. Ensure your table has columns that match the data you are sending (Property Address, Investment Score, etc.).
  4. Save & Activate: Once all settings and credentials are configured, save the workflow and click the "Inactive" toggle in the top-right corner to make it live.

Generate Property Investment Reports with GPT-4, SerpAPI, and Google Docs

This n8n workflow automates the generation of comprehensive property investment reports. It streamlines the process of gathering property data, enriching it with search engine results, and then using AI to synthesize a detailed report, which can be output to Google Docs and Airtable.

What it does

This workflow simplifies the creation of property investment analyses by:

  1. Triggering Manually: The workflow is initiated manually, allowing you to control when a report is generated.
  2. Retrieving Property Data from Airtable: It fetches property details from a specified Airtable base, likely including address, price, and other relevant metrics.
  3. Generating Report Content with OpenAI: It leverages OpenAI (presumably GPT-4) to generate a detailed investment report based on the property data.
  4. Creating a Google Doc: The generated report content is then used to create a new document in Google Docs.
  5. Sending an Email Notification: An email notification is sent via Gmail, likely containing a link to the newly created Google Doc report.
  6. Updating Airtable: The workflow updates the Airtable record with information about the generated report, such as the Google Docs URL.
  7. Executing Custom Code: A Code node is included, which could be used for data manipulation, formatting, or additional logic within the workflow.
  8. Providing Workflow Notes: Sticky notes are used to provide context or instructions within the workflow.

Prerequisites/Requirements

To use this workflow, you will need:

  • n8n Account: A running instance of n8n.
  • Airtable Account: With a base containing property investment data.
  • OpenAI API Key: For accessing GPT-4 or other OpenAI models.
  • Google Account: With access to Google Docs and Gmail.
  • Credentials: Configured n8n credentials for Airtable, OpenAI, and Google (OAuth for Google Docs and Gmail).

Setup/Usage

  1. Import the Workflow: Import the provided JSON into your n8n instance.
  2. Configure Credentials:
    • Set up your Airtable API key or OAuth credentials.
    • Set up your OpenAI API key.
    • Set up your Google OAuth credentials for Google Docs and Gmail.
  3. Customize Nodes:
    • Airtable Node: Configure it to connect to your specific Airtable base and table where property data is stored.
    • OpenAI Node: Adjust the prompt to guide the AI in generating the desired report structure and content.
    • Google Docs Node: Specify the folder where new reports should be created and potentially a template if desired.
    • Gmail Node: Configure the recipient, subject, and body of the email notification.
    • Code Node: Review and modify the JavaScript code if custom logic is required for data processing or formatting.
  4. Execute Workflow: Click the "Execute workflow" button to run the workflow manually and generate a report.

Related Templates

Track free Udemy courses automatically with RapidAPI and Google Sheets

This workflow fetches free Udemy courses hourly via the Udemy Coupons and Courses API on RapidAPI, filters them, and updates a Google Sheet. It sends alerts on errors for smooth monitoring. --- Node-by-Node Explanation Schedule Trigger: Runs the workflow every hour automatically. Fetch Udemy Coupons: Sends POST request to the Udemy Coupons and Courses API on RapidAPI to get featured courses. Check API Success: Verifies if the API response is successful; routes accordingly. Filter Free Courses: Selects only courses with sale_price of zero (free courses). Send Error Notification: Emails admin if API fetch fails for quick action. Sync Courses to Google Sheet: Appends or updates the filtered free courses into Google Sheets. --- Google Sheets Columns id name price sale_price image lectures views rating language category subcategory slug store sale_start --- Google Sheets Setup & Configuration Steps Create Google Sheet: Create or open a Google Sheet where you want to sync courses. Set Headers: Add columns headers matching the fields synced (id, name, price, etc.). Enable Google Sheets API: Go to Google Cloud Console, enable Google Sheets API for your project. Create Service Account: In Google Cloud Console, create a Service Account with editor access. Download Credentials: Download the JSON credentials file from the service account. Share Sheet: Share your Google Sheet with the Service Account email (found in JSON file). Configure n8n Google Sheets Node: Use the service account credentials, set operation to β€œAppend or Update”, provide Sheet URL and sheet name or gid. Match Columns: Map the course fields to your sheet columns and set id as the unique key for updates. --- How to Obtain RapidAPI Key & Setup API Request Sign up/Login: Visit RapidAPI Udemy Coupons and Courses API and create an account or log in. Subscribe to API: Subscribe to the Udemy Coupons and Courses API plan (free or paid). Get API Key: Navigate to your dashboard and copy your x-rapidapi-key. Configure HTTP Request: In your workflow’s HTTP Request node: Set method to POST. URL: https://udemy-coupons-and-courses.p.rapidapi.com/featured.php Add headers: x-rapidapi-host: udemy-coupons-and-courses.p.rapidapi.com x-rapidapi-key: your copied API key Set content type to multipart/form-data. Add body parameter: page=1 (or as needed). Test API: Run the node to ensure the API responds with data successfully before continuing workflow setup. --- Use Cases & Benefits Automates daily updates of free Udemy courses in your sheet using the Udemy Coupons and Courses API on RapidAPI. Saves manual effort in tracking coupons and deals. Enables quick error alerts to maintain data accuracy. Ideal for course aggregators, affiliate marketers, or learning platforms needing fresh course data. --- Who This Workflow Is For Content curators and edtech platforms tracking free courses. Affiliate marketers promoting Udemy deals. Anyone needing real-time access to updated free Udemy coupons.

Sk developer By Sk developer
365

Generate AI images in bulk with Freepik, Google Sheets & Drive

This n8n workflow automates bulk AI image generation using Freepik's Text-to-Image API. It reads prompts from a Google Sheet, generates multiple variations of each image using Freepik's AI, and automatically uploads the results to Google Drive with organized file names. This is perfect for content creators, marketers, or designers who need to generate multiple AI images in bulk and store them systematically. Key Features: Bulk image generation from Google Sheets prompts Multiple variations per prompt (configurable duplicates) Automatic file naming and organization Direct upload to Google Drive Batch processing for efficient API usage Freepik AI-powered image generation Step-by-Step Implementation Guide Prerequisites Before setting up this workflow, you'll need: n8n instance (cloud or self-hosted) Freepik API account with Text-to-Image access Google account with access to Sheets and Drive Google Sheet with your prompts Step 1: Set Up Freepik API Credentials Go to Freepik API Developer Portal Create an account or sign in Navigate to your API dashboard Generate an API key for Text-to-Image service Copy the API key and save it securely In n8n, go to Credentials β†’ Add Credential β†’ HTTP Header Auth Configure as follows: Name: "Header Auth account" Header Name: x-freepik-api-key Header Value: Your Freepik API key Step 2: Set Up Google Credentials Google Sheets Access: Go to Google Cloud Console Create a new project or select existing one Enable Google Sheets API Create OAuth2 credentials In n8n, go to Credentials β†’ Add Credential β†’ Google Sheets OAuth2 API Enter your OAuth2 credentials and authorize with spreadsheets.readonly scope Google Drive Access: In Google Cloud Console, enable Google Drive API In n8n, go to Credentials β†’ Add Credential β†’ Google Drive OAuth2 API Enter your OAuth2 credentials and authorize Step 3: Create Your Google Sheet Create a new Google Sheet: sheets.google.com Set up your sheet with these columns: Column A: Prompt (your image generation prompts) Column B: Name (identifier for file naming) Example data: | Prompt | Name | |-------------------------------------------|-------------| | A serene mountain landscape at sunrise | mountain-01 | | Modern office space with natural lighting | office-02 | | Cozy coffee shop interior | cafe-03 | Copy the Sheet ID from the URL (the long string between /d/ and /edit) Step 4: Set Up Google Drive Folder Create a folder in Google Drive for your generated images Copy the Folder ID from the URL when viewing the folder Note: The workflow is configured to use a folder called "n8n workflows" Step 5: Import and Configure the Workflow Copy the provided workflow JSON In n8n, click Import from File or Import from Clipboard Paste the workflow JSON Configure each node as detailed below: Node Configuration Details: Start Workflow (Manual Trigger) No configuration needed Used to manually start the workflow Get Prompt from Google Sheet (Google Sheets) Document ID: Your Google Sheet ID (from Step 3) Sheet Name: Sheet1 (or your sheet name) Operation: Read Credentials: Select your "Google Sheets account" Double Output (Code Node) Purpose: Creates multiple variations of each prompt JavaScript Code: javascript const original = items[0].json; return [ { json: { ...original, run: 1 } }, { json: { ...original, run: 2 } }, ]; Customization: Add more runs for additional variations Loop (Split in Batches) Processes items in batches to manage API rate limits Options: Keep default settings Reset: false Create Image (HTTP Request) Method: POST URL: https://api.freepik.com/v1/ai/text-to-image Authentication: Generic β†’ HTTP Header Auth Credentials: Select your "Header Auth account" Send Body: true Body Parameters: Name: prompt Value: ={{ $json.Prompt }} Split Responses (Split Out) Field to Split Out: data Purpose: Separates multiple images from API response Convert to File (Convert to File) Operation: toBinary Source Property: base64 Purpose: Converts base64 image data to file format Upload Image to Google Drive (Google Drive) Operation: Upload Name: =Image - {{ $('Get Prompt from Google Sheet').item.json.Name }} - {{ $('Double Output').item.json.run }} Drive ID: My Drive Folder ID: Your Google Drive folder ID (from Step 4) Credentials: Select your "Google Drive account" Step 6: Customize for Your Use Case Modify Duplicate Count: Edit the "Double Output" code to create more variations Update File Naming: Change the naming pattern in the Google Drive upload node Adjust Batch Size: Modify the Loop node settings for your API limits Add Image Parameters: Enhance the HTTP request with additional Freepik parameters (size, style, etc.) Step 7: Test the Workflow Ensure your Google Sheet has test data Click Execute Workflow on the manual trigger Monitor the execution flow Check that images are generated and uploaded to Google Drive Verify file names match your expected pattern Step 8: Production Deployment Set up error handling for API failures Configure appropriate batch sizes based on your Freepik API limits Add logging for successful uploads Consider webhook triggers for automated execution Set up monitoring for failed executions Freepik API Parameters Basic Parameters: prompt: Your text description (required) negative_prompt: What to avoid in the image guidance_scale: How closely to follow the prompt (1-20) numinferencesteps: Quality vs speed trade-off (20-100) seed: For reproducible results Example Enhanced Body: json { "prompt": "{{ $json.Prompt }}", "negative_prompt": "blurry, low quality", "guidance_scale": 7.5, "numinferencesteps": 50, "num_images": 1 } Workflow Flow Summary Start β†’ Manual trigger initiates the workflow Read Sheet β†’ Gets prompts and names from Google Sheets Duplicate β†’ Creates multiple runs for variations Loop β†’ Processes items in batches Generate β†’ Freepik API creates images from prompts Split β†’ Separates multiple images from response Convert β†’ Transforms base64 to binary file format Upload β†’ Saves images to Google Drive with organized names Complete β†’ Returns to loop for next batch Contact Information Robert A Ynteractive For support, customization, or questions about this workflow: πŸ“§ Email: rbreen@ynteractive.com 🌐 Website: https://ynteractive.com/ πŸ’Ό LinkedIn: https://www.linkedin.com/in/robert-breen-29429625/ Need help implementing this workflow or want custom automation solutions? Get in touch for professional n8n consulting and workflow development services.

Robert BreenBy Robert Breen
3045

AI-powered cover letter generator with resume matching & Google Docs

This workflow generates a tailored cover letter using a provided resume and job description. Users submit a job description via form (or workflow input), the workflow uses an LLM to write a professional, casual cover letter, then creates and populates a Google Doc and redirects the user to download or review it. --- What You Must Update Before Running Resume Content Update the Configuration node to include your own resume text. This resume is injected directly into the prompt and used as the sole source of experience and qualifications. LLM Credentials The workflow uses OpenRouter with an OpenAI-compatible model. You must: Add your own OpenRouter API credentials Optionally change the model selection if desired Google Docs Credentials This workflow creates and edits Google Docs. You must: Connect your own Google Docs OAuth credentials Update the destination folder ID if you want files saved elsewhere --- What You Can Configure Prompt Tone & Constraints Edit the Write Cover Letter agent system prompt to adjust: Tone (more formal or more casual) Length Writing style constraints Execution Method The workflow supports: Manual execution via form submission Execution as a sub-workflow via workflow inputs

Joel GambleBy Joel Gamble
165