Back to Catalog

Generate customer statements with credit risk analysis, PDF export & Gmail delivery

Jitesh DugarJitesh Dugar
80 views
2/3/2026
Official Page

Automated Customer Statement Generator with Risk Analysis & Credit Monitoring

Transform account statement management from hours to minutes - automatically compile transaction histories, calculate aging analysis, monitor credit limits, assess payment risk, and deliver professional PDF statements while syncing with accounting systems and alerting your team about high-risk accounts.

What This Workflow Does

Revolutionizes customer account management with intelligent statement generation, credit monitoring, and risk assessment:

  • Webhook-Triggered Generation - Automatically creates statements from accounting systems, CRM updates, or scheduled monthly triggers
  • Smart Data Validation - Verifies transaction data, validates account information, and ensures statement accuracy before generation
  • Running Balance Calculation - Automatically computes running balances through all transactions with opening and closing balance tracking
  • Comprehensive Aging Analysis - Calculates outstanding balances by age buckets (Current, 31-60 days, 61-90 days, 90+ days)
  • Overdue Detection & Highlighting - Automatically identifies overdue amounts with visual color-coded alerts on statements
  • Professional HTML Design - Creates beautifully branded statements with modern layouts, aging breakdowns, and payment information
  • PDF Conversion - Transforms HTML into print-ready, professional-quality PDF statements with preserved formatting
  • Automated Email Delivery - Sends branded emails to customers with PDF attachments and account summary details
  • Google Drive Archival - Automatically saves statements to organized folders with searchable filenames by account
  • Credit Limit Monitoring - Tracks credit utilization, detects over-limit accounts, and generates alerts at 75%, 90%, and 100%+ thresholds
  • Risk Scoring System - Calculates 0-100 risk scores based on payment behavior, aging, credit utilization, and overdue patterns
  • Payment Behavior Analysis - Tracks days since last payment, average payment time, and payment reliability trends
  • Automated Recommendations - Generates prioritized action items like "escalate to collections" or "suspend new credit"
  • Accounting System Integration - Syncs statement delivery, balance updates, and risk assessments to QuickBooks, Xero, or FreshBooks
  • Conditional Team Notifications - Different Slack alerts for overdue accounts (urgent) vs current accounts (standard) with risk metrics
  • Transaction History Table - Detailed itemization of all charges, payments, and running balances throughout statement period
  • Multiple Payment Options - Includes bank details, online payment links, and account manager contact information

Key Features

  • Automatic Statement Numbering: Generates unique sequential statement numbers with format STMT-YYYYMM-AccountNumber for easy tracking and reference
  • Aging Bucket Analysis: Breaks down outstanding balances into current (0-30 days), 31-60 days, 61-90 days, and 90+ days overdue categories
  • Credit Health Dashboard: Visual indicators show credit utilization percentage, available credit, and over-limit warnings in statement
  • Risk Assessment Engine: Analyzes multiple factors including overdue amounts, credit utilization, payment frequency to calculate comprehensive risk score
  • Payment Behavior Tracking: Monitors days since last payment, identifies patterns like "Excellent - Pays on Time" or "Poor - Chronic Late Payment"
  • Intelligent Recommendations: Automatically generates prioritized action items based on account status, risk level, and payment history
  • Transaction Running Balance: Shows balance after each transaction so customers can verify accuracy and reconcile their records
  • Over-Limit Detection: Immediate alerts when accounts exceed credit limits with escalation recommendations to suspend new charges
  • Good Standing Indicators: Visual green checkmarks and positive messaging for accounts with no overdue balances
  • Account Manager Details: Includes dedicated contact person for questions, disputes, and payment arrangements
  • Dispute Process Documentation: Clear instructions on how customers can dispute transactions within required timeframe
  • Multi-Currency Support: Handles USD, EUR, GBP, INR with proper currency symbols and formatting throughout statement
  • Accounting System Sync: Logs statement delivery, balance updates, and risk assessments in QuickBooks, Xero, FreshBooks, or Wave
  • Conditional Workflow Routing: Different automation paths for high-risk overdue accounts vs healthy current accounts
  • Activity Notes Generation: Creates detailed CRM notes with account summary, recommendations, and delivery confirmation
  • Print-Optimized PDFs: A4 format with proper margins and color preservation for professional printing and digital distribution

