Automate personalized LinkedIn outreach by pulling leads from Google Sheets, filtering contacted prospects, and sending notes via Unipile on a schedule while logging results.
The AI agent reads leads from Google Sheets and filters out prospects that have already been contacted. It sends personalized LinkedIn connection notes via Unipile on a configurable schedule while staying within LinkedIn's limits. Each invitation is logged back to the sheet with its invitation_id and status to enable seamless follow-up.
Key capabilities in a practical, step-by-step flow.
Retrieve leads from Google Sheets.
Filter out leads with an empty connection_request_status.
Resolve LinkedIn usernames from profile URLs using Unipile data.
Bundle data (username, note, and credentials) for sending.
Send invitations one by one via Unipile with a personalized note.
Update the Google Sheet with invitation_id and status after each attempt.
Before → 5 real pain points: duplicates cause wasted invites; manual copy-paste leads to inconsistent notes; risk of LinkedIn rate-limit violations due to uncoordinated sends; data scattered across sheets and tools making follow-ups fall through; slow, error-prone follow-ups hamper pipeline momentum. After → 5 clear outcomes: invites stay within safe limits; duplicates are prevented; invitations logged with IDs; statuses update automatically; follow-ups are ready to automate from the sheet.
A simple 3-step flow that non-technical users can follow.
Runs automatically at your chosen cadence to fetch fresh leads from Google Sheets.
Filters leads, extracts LinkedIn usernames, and bundles required fields for sending.
Sends invitations via Unipile with personalized notes and updates the sheet with status and invitation IDs, pausing between requests.
A realistic scenario showing timing and outcomes.
A founder imports 50 leads into Google Sheets. The AI agent runs every 6 hours for 2 days, sending 10–15 invites per run. Outcome: 42 invites are sent with unique invitation IDs logged back to the sheet, and each invite status is updated for follow-up.
Roles that gain clear value from automated LinkedIn outreach.
Need scalable, personalized outreach to build an early pipeline without manual work.
Want a repeatable, tracked process with consistent messaging at scale.
Reach more candidates with personalized notes while maintaining compliance and logs.
Coordinate multi-account outreach with auditable results.
Integrate LinkedIn outreach into broader campaigns and dashboards.
Manage client campaigns with clear audit trails and repeatable playbooks.
Key tools and what the AI agent does inside each.
Reads leads, checks connection_request_status, and writes invitation_id and status back to the sheet.
Resolves LinkedIn usernames and sends the invitation with the personalized note; uses API credentials to perform invites.
Orchestrates triggers, data flow, rate limits, and the looping logic to process leads safely.
Practical scenarios where this AI agent shines.
Practical, real concerns answered.
The AI agent sends invitations within configurable safety limits and adheres to the schedule you set. It includes delays between requests to mimic human behavior. While LinkedIn has its own limits, this setup helps you stay within safer boundaries by regulating the batch size and cadence. Always monitor account activity and adjust limits if needed.
Yes. The workflow reads the connection_note field from your Google Sheet for each lead and uses that personalized message when sending the invitation. You can tailor messages at scale by maintaining distinct notes per row. If you want automated note generation, consider an AI node to generate notes from job titles or company data.
The AI agent handles such cases gracefully by skipping invalid entries and logging the issue for review. It continues processing the remaining leads in the batch. You can set up additional error handling to notify your team or quarantine failed records in a separate sheet tab. This prevents disruption to the overall outreach sequence.
The system checks the connection_request_status column before sending each invite. If a lead already has a status or invitation_id, that row is skipped in future runs. This automatic filtering ensures you don’t send duplicate requests to the same profile. You can still review and adjust statuses manually if needed.
Unipile is used to resolve LinkedIn usernames and to send invitations via its API with your credentials. The AI agent’s flow is designed around Unipile as the primary sending channel, but you could adapt the data flow to other providers if you replace the sender module. If you don’t have Unipile, you can substitute with a different compliant outreach tool that provides similar API access. However, this would require reconfiguring the data flow.
Credentials are stored and used within the secured components of the AI agent flow. Google Sheets data remains in your account, and protected credentials are transmitted via encrypted channels to Unipile. Best practices include limiting access to the n8n instance, rotating API keys, and auditing access logs. Always follow your organization’s data security policy when enabling integrations.
The AI agent relies on actively authenticated connections and the latest sheet data. If credentials are rotated or sheet permissions change, you may see authentication errors that the error handling path will log. The system can be paused, reviewed, and resumed once access is restored. Regularly syncing credentials and sheet access helps maintain continuous operation.
Automate personalized LinkedIn outreach by pulling leads from Google Sheets, filtering contacted prospects, and sending notes via Unipile on a schedule while logging results.