Apify to Google Sheets, Instagram research stays clean
Instagram research gets messy fast. One tab for handles, another for bios, a third for follower counts, then someone pastes the wrong number into the wrong column and now you don’t trust any of it.
This Apify Sheets automation hits growth marketers and influencer managers first, but founders doing their own competitor tracking feel it too. You will turn “hunt profiles and copy data” into a clean Google Sheet that updates every time you submit a handle.
Below you’ll see how the workflow runs in n8n, what it automates, and what changes in your day once the sheet basically maintains itself.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Apify to Google Sheets, Instagram research stays clean
flowchart LR
subgraph sg0["Provide Usernames Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/form.svg' width='40' height='40' /></div><br/>Provide Usernames"]
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Scrape Instagram Profile via.."]
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Instagram Profile Data", pos: "b", h: 48 }
n3@{ icon: "mdi:database", form: "rounded", label: "Append Profile to Google Sheet", pos: "b", h: 48 }
n0 --> n1
n2 --> n3
n1 --> n2
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n3 database
class n1 api
classDef customIcon fill:none,stroke:none
class n0,n1 customIcon
The Problem: Instagram profile research turns into spreadsheet chaos
When you’re researching influencers or competitors, the work is never “just one profile.” It’s 20. Then 50. Then someone asks for an updated list next week, which means you re-open Instagram, re-check follower counts, re-copy bios, re-paste links, and hope nothing shifted. Meanwhile, the spreadsheet becomes a Frankenstein of formats because different people paste different things (and Instagram loves truncating text in weird ways). It’s boring work, and honestly, boring work is where mistakes hide.
It adds up fast. Here’s where it usually breaks down.
- You end up spending about 5 minutes per profile just collecting basics like followers, bio, and links.
- Copy-paste introduces silent errors, especially when handles are similar or the sheet has filters on.
- Teams stop updating the list because it feels like redoing the same work again and again.
- Messy columns make analysis painful, so “research” never turns into decisions.
The Solution: Apify pulls the profile metrics, n8n logs them neatly
This workflow turns Instagram profile research into a repeatable intake process. You submit one or more Instagram handles through a simple form trigger in n8n. The workflow then calls Apify (via an HTTP request) to scrape the public profile data you care about, like follower count, following count, biography text, profile picture URL, and any external link. After that, n8n maps the response into a consistent structure, so every row looks the same. Finally, it appends the data into Google Sheets, creating a living database you can sort, filter, and share without reformatting every week.
It starts with a handle submission. Apify returns the raw profile payload, then the workflow cleans it up and pushes a single, tidy row into your sheet. The output is not a “report.” It’s an always-ready list you can actually use.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you’re building a shortlist of 30 creators for a product launch. Manually, if you spend about 5 minutes per profile to grab followers, bio, and link, that’s roughly 2.5 hours, plus the inevitable cleanup. With this workflow, you paste handles into the n8n form (maybe 10 minutes total), wait a bit for Apify to return the data, and the rows land in Google Sheets already structured. You’re back to evaluating creators, not doing data entry.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Apify to scrape Instagram profile data
- Google Sheets to store and share the database
- Apify API token (get it from Apify Console > Integrations)
Skill level: Beginner. You’ll connect accounts, paste an API token, and choose the target spreadsheet.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
Handle submission triggers the run. You enter one or more Instagram usernames in the n8n form trigger, which keeps intake simple for you and anyone else on the team.
Apify retrieves profile metrics. n8n sends an HTTP request to Apify, which returns the profile data you’d normally hunt down manually: follower count, following count, bio, profile image URL, and external link.
The response gets cleaned up. A mapping step (Edit Fields/Set) reshapes the payload into your preferred columns so the sheet stays consistent, even when profiles have missing fields.
Google Sheets becomes your database. The workflow appends a new row per handle, so your influencer list, competitor list, or recruiting shortlist stays current and easy to filter.
You can easily modify the mapped fields to match your tracking template based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Form Trigger
This workflow starts with a form submission to capture an Instagram username.
- Add and open Collect User Handles.
- Set Form Title to
Instagram profile scraper. - Set Form Description to
Scrapes profile via apify. - Under Form Fields, create a required field labeled
Username.
Username so the next node can read {{$json.Username}}.Step 2: Connect Apify for Profile Scraping
Send the captured username to Apify to scrape the profile data.
- Open Apify Profile Request.
- Set URL to
https://api.apify.com/v2/actor-tasks/[YOUR_ID]/run-sync-get-dataset-items?token=[CONFIGURE_YOUR_TOKEN]. - Set Method to
POST. - Enable Send Body and set Specify Body to
json. - Set JSON Body to
={ "input": { "usernames": [ {{ $json.Username }} ], "resultsLimit": 1 } }.
[YOUR_ID] and [CONFIGURE_YOUR_TOKEN] with your real Apify task ID and token, or the request will fail.Step 3: Set Up the Data Mapping
Map the Apify response fields into a clean structure for the sheet append step.
- Open Map Profile Fields.
- Add a string field username with value
={{ $json.username }}. - Add a string field fullName with value
={{ $json.fullName }}. - Add a number field followersCount with value
={{ $json.followersCount }}. - Add a number field followsCount with value
={{ $json.followsCount }}. - Add a string field biography with value
={{ $json.biography }}. - Add a string field profilePicUrl with value
={{ $json.profilePicUrl }}.
Step 4: Configure the Output to Google Sheets
Append the mapped profile data into your Google Sheet.
- Open Append Sheet Records.
- Credential Required: Connect your googleSheetsOAuth2Api credentials.
- Set Operation to
append. - Select the document
Instagram Profile Scraper(ID1VQUy0tfWujh0lyulh0w6UhLGq87f8j8F7uFOaLFUyuQ). - Select the sheet
Sheet1(gid0). - Map columns to values: Username →
={{ $json.username }}, Biography →={{ $json.biography }}, Full Name →={{ $json.fullName }}, Followers Count →={{ $json.followersCount }}, Following Count →={{ $json.followsCount }}, Profile Pic URL →={{ $json.profilePicUrl }}.
Step 5: Test and Activate Your Workflow
Run a test submission to verify the scrape and sheet append, then activate the workflow.
- Click Execute Workflow and submit a sample
Usernamein the Collect User Handles form. - Confirm Apify Profile Request returns profile data and Map Profile Fields outputs the mapped fields.
- Verify a new row is appended in Append Sheet Records with the expected values.
- Toggle the workflow to Active to start collecting profiles in production.
Common Gotchas
- Apify credentials can expire or need specific permissions. If things break, check your Apify token in n8n Credentials and confirm it’s still active in the Apify Console.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 30 minutes if your Apify token and Google account are ready.
No. You’ll connect Apify and Google Sheets, then choose which fields to save.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Apify usage costs based on your scraping actor and run volume.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s mostly a spreadsheet decision. Keep the same Apify request, then adjust the “Map Profile Fields” step to add columns like “Brand,” “Market,” “Notes,” or “Last checked.” Many teams also add a simple “Type” field (Competitor/Influencer/Partner) so one sheet can serve multiple lists without duplicating work.
Most of the time it’s an invalid or expired API token. Regenerate the token in Apify, update it in n8n, then re-run a single test handle to confirm the HTTP request succeeds. If the token is fine, check the Apify actor settings you’re calling and confirm it still supports the fields you’re mapping. Rate limiting can also show up when you submit lots of handles back-to-back, so spacing runs out a bit can help.
A lot, as long as your Apify plan and n8n execution limits match your volume. On n8n Cloud you’re limited by monthly executions on your plan, while self-hosting is mainly limited by your server and how heavy the Apify runs are. For most small teams, logging a few hundred profiles a week is realistic without babysitting it.
Often, yes. n8n is better when you need to reshape scraped data, handle missing fields cleanly, or add logic later without paying extra for every branch. Zapier and Make can be quicker for very simple “one trigger, one action” setups, but scraping workflows tend to get messy there once you start normalizing data. Also, self-hosting n8n is a big deal if you run a lot of research. If you’re unsure, Talk to an automation expert and we’ll point you in the right direction.
Clean research beats “more research.” Once this is running, your sheet stays ready, and you can spend your time choosing who to work with instead of rebuilding the same list again.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.