Perfect For

  • B2B Companies with Trade Credit - Manufacturing, wholesale, distribution businesses offering net-30 or net-60 payment terms
  • Professional Services Firms - Consulting, legal, accounting firms with monthly retainer clients and time-based billing
  • Subscription Services (B2B) - SaaS platforms, software companies, membership organizations with recurring monthly charges
  • Equipment Rental Companies - Construction equipment, party rentals, medical equipment with ongoing rental agreements
  • Import/Export Businesses - International traders managing accounts receivable across multiple customers and currencies
  • Healthcare Billing Departments - Medical practices, clinics, hospitals tracking patient account balances and payment plans
  • Educational Institutions - Private schools, universities, training centers with tuition payment plans and installments
  • Telecommunications Providers - Phone, internet, cable companies sending monthly account statements to business customers
  • Utilities & Energy Companies - Electric, gas, water utilities managing commercial account statements and collections
  • Property Management Companies - Real estate firms tracking tenant charges, rent payments, and maintenance fees
  • Credit Card Companies & Lenders - Financial institutions providing detailed account activity and payment due notifications
  • Wholesale Suppliers - Distributors supplying restaurants, retailers, contractors on credit terms with monthly settlements
  • Commercial Insurance Agencies - Agencies tracking premium payments, policy charges, and outstanding balances
  • Construction Contractors - General contractors billing for progress payments, change orders, and retention releases

What You Will Need

Required Integrations

HTML to PDF API - PDF conversion service (API key required) - supports HTML/CSS to PDF API, PDFShift, or similar providers (approximately 1-5 cents per statement)

Gmail or SMTP - Email delivery service for sending statements to customers (OAuth2 or SMTP credentials)

Google Drive - Cloud storage for statement archival and compliance record-keeping (OAuth2 credentials required)

Optional Integrations

  • Slack Webhook - Team notifications for overdue and high-risk accounts (free incoming webhook)
  • Accounting Software Integration - QuickBooks, Xero, FreshBooks, Zoho Books API for automatic statement logging and balance sync
  • CRM Integration - HubSpot, Salesforce, Pipedrive for customer activity tracking and collections workflow triggers
  • Payment Gateway - Stripe, PayPal, Square payment links for one-click online payment from statements
  • Collections Software - Integrate with collections management platforms for automatic escalation of high-risk accounts
  • SMS Notifications - Twilio integration for payment due reminders and overdue alerts via text message

Quick Start

  1. Import Template - Copy JSON workflow and import into your n8n instance
  2. Configure PDF Service - Add HTML to PDF API credentials in the "HTML to PDF" node
  3. Setup Gmail - Connect Gmail OAuth2 credentials in "Send Email to Customer" node and update sender email
  4. Connect Google Drive - Add Google Drive OAuth2 credentials and set folder ID for statement archival
  5. Customize Company Info - Edit "Enrich with Company Data" node to add company name, address, contact details, bank information
  6. Configure Credit Limits - Set default credit limits and payment terms for your customer base
  7. Adjust Risk Thresholds - Modify risk scoring logic in "Credit Limit & Risk Analysis" node based on your policies
  8. Update Email Template - Customize email message in Gmail node with your branding and messaging
  9. Configure Slack - Add Slack webhook URLs in both notification nodes (overdue and current accounts)
  10. Connect Accounting System - Replace code in "Update Accounting System" node with actual API call to QuickBooks/Xero/FreshBooks
  11. Test Workflow - Submit sample transaction data via webhook to verify PDF generation, email delivery, and notifications
  12. Schedule Monthly Run - Set up scheduled trigger for automatic end-of-month statement generation for all customers

