by KlickTipp
Community Node Disclaimer: This workflow uses KlickTipp community nodes. Introduction This workflow automates Stripe checkout confirmations by capturing transaction data and syncing it into KlickTipp. Upon successful checkout, the contact's data is enriched with purchase details and tagged to trigger a personalized confirmation campaign in KlickTipp. Perfect for digital product sellers, course creators, and service providers seeking an end-to-end automated sales confirmation process. Benefits Instant confirmation emails**: Automatically notify customers upon successful checkout—no manual processing needed. Structured contact data**: Order data (invoice link, amount, transaction ID, products) is stored in KlickTipp custom fields. Smart campaign triggering**: Assign dynamic tags to start automated confirmation or fulfillment sequences. Seamless digital delivery**: Ideal for pairing with tools like Memberspot or Mentortools to unlock digital products post-checkout. Key Features Stripe Webhook Trigger**: Triggers on Triggers on Checkout Session.completed events events. Captures checkout data including product names, order number, and total amount. KlickTipp Contact Sync**: Adds or updates contacts in KlickTipp. Maps Stripe data into custom fields Assigns a tag such as Stripe Checkout to initiate a confirmation campaign. Router Logic (optional)**: Branches logic based on product ID or Stripe payment link. Enables product-specific campaigns or follow-ups. Setup Instructions KlickTipp Preparation Create the following custom fields in your KlickTipp account: | Field Name | Field Type | |--------------------------|------------------| | Stripe \| Products | Text | | Stripe \| Total | Decimal Number | | Stripe \| Payment ID | Text | | Stripe \| Receipt URL | URL | Define a tag for each product or confirmation flow, e.g., Order: Course XYZ. Credential Configuration Connect your Stripe account using an API key from the Stripe Dashboard. Authenticate your KlickTipp connection with username/password credentials (API access required). Field Mapping and Workflow Alignment Map Stripe output fields to the KlickTipp custom fields. Assign the tag to trigger your post-purchase campaign. Ensure that required data like email and opt-in info are present for the contact to be valid. Testing and Deployment Click on Inactive to activate the scenario. Perform a test payment using a Stripe product link. Verify in KlickTipp: The contact appears with email and opt-in status. Custom fields for Stripe are filled. The campaign tag is correctly applied and confirmation email is sent. ⚠️ Note: Use real or test-mode API keys in Stripe depending on your testing environment. Stripe events may take a few seconds to propagate. Campaign Expansion Ideas Launch targeted upsell flows based on the product tag. Use confirmation placeholders like: [[Stripe | Products]] [[Stripe | Total]] [[Stripe | Payment ID]] [[Stripe | Products]] Route customers to different product access portals (e.g., Memberspot, Mentortools). Send follow-up content over multiple days using KlickTipp sequences. Customization You can extend the scenario using a switch node to: Assign different tags per used payment link Branch into upsell or membership activation flows Chain additional automations like CRM entry, Slack notification, or invoice creation. Resources: Use KlickTipp Community Node in n8n Automate Workflows: KlickTipp Integration in n8n
by Yaron Been
Generate Custom Text Content with IBM Granite 3.3 8B Instruct AI This workflow connects to Replicate’s API and uses the ibm-granite/granite-3.3-8b-instruct model to generate text. ✅ 🔵 SECTION 1: Trigger & Setup ⚙️ Nodes 1️⃣ On clicking 'execute' What it does:* Starts the workflow manually when you hit *Execute. Why it’s useful:** Perfect for testing text generation on-demand. 2️⃣ Set API Key What it does:* Stores your *Replicate API key** securely. Why it’s useful:** You don’t hardcode credentials into HTTP nodes — just set them once here. Beginner tip:** Replace YOUR_REPLICATE_API_KEY with your actual API key. 💡 Beginner Benefit ✅ No coding needed to handle authentication. ✅ You can reuse the same setup for other Replicate models. ✅ 🤖 SECTION 2: Model Request & Polling ⚙️ Nodes 3️⃣ Create Prediction (HTTP Request) What it does:* Sends a *POST request** to Replicate’s API to start a text generation job. Parameters include:** temperature, max_tokens, top_k, top_p. Why it’s useful:** Controls how creative or focused the AI text output will be. 4️⃣ Extract Prediction ID (Code) What it does:* Pulls the *prediction ID** and builds a URL for checking status. Why it’s useful:** Replicate jobs run asynchronously, so you need the ID to track progress. 5️⃣ Wait What it does:* Pauses for *2 seconds** before checking the prediction again. Why it’s useful:** Prevents spamming the API with too many requests. 6️⃣ Check Prediction Status (HTTP Request) What it does:* Polls the Replicate API for the *current status** (e.g., starting, processing, succeeded). Why it’s useful:** Lets you loop until the AI finishes generating text. 7️⃣ Check If Complete (IF Condition) What it does:* If the status is *succeeded, it goes to “Process Result.” Otherwise, it loops back to **Wait and retries. Why it’s useful:** Creates an automated polling loop without writing complex code. 💡 Beginner Benefit ✅ No need to manually refresh or check job status. ✅ Workflow keeps retrying until text is ready. ✅ Smart looping built-in with Wait + If Condition. ✅ 🟢 SECTION 3: Process & Output ⚙️ Nodes 8️⃣ Process Result (Code) What it does:* Collects the final *AI output**, status, metrics, and timestamps. Adds info like:** ✅ output → Generated text ✅ model → ibm-granite/granite-3.3-8b-instruct ✅ metrics → Performance data Why it’s useful:** Gives you a neat, structured JSON result that’s easy to send to Sheets, Notion, or any app. 💡 Beginner Benefit ✅ Ready-to-use text output. ✅ Easy integration with any database or CRM. ✅ Transparent metrics (when it started, when it finished, etc.). ✅✅✅ ✨ FULL FLOW OVERVIEW | Section | What happens | | ------------------------------ | ---------------------------------------------------------------------------- | | ⚡ Trigger & Setup | Start workflow + set Replicate API key. | | 🤖 Model Request & Polling | Send request → get Prediction ID → loop until job completes. | | 🟢 Process & Output | Extract clean AI-generated text + metadata for storage or further workflows. | 📌 How You Benefit Overall ✅ No coding needed — just configure your API key. ✅ Reliable polling — the workflow waits until results are ready. ✅ Flexible — you can extend output to Google Sheets, Slack, Notion, or email. ✅ Beginner-friendly — clean separation of input, process, and output. ✨ With this workflow, you’ve turned Replicate’s IBM Granite LLM into a no-code text generator — running entirely inside n8n! ✨
by Cristian Tala Sánchez
Auto-Approve Skool Community Members with AI Screening using GPT-4o Automatically screen and approve Skool community membership requests using AI. Stop manually reviewing dozens of applications — let GPT-4o-mini evaluate each applicant based on your custom criteria and auto-approve qualified members. How it works Runs on a schedule (every 6 hours by default) Connects to your Skool community via the Skool All-in-One API on Apify Fetches all pending member applications with their answers GPT-4o-mini evaluates each application against your criteria (LinkedIn profile, answer quality, email validation) Approved members are automatically accepted into your community Rejected members stay pending for your manual review — no one gets auto-declined Perfect for Skool community managers** handling high volumes of membership requests Course creators** who want quality control without the manual work Paid communities** that need to verify applicants before granting access Anyone running a Skool group** who wants to save hours every week What makes this template unique The only n8n template that can WRITE to Skool** — approve, reject, create posts, reply to comments AI-powered screening** with customizable prompts — adapt criteria for any type of community Detailed sticky notes** explain how to customize the AI prompt, choose alternative models (Claude, Gemini, Llama), and extend the workflow Cookie-based auth** for fast operations (~2 seconds per action) Setup Get an Apify API token (free tier available) Get an OpenAI API key Add both as credentials in n8n Set your Skool email, password, and community slug in the Config node Customize the AI screening prompt in the AI Screen Applicant node Test first with the Approve Member node disconnected Activate the workflow Customizing the AI prompt The system prompt defines your screening criteria. Adapt it for your community: Entrepreneurship community?** Check for LinkedIn, specific challenges, business experience Fitness community?** Check for fitness goals, experience level, commitment SaaS/Tech?** Check for company, role, technical background Course community?** Check for learning objectives, prior knowledge Alternative AI models You can replace GPT-4o-mini with: GPT-4o** — More nuanced judgment, 10x cost Claude 3.5 Haiku** — Similar speed and cost, use the Anthropic node Gemini 2.0 Flash** — Google's fast model, use the Google AI node Llama 3 via Ollama** — Free and self-hosted, use the Ollama node Requirements | Service | What you need | Where to get it | |---------|--------------|-----------------| | Apify | API token | apify.com/account/integrations | | OpenAI | API key | platform.openai.com/api-keys | | Skool | Admin access to your community | skool.com | Built with Skool All-in-One API — the most complete Skool automation on Apify. Read AND write: posts, comments with nesting, members, mentions, and more.
by Kev
Automatically create and publish ready-to-post social media news updates — all powered by AI. This workflow turns any RSS feed into professional, branded posts, complete with visuals and captions. Use cases include automating news updates, sharing industry insights, or maintaining an active social presence without manual work. Good to know Fully automated end-to-end publishing — from RSS feed to social post Uses JsonCut for dynamic image composition (backgrounds, text overlays, logos) Publishes directly to Instagram (or other channels) via Blotato Utilizes OpenAI GPT-5 for post text and image prompt generation Polling mechanism checks job status every 3 seconds Setup time: under 10 minutes once credentials are in place How it works The RSS Trigger monitors any RSS feed for new content. OpenAI GPT-5 rewrites the headline and creates a short, social-friendly post caption. An AI image prompt is generated to match the article’s topic and mood. JsonCut combines the background, logo, and headline text into a branded image. Once the image is ready, Blotato uploads and publishes the post directly to Instagram (or other connected platforms). The process runs completely automatically — no human input required after setup. How to use Import the workflow into your n8n instance. Configure your RSS feed URL(s). Add your JsonCut, Blotato, and OpenAI credentials. Activate the workflow — it will automatically generate and post new content whenever your RSS source updates. Requirements Free account at jsoncut.com Account at blotato.com (paid service — can be replaced with any social media API or publishing platform) API keys for both services: JsonCut API Key via app.jsoncut.com Blotato API Key via www.blotato.com OpenAI credential** (GPT-5 or compatible model) RSS Feed URL** (e.g. from a news site, blog, or press page) Setup steps Sign up for a free account at app.jsoncut.com. If you use Blotato, create an account at blotato.com and generate an API key. In n8n, add: JsonCut API Key (HTTP Header Auth, header: x-api-key) Blotato API credential (optional — can be replaced) OpenAI credential for GPT-5 Replace the example RSS URL in the RSS Feed Trigger node with your own. Activate the workflow — it will start monitoring, generating, and posting automatically. Customising this workflow You can easily adjust: The image layout and branding (in the “Create JsonCut Job” node) The tone or length of social captions (in the “Create Instagram Text” node prompt) The publishing platform — replace Blotato with another integration (e.g. Buffer, Hootsuite, or native social API) Posting frequency via the RSS trigger interval For advanced customization, check out: JsonCut Documentation JsonCut Image Generation Examples Blotato Website n8n Documentation
by SerpApi
Google Keyword SEO Monitoring What this is about This workflow enables SEO monitoring by checking Google rank positions for a list of keywords and domains. It uses SerpApi's Google Search API, but can be customized to use any of SerpApi's APIs. How it works The workflow accepts Google Sheet with a list of keywords and domains to identify their rank in Google search results. The results are synced to two sheets in a Google Sheet. The first is a log of all past runs. The second is an overview list showing the results from the latest run. The workflow includes a Wait node that delays between each keyword to avoid Google Sheets API rate limiting. Adjust this if you have a custom rate limit. Setup Create a free SerpApi account here: https://serpapi.com/ Add SerpApi credentials to n8n. Your SerpApi API key is here: https://serpapi.com/manage-api-key Connect your Google Sheets accounts to n8n. Help available here: https://n8n.io/integrations/google-sheets/ Copy this Google Sheet to your own Google account: https://docs.google.com/spreadsheets/d/148gjSSqSY5x9Gz5JWE_FDXHOuB7ASTomSyxkZjrjuNc/edit?gid=1750873622#gid=1750873622 Set your list of keywords and domains in the 'Latest Run' sheet. Connect your Google Sheet in the 'Get Keywords and Domains to Match' node Connect your Google Sheet in the 'Update Rank Log' node Connect your Google Sheet again in the 'Update Latest Run' node (Optional) Customize the schedule to your needs (Optional) Set a custom page limit and match type in 'Set Page Limit & Match Type' Documentation SerpApi Google Search API SerpApi n8n Node Intro Guide
by V3 Code Studio
How it works This workflow provides an API endpoint /api/v1/get-companies that retrieves company records directly from your Odoo database. It’s built for teams who need to query or export company data — either as structured JSON for integrations or as Excel (.xlsx) for reporting. When a request is made, the workflow: Accepts query parameters (name, response_format). Validates the name input (required for company search). Fetches all matching companies from Odoo using a like filter for partial name matches. Returns results as a JSON response or Excel file depending on the response_format parameter. This makes it ideal for quickly exporting or syncing company information with other tools. Setup steps Open the Webhook node and note the endpoint /api/v1/get-companies. Connect your Odoo API credentials in the Odoo node. Optionally update the fieldsList in the Odoo node to include more company details (VAT, address, etc.). Test using a browser or Postman: /api/v1/get-companies?name=Tech&response_format=json /api/v1/get-companies?name=Tech&response_format=excel
by SerpApi
Google Play Store App Rank and Rating Monitoring What and who this is for This workflow will be useful for anyone looking to do SEO tracking on the Google Play Store. It automates checking Google Play Store rank positions and average ratings for a list of app titles. The SerpApi component can also be modified to use other APIs for anyone looking for SEO tracking on any other search engine supported by SerpApi. How it works This workflow takes in a list of keywords and app titles to identify the apps' rank in Google Play Store search results. It also grabs the average rating of the app. The search uses SerpApi's Google Play Store API. The results are then synced to two different sheets in a Google Sheet. The first is a log of all past run. The latest results are appended to the bottom of the log. The second updates a kind of "dashboard" to show the results from the latest run. The workflow includes a Wait node that delays 4 seconds between each app title and keyword pair to prevent hitting the default Google Sheets' API per minute rate limit. You can delete this if you have a high enough custom rate limit on the Google Sheets API. The Schedule Trigger is configured to run at 10 AM UTC every day. How to use Create a free SerpApi account here: https://serpapi.com/ Add SerpApi credentials to n8n. Your SerpApi API key is here: https://serpapi.com/manage-api-key Connect your Google Sheets accounts to n8n. Help available here: https://n8n.io/integrations/google-sheets/ Copy this Google Sheet to your own Google account: https://docs.google.com/spreadsheets/d/1DiP6Zhe17tEblzKevtbPqIygH3dpPCW-NAprxup0VqA/edit?gid=1750873622#gid=1750873622 Set your own list of keywords and app titles to match in the 'Latest Run' sheet. This is the source list used to run the searches and must be set. Connect your Google Sheet in the 'Get Keywords and Titles to Match' Google Sheet node Connect your Google Sheet in the 'Update Rank & Rating Log' Google Sheet node Connect your Google Sheet again in the 'Update Latest Run' Google Sheet node (Optional) Update the schedule or disable the schedule to only run manually Documentation SerpApi Google Play Store API SerpApi n8n Node Intro Guide
by Francisco Rivera
What this template does Connect a Vapi AI voice agent to Google Calendar to capture contact details and auto-book appointments. The agent asks for name, address, service type, and a preferred time. The workflow checks availability and either proposes times or books the slot—no code needed. How it works (node map) Webhook: Production URL = VAPI Server URL — receives tool calls from Vapi and returns results. CONFIGURATION (EDIT ME)** — your timezone, work hours, meeting length, buffers, and cadence. Route by Tool Name** — routes Vapi tool calls: checkAvailability → calendar lookup path bookAppointment → create event path Get Calendar Events (EDIT ME)** — reads events for the requested day. Calculate Potential Slots / Filter for Available Slots** — builds conflict-free options with buffers. Respond with Available Times — returns formatted slots to Vapi. Book Appointment in Calendar (EDIT ME)** — creates the calendar event with details. Booking Confirmation** — returns success back to Vapi. > Sticky notes in the canvas show exactly what to edit (required by n8n). No API keys are hardcoded; Google uses OAuth credentials. Requirements n8n (Cloud or self-hosted) Google account with Calendar (OAuth credential in n8n) Vapi account + one Assistant Setup (5 minutes) A) Vapi → n8n connection Open the Webhook node and copy the Production URL. In Vapi → Assistant → Messaging, set Server URL = that Production URL. In Server Messages, enable only toolCalls. B) Vapi tools (names must match exactly) Create two Custom Tools in Vapi and attach them to the assistant: Tool 1: checkAvailability Arguments** initialSearchDateTime (string, ISO-8601 with timezone offset, e.g. 2025-09-09T09:00:00-05:00) Tool 2: Arguments** startDateTime (string, ISO-8601 with tz) endDateTime (string, ISO-8601 with tz) clientName (string) propertyAddress (string) serviceType (string) > The Switch node routes based on C) Configure availability Open 1. CONFIGURATION (EDIT ME) and set: D) Connect Google Calendar Open 2. Get Calendar Events (EDIT ME) → Credentials: select/create Google Calendar OAuth. Then choose the calendar to check availability. Open 3. Book Appointment in Calendar (EDIT ME) → use the same credential and same calendar to book. E) Activate & test Toggle the workflow Active. Call your Vapi number (or start a session) and book a test slot. Verify the event appears with description fields (client, address, service type, call id). Customising Change summary/description format in 3. Book Appointment. Add SMS/Email confirmations, CRM sync, rescheduling, or analytics as follow-ups (see sticky note “I’m a note”). Troubleshooting No response back to Vapi** → confirm Vapi is set to send toolCalls only and the Server URL matches the Production URL. Switch doesn’t route** → tool names must be exactly checkAvailability and bookAppointment. No times returned** → ensure timezone + work hours + cadence generate at least one future slot; confirm Google credential and calendar selection. Event not created** → use the same Google credential & calendar in both nodes; check OAuth scopes/consent. Security & privacy Google uses OAuth; credentials live in n8n. No API keys hardcoded. Webhook receives only the fields needed to check times or book.
by Port IO
Auto-resolve Jira tickets with coding agents Coding agents can significantly speed up development, but crucial engineering context often gets lost in the process. This guide demonstrates how to use Port as a context lake in n8n workflows to automatically generate GitHub issues from Jira tickets with rich organizational context, ensuring that important information is preserved when assigning them to GitHub Copilot and linking pull requests back to Jira. This setup helps establish a seamless ticket-to-PR workflow, bridging the gap between Jira and GitHub while leveraging Port's comprehensive software catalog as a source of truth. How it works The n8n workflow orchestrates the following steps: Jira trigger — The workflow listens for Jira issue updates via webhook. Condition check — Verifies that the issue status is "In Progress" and has the required label (e.g., "product_approved") without the "copilot_assigned" label. Port context extraction — Uses Port's n8n node to query your software catalog for relevant context about services, repositories, teams, dependencies, and documentation related to the Jira issue. Parse response — Retrieves the AI-generated GitHub issue title and body from Port. Create GitHub issue — Creates a new GitHub issue with the enriched context from Port. Assign to Copilot — Adds a comment to the GitHub issue instructing Copilot to take ownership. Add issue link to Jira ticket — Adds a comment to the Jira ticket with the GitHub issue URL, providing clear traceability. Mark ticket as assigned — Updates the Jira ticket to add the "copilot_assigned" label, preventing duplicate processing. Setup [ ] Connect your Jira Cloud account and enable issue_updated events [ ] Register for free on Port.io [ ] Connect your Port.io account and add the API key [ ] Connect your GitHub account and select the target repository [ ] Ensure a Copilot bot or @copilot user has access to the repository [ ] Confirm the workflow webhook or Jira trigger URL is active [ ] Test by moving a product_approved ticket to In Progress. [ ] You should be good to go! Prerequisites You have a Port account and have completed the onboarding process. Port's GitHub app is installed in your account. Port's Jira integration is installed in your account. You have a working n8n instance (Cloud or self-hosted) with Port's n8n custom node installed. Your GitHub organization has GitHub Copilot enabled, so Copilot can be automatically assigned to any issues created through this guide. ⚠️ This template is intended for Self-Hosted instances only.
by Harshil Agrawal
This workflow automatically creates an event in PostHog when a request is made to a webhook URL. Prerequisites A PostHog account and credentials Nodes Webhook node triggers the workflow when a URL is accessed. PostHog node creates a new event in PostHog.
by ConnectSafely
Sync LinkedIn Profile Visitors to HubSpot CRM Who's it for This workflow is built for sales professionals, recruiters, founders, and marketers who want to automatically capture LinkedIn profile visitors and convert them into actionable CRM leads. Perfect for anyone tired of manually checking who viewed their profile, copying data one by one, and losing warm leads because they never made it into your pipeline. If you're running outbound sales, recruiting talent, building partnerships, or simply want to know who's checking you out on LinkedIn, this automation captures every visitor and enriches them with full professional data before syncing to your CRM. How it works The workflow automatically syncs your LinkedIn profile visitors to HubSpot CRM with enriched professional data. The process flow: Scheduled trigger runs weekly (or manually) to fetch recent visitors ConnectSafely.ai API retrieves all profile visitors from the past 7 days Splits visitors into individual records for processing Apify actor enriches each visitor with complete LinkedIn profile data (email, company, title, location) Email validation filters contacts - only those with valid emails proceed HubSpot integration creates or updates contacts with full enriched information Loop continues until all visitors are processed Setup steps Step 1: Configure ConnectSafely.ai API Credentials Obtain API Key Log into ConnectSafely.ai Dashboard Navigate to Settings → API Keys Generate a new API key Add Bearer Auth Credential in n8n Go to Credentials in n8n Click Add Credential → Header Auth or HTTP Bearer Auth Name it "ConnectSafely.ai API" Paste your ConnectSafely.ai API key Save the credential This credential is used by the "Fetch Profile Visitors" HTTP Request node. Step 2: Configure Apify Integration Get Apify API Key Sign up at Apify.com Go to Settings → Integrations → API Copy your API token Find the LinkedIn Enrichment Actor Go to Apify Store Search for "LinkedIn Profile Scraper" or use actor ID: UMdANQyqx3b2JVuxg Copy the actor URL Add Apify Credential in n8n Go to Credentials → Add Credential → Apify API Paste your Apify API token Save the credential Configure the Apify Node Open the Enrich LinkedIn Profile node Select your Apify credential Update the Actor ID URL with your chosen LinkedIn scraper actor Step 3: Configure HubSpot Integration Create HubSpot App Token Go to HubSpot Settings → Integrations → Private Apps Click Create a private app Name it "n8n LinkedIn Sync" Under Scopes, enable: crm.objects.contacts.read crm.objects.contacts.write Click Create app and copy the access token Add HubSpot Credential in n8n Go to Credentials → Add Credential → HubSpot App Token Paste your access token Save the credential Connect to HubSpot Node Open the Create HubSpot Contact node Select your HubSpot App Token credential Step 4: Configure the Schedule Open the Run Weekly node Adjust the schedule based on your needs: Default: Every week High traffic profiles: Every day Low traffic: Every 2 weeks Step 5: Test the Workflow Click the Test Manually node Click Test Workflow Verify: Profile visitors are fetched correctly Enrichment returns full profile data Contacts with emails are created in HubSpot Contacts without emails are skipped gracefully Customization Time Range Adjustment Edit the JSON body in the Fetch Profile Visitors node to change the lookback period: {"timeRange":"past_7_days","start":0,"fetchAll":true} Options: past_7_days - Last week's visitors (default) past_30_days - Last month's visitors past_90_days - Last quarter's visitors Additional HubSpot Fields The Create HubSpot Contact node maps these fields by default: First Name Last Name Email Job Title Company Name City Country Street Address LinkedIn URL Lead Status (set to "NEW") To add more fields: Open the Create HubSpot Contact node Click Add Field under Additional Fields Map Apify output fields to HubSpot properties Different CRM Integration To use a different CRM instead of HubSpot: Delete the Create HubSpot Contact node Add your CRM node (Salesforce, Pipedrive, Zoho, etc.) Map the enriched fields to your CRM's contact properties Connect it to the "Has Valid Email" true output Add Slack Notifications Want to get notified when high-value visitors are captured? Add a Slack node after Create HubSpot Contact Filter for specific job titles or companies Send a message to your sales channel Use Cases Sales Prospecting**: Automatically capture decision-makers who are researching you before outreach Recruiting**: Build a passive candidate pipeline from people checking out your profile Founder Networking**: Know when investors, partners, or potential hires are interested Account-Based Marketing**: Track when target account contacts view your profile Event Follow-up**: Capture visitors who checked you out after conferences or webinars Troubleshooting Common Issues & Solutions Issue: No visitors returned from API Solution**: Ensure your LinkedIn account is connected in ConnectSafely.ai dashboard and has had recent profile views Issue: Apify enrichment returning empty results Solution**: Verify the LinkedIn URL format is correct (should be full URL like https://www.linkedin.com/in/username). Check your Apify actor is running properly. Issue: "Profile not found" errors Solution**: Some LinkedIn profiles may be private or have restricted visibility. These will be skipped automatically. Issue: HubSpot contact not created Solution**: Check that your HubSpot App Token has crm.objects.contacts.write scope enabled Issue: Duplicate contacts in HubSpot Solution**: HubSpot uses email as the unique identifier. The node is configured to "Create or Update" so duplicates should be updated, not created. Verify the email field is mapping correctly. Issue: Rate limit errors from Apify Solution**: Add a Wait node after the loop with 2-5 second delays between enrichment calls Issue: Missing email addresses for most visitors Solution**: This is normal - enrichment typically finds emails for 60-70% of profiles. Consider adding LinkedIn URL as a fallback identifier in your CRM. Costs & Considerations | Service | Cost | |---------|------| | ConnectSafely.ai | Free trial available, then subscription | | Apify Enrichment | ~$1 per 1,000 records | | HubSpot | Free tier works, or existing subscription | | n8n | Free (self-hosted) or cloud pricing | Estimated monthly cost for 200 visitors/month: ~$0.20 for Apify enrichment Documentation & Resources Official Documentation ConnectSafely.ai Docs**: https://connectsafely.ai/docs Apify LinkedIn Actors**: https://apify.com/store HubSpot API**: https://developers.hubspot.com Support Channels Email Support**: support@connectsafely.ai Documentation**: https://connectsafely.ai/docs Connect With Us Stay updated with the latest automation tips and LinkedIn strategies: LinkedIn**: linkedin.com/company/connectsafelyai YouTube**: youtube.com/@ConnectSafelyAI-v2x Instagram**: instagram.com/connectsafely.ai X (Twitter)**: x.com/AiConnectsafely Need Custom Workflows? Looking to build sophisticated LinkedIn automation workflows tailored to your business needs? Contact our team for custom automation development, strategy consulting, and enterprise solutions. We specialize in: Multi-channel engagement workflows AI-powered personalization at scale Lead scoring and qualification automation CRM integration and data synchronization Custom reporting and analytics pipelines
by Ucartz Online
Automatically back up and sync your n8n workflows to GitHub with unlimited version control. This workflow ensures your repository always reflects the latest state of your n8n instance by creating, updating, and deleting workflow files as needed. Ideal for developers, teams, and DevOps use cases where workflow backup, versioning, and audit tracking are important. ♾️ Unlimited Version Control This workflow enables unlimited version control using GitHub, solving the limitation of version history that is not available in the self-hosted free version of n8n. Every workflow change is stored as a Git commit, allowing you to: Track full history of changes Roll back to previous versions anytime Maintain a reliable audit trail ⚡ Key Features 🔄 Automatic Sync – Runs on a schedule to keep workflows updated 🆕 Create New Workflows – Automatically adds new workflows to GitHub ✏️ Update Only When Changed – Detects and updates modified workflows 🧹 Auto Cleanup – Removes deleted or renamed workflows from GitHub ⚡ Smart Diff Check – Skips unchanged workflows to avoid unnecessary commits 🕒 Timestamped Commits – Clear and trackable commit history ♾️ Unlimited Version Control – Store unlimited workflow versions in GitHub 🛠️ How It Works Fetch existing files from your GitHub repository Retrieve all workflows from your n8n instance via API Compare workflows using size-based change detection Create or update workflow JSON files in GitHub Remove orphaned files (deleted or renamed workflows) ⚙️ Setup Requirements GitHub Personal Access Token (with repo scope) n8n API Key (Settings → API) A GitHub repository for storing workflow backups Update GitHub nodes with your repository name and owner Configure the schedule trigger as needed 📁 File Naming Workflows are stored as: workflow-name.json (lowercase, hyphen-separated) 🛡️ Safety Mechanism Includes a safety check to prevent accidental deletion of all files if the n8n API returns zero workflows (e.g., due to an error). 💡 Use Cases Backup and restore n8n workflows Version control and change tracking Team collaboration via GitHub CI/CD integration for workflow management 📬 Support Contact us for suggestions or support: support@ucartz.com