Customization Options

  • Custom Aging Buckets - Modify aging periods to match your business (e.g., 0-15, 16-30, 31-45, 46-60, 60+ days)
  • Industry-Specific Templates - Create different statement designs for different customer segments or business units
  • Multi-Language Support - Translate statement templates for international customers (Spanish, French, German, Mandarin)
  • Dynamic Credit Terms - Configure different payment terms by customer type (VIP net-45, standard net-30, new customers due on receipt)
  • Late Fee Calculation - Add automatic late fee calculation and inclusion for overdue balances
  • Payment Plan Tracking - Track installment payment plans with remaining balance and next payment due
  • Interest Charges - Calculate and add interest charges on overdue balances based on configurable rates
  • Partial Payment Allocation - Show how partial payments were applied across multiple invoices
  • Customer Portal Integration - Generate secure links for customers to view statements and make payments online
  • Batch Processing - Process statements for hundreds of customers simultaneously with bulk email delivery
  • White-Label Branding - Create different branded templates for multiple companies or subsidiaries
  • Custom Risk Models - Adjust risk scoring weights based on your industry and historical payment patterns
  • Collections Workflow Integration - Automatically create tasks in collections software for high-risk accounts
  • Early Payment Incentives - Highlight early payment discounts or prompt payment benefits on statements
  • Dispute Management - Track disputed transactions and adjust balances accordingly with audit trail

Expected Results

  • 90% time savings - Reduce statement creation from 2-3 hours to 5 minutes per customer
  • 100% accuracy - Eliminate calculation errors and missing transactions through automated processing
  • 50% faster payment collection - Professional statements with clear aging drive faster customer payments
  • Zero filing time - Automatic Google Drive organization with searchable filenames by account
  • 30% reduction in overdue accounts - Proactive credit monitoring and risk alerts prevent bad debt
  • Real-time risk visibility - Instant identification of high-risk accounts before they become uncollectible
  • Automated compliance - Complete audit trail with timestamped statement delivery and accounting sync
  • Better customer communication - Professional statements improve customer satisfaction and reduce disputes
  • Reduced bad debt write-offs - Early warning system catches payment issues before they escalate
  • Improved cash flow - Faster statement delivery and payment reminders accelerate cash collection

Pro Tips

  • Schedule Monthly Batch Generation - Run workflow automatically on last day of month to generate statements for all customers simultaneously
  • Customize Aging Thresholds - Adjust credit alert levels (75%, 90%, 100%) based on your risk tolerance and industry norms
  • Segment Customer Communications - Use different email templates for VIP customers vs standard customers vs delinquent accounts
  • Track Payment Patterns - Monitor days-to-pay metrics by customer to identify chronic late payers proactively
  • Integrate with Collections - Connect workflow to collections software to automatically escalate 90+ day accounts
  • Include Payment Portal Links - Add unique payment links to each statement for one-click online payment
  • Automate Follow-Up Reminders - Build workflow extension to send payment reminders 7 days before due date
  • Create Executive Dashboards - Export risk scores and aging data to business intelligence tools for trend analysis
  • Document Dispute Resolutions - Log all disputed transactions in accounting system with resolution notes
  • Test with Sample Data First - Validate aging calculations with known test data before processing real customer accounts
  • Archive Statements for Compliance - Maintain 7-year archive in Google Drive organized by year and customer
  • Monitor Credit Utilization Trends - Track credit utilization changes month-over-month to predict cash flow needs
  • Benchmark Against Industry - Compare your DSO and bad debt ratios to industry averages to identify improvement areas
  • Personalize Account Manager Info - Assign dedicated contacts to customers and include their direct phone and email
  • Use Descriptive Transaction Details - Ensure transaction descriptions clearly explain charges to reduce disputes

Business Impact Metrics

Track these key metrics to measure workflow success:

  • Statement Generation Time - Measure average minutes from trigger to delivered statement (target: under 5 minutes)
  • Statement Volume Capacity - Count monthly statements generated through automation (expect 10-20x increase in capacity)
  • Aging Calculation Accuracy - Track statements with aging errors (target: 0% error rate)
  • Days Sales Outstanding (DSO) - Monitor average days to collect payment (expect 15-30% reduction)
  • Bad Debt Write-Offs - Track uncollectible accounts as percentage of revenue (expect 30-50% reduction)
  • Collection Rate - Monitor percentage of invoices collected within terms (expect 10-20% improvement)
  • Customer Disputes - Count statement disputes and billing inquiries (expect 50-70% reduction)
  • Over-Limit Accounts - Track number of accounts exceeding credit limits (early detection prevents losses)
  • High-Risk Account Identification - Measure days between risk detection and collection action (target: within 48 hours)
  • Cash Flow Improvement - Calculate working capital improvement from faster collections (typical: 20-35% improvement)

Template Compatibility

  • Compatible with n8n version 1.0 and above
  • Works with n8n Cloud and Self-Hosted instances
  • Requires HTML to PDF API service subscription (1-5 cents per statement)
  • No coding required for basic setup
  • Fully customizable for industry-specific requirements
  • Integrates with major accounting platforms via API
  • Multi-currency and multi-language ready
  • Supports batch processing for large customer bases
  • Compliant with financial record-keeping regulations

Ready to transform your account receivables management? Import this template and start generating professional statements with credit monitoring, risk assessment, and automated collections alerts - improving your cash flow, reducing bad debt, and freeing your accounting team to focus on strategic financial management!

Generate Customer Statements with Credit Risk Analysis & PDF Export

This n8n workflow automates the process of generating customer statements, performing a basic credit risk analysis, exporting the statement as a PDF, and delivering it via Gmail. It streamlines a critical business operation, ensuring timely and informed communication with customers.

What it does

This workflow performs the following key steps:

  1. Receives a Trigger: The workflow is initiated by an external webhook call.
  2. Performs an HTTP Request: It makes an HTTP request, likely to retrieve customer data or initiate a statement generation process from an external system.
  3. Conditional Logic (Credit Risk Analysis): An "If" node evaluates the data received from the HTTP request. This likely serves as a basic credit risk analysis, routing the workflow based on a specific condition (e.g., customer's credit score, outstanding balance, payment history).
  4. Generates PDF (Conditional Path - True): If the credit risk condition evaluates to true, the workflow interacts with Google Drive, suggesting it either retrieves a template or saves the generated PDF statement there.
  5. Sends Email (Conditional Path - True): Following the Google Drive interaction, an email is sent via Gmail, presumably containing the generated customer statement PDF.
  6. Code Execution (Conditional Path - False): If the credit risk condition evaluates to false, a "Code" node is executed. This suggests custom logic is applied for customers who do not meet the "true" condition, perhaps for further processing, logging, or sending a different type of notification.

Prerequisites/Requirements

To use this workflow, you will need:

  • n8n Instance: A running n8n instance.
  • Webhook Integration: An external system or application configured to send a webhook to trigger this workflow.
  • Google Drive Account: Configured with n8n credentials for file operations (e.g., saving generated PDFs, accessing templates).
  • Gmail Account: Configured with n8n credentials for sending emails.
  • External API/Service: An API endpoint that the "HTTP Request" node will call to retrieve customer data or generate statement content.

Setup/Usage

  1. Import the Workflow: Import the provided JSON into your n8n instance.
  2. Configure Credentials:
    • Set up your Google Drive credentials in n8n.
    • Set up your Gmail credentials in n8n.
  3. Configure Webhook:
    • Activate the "Webhook" node and copy the generated webhook URL.
    • Configure your external system to send a POST request to this URL to trigger the workflow.
  4. Configure HTTP Request:
    • Update the "HTTP Request" node with the correct URL, method, headers, and body to interact with your customer data or statement generation API.
  5. Configure If Node:
    • Adjust the conditions in the "If" node to define your credit risk analysis logic based on the data received from the "HTTP Request" node.
  6. Configure Google Drive Node (True path):
    • Specify the operation (e.g., "Upload File"), folder ID, and file name for saving the generated PDF statement.
  7. Configure Gmail Node (True path):
    • Customize the "To," "Subject," and "Body" fields for the email. Ensure the generated PDF from the Google Drive node is attached.
  8. Configure Code Node (False path):
    • Modify the JavaScript code within the "Code" node to handle the logic for customers who do not meet the credit risk condition. This could involve logging, sending an internal notification, or initiating a different process.
  9. Activate the Workflow: Once all configurations are complete, activate the workflow.

Related Templates

Track competitor SEO keywords with Decodo + GPT-4.1-mini + Google Sheets

This workflow automates competitor keyword research using OpenAI LLM and Decodo for intelligent web scraping. Who this is for SEO specialists, content strategists, and growth marketers who want to automate keyword research and competitive intelligence. Marketing analysts managing multiple clients or websites who need consistent SEO tracking without manual data pulls. Agencies or automation engineers using Google Sheets as an SEO data dashboard for keyword monitoring and reporting. What problem this workflow solves Tracking competitor keywords manually is slow and inconsistent. Most SEO tools provide limited API access or lack contextual keyword analysis. This workflow solves that by: Automatically scraping any competitor’s webpage with Decodo. Using OpenAI GPT-4.1-mini to interpret keyword intent, density, and semantic focus. Storing structured keyword insights directly in Google Sheets for ongoing tracking and trend analysis. What this workflow does Trigger — Manually start the workflow or schedule it to run periodically. Input Setup — Define the website URL and target country (e.g., https://dev.to, france). Data Scraping (Decodo) — Fetch competitor web content and metadata. Keyword Analysis (OpenAI GPT-4.1-mini) Extract primary and secondary keywords. Identify focus topics and semantic entities. Generate a keyword density summary and SEO strength score. Recommend optimization and internal linking opportunities. Data Structuring — Clean and convert GPT output into JSON format. Data Storage (Google Sheets) — Append structured keyword data to a Google Sheet for long-term tracking. Setup Prerequisites If you are new to Decode, please signup on this link visit.decodo.com n8n account with workflow editor access Decodo API credentials OpenAI API key Google Sheets account connected via OAuth2 Make sure to install the Decodo Community node. Create a Google Sheet Add columns for: primarykeywords, seostrengthscore, keyworddensity_summary, etc. Share with your n8n Google account. Connect Credentials Add credentials for: Decodo API credentials - You need to register, login and obtain the Basic Authentication Token via Decodo Dashboard OpenAI API (for GPT-4o-mini) Google Sheets OAuth2 Configure Input Fields Edit the “Set Input Fields” node to set your target site and region. Run the Workflow Click Execute Workflow in n8n. View structured results in your connected Google Sheet. How to customize this workflow Track Multiple Competitors → Use a Google Sheet or CSV list of URLs; loop through them using the Split In Batches node. Add Language Detection → Add a Gemini or GPT node before keyword analysis to detect content language and adjust prompts. Enhance the SEO Report → Expand the GPT prompt to include backlink insights, metadata optimization, or readability checks. Integrate Visualization → Connect your Google Sheet to Looker Studio for SEO performance dashboards. Schedule Auto-Runs → Use the Cron Node to run weekly or monthly for competitor keyword refreshes. Summary This workflow automates competitor keyword research using: Decodo for intelligent web scraping OpenAI GPT-4.1-mini for keyword and SEO analysis Google Sheets for live tracking and reporting It’s a complete AI-powered SEO intelligence pipeline ideal for teams that want actionable insights on keyword gaps, optimization opportunities, and content focus trends, without relying on expensive SEO SaaS tools.

Ranjan DailataBy Ranjan Dailata
161

Generate song lyrics and music from text prompts using OpenAI and Fal.ai Minimax

Spark your creativity instantly in any chat—turn a simple prompt like "heartbreak ballad" into original, full-length lyrics and a professional AI-generated music track, all without leaving your conversation. 📋 What This Template Does This chat-triggered workflow harnesses AI to generate detailed, genre-matched song lyrics (at least 600 characters) from user messages, then queues them for music synthesis via Fal.ai's minimax-music model. It polls asynchronously until the track is ready, delivering lyrics and audio URL back in chat. Crafts original, structured lyrics with verses, choruses, and bridges using OpenAI Submits to Fal.ai for melody, instrumentation, and vocals aligned to the style Handles long-running generations with smart looping and status checks Returns complete song package (lyrics + audio link) for seamless sharing 🔧 Prerequisites n8n account (self-hosted or cloud with chat integration enabled) OpenAI account with API access for GPT models Fal.ai account for AI music generation 🔑 Required Credentials OpenAI API Setup Go to platform.openai.com → API keys (sidebar) Click "Create new secret key" → Name it (e.g., "n8n Songwriter") Copy the key and add to n8n as "OpenAI API" credential type Test by sending a simple chat completion request Fal.ai HTTP Header Auth Setup Sign up at fal.ai → Dashboard → API Keys Generate a new API key → Copy it In n8n, create "HTTP Header Auth" credential: Name="Fal.ai", Header Name="Authorization", Header Value="Key [Your API Key]" Test with a simple GET to their queue endpoint (e.g., /status) ⚙️ Configuration Steps Import the workflow JSON into your n8n instance Assign OpenAI API credentials to the "OpenAI Chat Model" node Assign Fal.ai HTTP Header Auth to the "Generate Music Track", "Check Generation Status", and "Fetch Final Result" nodes Activate the workflow—chat trigger will appear in your n8n chat interface Test by messaging: "Create an upbeat pop song about road trips" 🎯 Use Cases Content Creators: YouTubers generating custom jingles for videos on the fly, streamlining production from idea to audio export Educators: Music teachers using chat prompts to create era-specific folk tunes for classroom discussions, fostering interactive learning Gift Personalization: Friends crafting anniversary R&B tracks from shared memories via quick chats, delivering emotional audio surprises Artist Brainstorming: Songwriters prototyping hip-hop beats in real-time during sessions, accelerating collaboration and iteration ⚠️ Troubleshooting Invalid JSON from AI Agent: Ensure the system prompt stresses valid JSON; test the agent standalone with a sample query Music Generation Fails (401/403): Verify Fal.ai API key has minimax-music access; check usage quotas in dashboard Status Polling Loops Indefinitely: Bump wait time to 45-60s for complex tracks; inspect fal.ai queue logs for bottlenecks Lyrics Under 600 Characters: Tweak agent prompt to enforce fuller structures like [V1][C][V2][B][C]; verify output length in executions

Daniel NkenchoBy Daniel Nkencho
601

Automate invoice processing with OCR, GPT-4 & Salesforce opportunity creation

PDF Invoice Extractor (AI) End-to-end pipeline: Watch Drive ➜ Download PDF ➜ OCR text ➜ AI normalize to JSON ➜ Upsert Buyer (Account) ➜ Create Opportunity ➜ Map Products ➜ Create OLI via Composite API ➜ Archive to OneDrive. --- Node by node (what it does & key setup) 1) Google Drive Trigger Purpose: Fire when a new file appears in a specific Google Drive folder. Key settings: Event: fileCreated Folder ID: google drive folder id Polling: everyMinute Creds: googleDriveOAuth2Api Output: Metadata { id, name, ... } for the new file. --- 2) Download File From Google Purpose: Get the file binary for processing and archiving. Key settings: Operation: download File ID: ={{ $json.id }} Creds: googleDriveOAuth2Api Output: Binary (default key: data) and original metadata. --- 3) Extract from File Purpose: Extract text from PDF (OCR as needed) for AI parsing. Key settings: Operation: pdf OCR: enable for scanned PDFs (in options) Output: JSON with OCR text at {{ $json.text }}. --- 4) Message a model (AI JSON Extractor) Purpose: Convert OCR text into strict normalized JSON array (invoice schema). Key settings: Node: @n8n/n8n-nodes-langchain.openAi Model: gpt-4.1 (or gpt-4.1-mini) Message role: system (the strict prompt; references {{ $json.text }}) jsonOutput: true Creds: openAiApi Output (per item): $.message.content → the parsed JSON (ensure it’s an array). --- 5) Create or update an account (Salesforce) Purpose: Upsert Buyer as Account using an external ID. Key settings: Resource: account Operation: upsert External Id Field: taxid_c External Id Value: ={{ $json.message.content.buyer.tax_id }} Name: ={{ $json.message.content.buyer.name }} Creds: salesforceOAuth2Api Output: Account record (captures Id) for downstream Opportunity. --- 6) Create an opportunity (Salesforce) Purpose: Create Opportunity linked to the Buyer (Account). Key settings: Resource: opportunity Name: ={{ $('Message a model').item.json.message.content.invoice.code }} Close Date: ={{ $('Message a model').item.json.message.content.invoice.issue_date }} Stage: Closed Won Amount: ={{ $('Message a model').item.json.message.content.summary.grand_total }} AccountId: ={{ $json.id }} (from Upsert Account output) Creds: salesforceOAuth2Api Output: Opportunity Id for OLI creation. --- 7) Build SOQL (Code / JS) Purpose: Collect unique product codes from AI JSON and build a SOQL query for PricebookEntry by Pricebook2Id. Key settings: pricebook2Id (hardcoded in script): e.g., 01sxxxxxxxxxxxxxxx Source lines: $('Message a model').first().json.message.content.products Output: { soql, codes } --- 8) Query PricebookEntries (Salesforce) Purpose: Fetch PricebookEntry.Id for each Product2.ProductCode. Key settings: Resource: search Query: ={{ $json.soql }} Creds: salesforceOAuth2Api Output: Items with Id, Product2.ProductCode (used for mapping). --- 9) Code in JavaScript (Build OLI payloads) Purpose: Join lines with PBE results and Opportunity Id ➜ build OpportunityLineItem payloads. Inputs: OpportunityId: ={{ $('Create an opportunity').first().json.id }} Lines: ={{ $('Message a model').first().json.message.content.products }} PBE rows: from previous node items Output: { body: { allOrNone:false, records:[{ OpportunityLineItem... }] } } Notes: Converts discount_total ➜ per-unit if needed (currently commented for standard pricing). Throws on missing PBE mapping or empty lines. --- 10) Create Opportunity Line Items (HTTP Request) Purpose: Bulk create OLIs via Salesforce Composite API. Key settings: Method: POST URL: https://<your-instance>.my.salesforce.com/services/data/v65.0/composite/sobjects Auth: salesforceOAuth2Api (predefined credential) Body (JSON): ={{ $json.body }} Output: Composite API results (per-record statuses). --- 11) Update File to One Drive Purpose: Archive the original PDF in OneDrive. Key settings: Operation: upload File Name: ={{ $json.name }} Parent Folder ID: onedrive folder id Binary Data: true (from the Download node) Creds: microsoftOneDriveOAuth2Api Output: Uploaded file metadata. --- Data flow (wiring) Google Drive Trigger → Download File From Google Download File From Google → Extract from File → Update File to One Drive Extract from File → Message a model Message a model → Create or update an account Create or update an account → Create an opportunity Create an opportunity → Build SOQL Build SOQL → Query PricebookEntries Query PricebookEntries → Code in JavaScript Code in JavaScript → Create Opportunity Line Items --- Quick setup checklist 🔐 Credentials: Connect Google Drive, OneDrive, Salesforce, OpenAI. 📂 IDs: Drive Folder ID (watch) OneDrive Parent Folder ID (archive) Salesforce Pricebook2Id (in the JS SOQL builder) 🧠 AI Prompt: Use the strict system prompt; jsonOutput = true. 🧾 Field mappings: Buyer tax id/name → Account upsert fields Invoice code/date/amount → Opportunity fields Product name must equal your Product2.ProductCode in SF. ✅ Test: Drop a sample PDF → verify: AI returns array JSON only Account/Opportunity created OLI records created PDF archived to OneDrive --- Notes & best practices If PDFs are scans, enable OCR in Extract from File. If AI returns non-JSON, keep “Return only a JSON array” as the last line of the prompt and keep jsonOutput enabled. Consider adding validation on parsing.warnings to gate Salesforce writes. For discounts/taxes in OLI: Standard OLI fields don’t support per-line discount amounts directly; model them in UnitPrice or custom fields. Replace the Composite API URL with your org’s domain or use the Salesforce node’s Bulk Upsert for simplicity.

Le NguyenBy Le Nguyen
942