This workflow corresponds to n8n.io template #4587 — we link there as the canonical source.
This workflow follows the Form Trigger → Google Sheets recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "rDGkfQpVtkD1D6RH",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Instagram Profile Scraper",
"tags": [],
"nodes": [
{
"id": "923b9b8e-f344-4984-a9cc-2ad111db39a4",
"name": "Provide Usernames",
"type": "n8n-nodes-base.formTrigger",
"position": [
0,
0
],
"parameters": {
"options": {},
"formTitle": "Instagram profile scraper",
"formFields": {
"values": [
{
"fieldLabel": "Username",
"requiredField": true
}
]
},
"formDescription": "Scrapes profile via apify"
},
"typeVersion": 2.2
},
{
"id": "cd6ea4f9-45dc-4193-954a-798a04716c5c",
"name": "Scrape Instagram Profile via Apify",
"type": "n8n-nodes-base.httpRequest",
"position": [
280,
0
],
"parameters": {
"url": "https://api.apify.com/v2/actor-tasks/<TASK_ID>/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>",
"method": "POST",
"options": {},
"jsonBody": "={\n \"input\": {\n \"usernames\": [\n {{ $json.Username }}\n ],\n \"resultsLimit\": 1\n }\n}",
"sendBody": true,
"specifyBody": "json"
},
"typeVersion": 4.2
},
{
"id": "e140ffbf-0ca4-4415-8cff-a78dfc6c040b",
"name": "Format Instagram Profile Data",
"type": "n8n-nodes-base.set",
"position": [
660,
0
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "5dc90212-ac40-4351-a15a-ef9f35ffd389",
"name": "username",
"type": "string",
"value": "={{ $json.username }}"
},
{
"id": "02339555-2d6b-4d20-a59c-2e8dfa63361c",
"name": "fullName",
"type": "string",
"value": "={{ $json.fullName }}"
},
{
"id": "f5a95d72-443d-468a-a1a6-8cc394b93fa4",
"name": "followersCount",
"type": "number",
"value": "={{ $json.followersCount }}"
},
{
"id": "826fe0c8-4fbe-44e7-abf3-8a73022151f2",
"name": "followsCount",
"type": "number",
"value": "={{ $json.followsCount }}"
},
{
"id": "dac8d9cc-5fa8-47d8-859d-d9f164ec20bd",
"name": "biography",
"type": "string",
"value": "={{ $json.biography }}"
},
{
"id": "4c775459-f8f5-43d1-8b1a-aa122413cd12",
"name": "profilePicUrl",
"type": "string",
"value": "={{ $json.profilePicUrl }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "9c4f528b-c5c9-4f0b-92c4-1f9d75532fc4",
"name": "Append Profile to Google Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
880,
0
],
"parameters": {
"columns": {
"value": {
"Username": "={{ $json.username }}",
"Biography": "={{ $json.biography }}",
"Full Name": "={{ $json.fullName }}",
"Followers Count": "={{ $json.followersCount }}",
"Following Count": "={{ $json.followsCount }}",
"Profile Pic URL": "={{ $json.profilePicUrl }}"
},
"schema": [
{
"id": "Username",
"type": "string",
"display": true,
"required": false,
"displayName": "Username",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Full Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Full Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Followers Count",
"type": "string",
"display": true,
"required": false,
"displayName": "Followers Count",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Following Count",
"type": "string",
"display": true,
"required": false,
"displayName": "Following Count",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Biography",
"type": "string",
"display": true,
"required": false,
"displayName": "Biography",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Profile Pic URL",
"type": "string",
"display": true,
"required": false,
"displayName": "Profile Pic URL",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1VQUy0tfWujh0lyulh0w6UhLGq87f8j8F7uFOaLFUyuQ/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1VQUy0tfWujh0lyulh0w6UhLGq87f8j8F7uFOaLFUyuQ",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1VQUy0tfWujh0lyulh0w6UhLGq87f8j8F7uFOaLFUyuQ/edit?usp=drivesdk",
"cachedResultName": "Instagram Profile Scraper"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "1980e973-f240-4b55-a4b8-4faa36f78c42",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-40,
-1460
],
"parameters": {
"color": 3,
"width": 500,
"height": 1660,
"content": "### \ud83d\udd39 **1. `Trigger: On Form Submission`**\n\n* **Node Type:** Manual Trigger (or Webhook if embedded in a real form)\n* **Purpose:** Starts the workflow when a user submits a form with an Instagram username\n* **Expected Input:**\n\n ```json\n {\n \"username\": \"influencer_1\"\n }\n ```\n\n---\n\n### \ud83d\udd39 **2. `Scrape Instagram Profile via Apify`**\n\n* **Node Type:** HTTP Request\n\n* **Method:** `POST`\n\n* **URL:**\n\n ```plaintext\n https://api.apify.com/v2/actor-tasks/<TASK_ID>/run-sync-get-dataset-items?token=<API_TOKEN>\n ```\n\n* **Headers:**\n\n ```json\n {\n \"Content-Type\": \"application/json\"\n }\n ```\n\n* **Body Parameters:**\n\n ```json\n {\n \"input\": {\n \"usernames\": [\"={{ $json.username }}\"]\n }\n }\n ```\n\n* **Sample Output from Apify:**\n\n ```json\n [\n {\n \"username\": \"influencer_1\",\n \"fullName\": \"Jane Doe\",\n \"followersCount\": 12500,\n \"followsCount\": 320,\n \"biography\": \"Travel | Lifestyle \ud83c\udf0d\",\n \"profilePicUrl\": \"https://instagram.com/path/to/pic.jpg\",\n \"isPrivate\": false,\n \"isVerified\": true,\n \"externalUrl\": \"https://janedoe.com\"\n }\n ]\n ```\n\n\u2705 **Result:** The username submitted from the form is scraped in real time using Apify\u2019s Instagram actor, and the result is passed to the next step."
},
"typeVersion": 1
},
{
"id": "9c341b28-0385-4691-904b-8fa8d8e0b213",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
600,
-1240
],
"parameters": {
"color": 6,
"width": 500,
"height": 1440,
"content": "## \u2728 SECTION 2: \ud83d\udee0 Format Data + \ud83d\udcca Append to Google Sheets\n\n### \ud83d\udd39 **3. `Format Instagram Profile Data`**\n\n* **Node Type:** Set\n* **Purpose:** Clean and organize the Apify response to match your Google Sheets schema\n* **Fields to Set:**\n\n | Field Name | Value |\n | ----------------- | -------------------------- |\n | `Username` | `{{$json.username}}` |\n | `Full Name` | `{{$json.fullName}}` |\n | `Followers` | `{{$json.followersCount}}` |\n | `Following` | `{{$json.followsCount}}` |\n | `Bio` | `{{$json.biography}}` |\n | `Profile Pic URL` | `{{$json.profilePicUrl}}` |\n | `Website` | `{{$json.externalUrl}}` |\n\n\u2705 **Result:** The data is transformed into a clean format suitable for logging or outreach tracking.\n\n---\n\n### \ud83d\udd39 **4. `Append Profile to Google Sheet`**\n\n* **Node Type:** Google Sheets (Append Row)\n* **Setup:**\n\n * **Sheet Name:** `Scraped_Influencer_Data`\n * **Columns:** Username, Full Name, Followers, Following, Bio, Profile Pic URL, Website\n* **Purpose:** Stores the formatted data into a centralized Google Sheet for future reference or outreach\n\n\u2705 **Result:** Your influencer data is persistently stored and ready to be used for marketing, analytics, or CRM integration.\n\n---\n\n## \u2705 Final Workflow Summary\n\n```plaintext\n[Form Trigger] \n \u2b07\ufe0f\n[Apify HTTP Request] \n \u2b07\ufe0f\n[Format Fields]\n \u2b07\ufe0f\n[Google Sheet Append]\n```"
},
"typeVersion": 1
},
{
"id": "1552dfc6-f98c-45e1-bb18-071fbb69a159",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1800,
-1460
],
"parameters": {
"color": 4,
"width": 1300,
"height": 320,
"content": "=======================================\n WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n - YouTube: https://www.youtube.com/@YaronBeen/videos\n - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
},
"typeVersion": 1
},
{
"id": "91ca76cf-d9dd-489c-a9de-357c876d00e2",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1800,
-1120
],
"parameters": {
"color": 4,
"width": 1289,
"height": 2418,
"content": "# \ud83e\udde0 **Workflow Overview: Instagram Profile Scraper using Apify & Google Sheets in n8n**\n\n## \ud83d\udd0d **Purpose**\n\nThis n8n automation workflow allows you to **scrape Instagram profile data** using the **Apify Instagram Scraper** and **store the results in Google Sheets** for marketing, outreach, or analytics. It's designed to be simple, efficient, and extendable \u2014 ideal for influencer marketers, social analysts, or growth teams who want actionable Instagram data without writing code.\n\n---\n\n## \ud83e\udde9 **Core Workflow Logic**\n\n### \ud83d\udca1 What It Does\n\n1. **Receives an Instagram username** (via form or manual trigger)\n2. **Sends the username to Apify** to scrape public profile data\n3. **Extracts key details** (followers, bio, profile pic, etc.)\n4. **Appends the cleaned data** to a structured Google Sheet\n\n---\n\n## \ud83c\udfd7\ufe0f **Workflow Structure & Components**\n\n## \ud83d\udcca **Data Flow Example**\n\n### \ud83d\udd38 **Input (Submitted via Form or Manual Trigger):**\n\n```json\n{\n \"username\": \"influencer_1\"\n}\n```\n\n### \ud83d\udd39 **Output (Saved to Google Sheets):**\n\n| Username | Full Name | Followers | Following | Bio | Profile Pic URL | Website | |\n| ------------- | --------- | --------- | --------- | ------ | --------------- | -------------------------------------------------------------- | ------------------------------------------ |\n| influencer\\_1 | Jane Doe | 12,500 | 320 | Travel | Lifestyle \ud83c\udf0d | [https://instagram.com/pic.jpg](https://instagram.com/pic.jpg) | [https://janedoe.com](https://janedoe.com) |\n\n---\n\n## \ud83d\udee0\ufe0f **Built With**\n\n* [n8n](https://n8n.io/) \u2013 Open-source workflow automation\n* [Apify](https://apify.com/) \u2013 Instagram Profile Scraper actor\n* Google Sheets (native integration via n8n)\n\n---\n\n## \ud83d\udd10 **Authentication & API Notes**\n\n* **Apify Token**: Required in the HTTP Request URL\n* **Google Sheets Access**: OAuth2 credentials configured in n8n\n* **Security Tip**: Store secrets as [n8n environment variables](https://docs.n8n.io/hosting/environment-variables/)\n\n---\n\n## \ud83d\udcbc **Real-World Use Cases**\n\n| Use Case | Description |\n| ------------------------- | ------------------------------------------------------------- |\n| \ud83d\udc69\u200d\ud83d\udcbc Influencer Outreach | Automatically collect Instagram metrics for campaign planning |\n| \ud83d\udcca Competitor Analysis | Track follower growth and bio updates for competitors |\n| \ud83d\udccb CRM Enrichment | Enrich influencer records with live Instagram data |\n\n---\n\n## \ud83d\ude80 **Enhancements & Ideas**\n\n* \ud83d\udd01 **Loop from Google Sheets:** Read a batch of usernames and scrape in loop\n* \ud83d\udeab **Avoid Duplicates:** Add an `IF` node to skip usernames already scraped\n* \ud83d\udce9 **Send Slack/Email Alerts** when new data is added\n* \ud83e\udde0 **Filter Low Engagement Accounts** (e.g., if followers < 1,000)\n\n---\n\n## \ud83d\udcf8 **Visual Workflow Map**\n\n```plaintext\n[Trigger: On Form Submission]\n \u2b07\ufe0f\n[Scrape Instagram Profile via Apify]\n \u2b07\ufe0f\n[Format Instagram Profile Data]\n \u2b07\ufe0f\n[Append Profile to Google Sheet]\n```\n\n---\n\n## \ud83e\uddfe **Conclusion**\n\nThis workflow is a **powerful no-code solution** to streamline the process of gathering Instagram profile data. It integrates the flexibility of n8n, the scraping power of Apify, and the accessibility of Google Sheets to form a seamless automation \u2014 perfect for creators, marketers, and analysts.\n\n"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "0073a2a2-78d1-4806-b6f9-216a99a06107",
"connections": {
"Provide Usernames": {
"main": [
[
{
"node": "Scrape Instagram Profile via Apify",
"type": "main",
"index": 0
}
]
]
},
"Format Instagram Profile Data": {
"main": [
[
{
"node": "Append Profile to Google Sheet",
"type": "main",
"index": 0
}
]
]
},
"Scrape Instagram Profile via Apify": {
"main": [
[
{
"node": "Format Instagram Profile Data",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googleSheetsOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This cutting-edge n8n automation is a powerful social media intelligence gathering tool designed to transform Instagram profile research into a seamless, automated process. By intelligently combining web scraping, data formatting, and cloud storage technologies, this workflow:…
Source: https://n8n.io/workflows/4587/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Automatically scrapes Google My Business listings using Apify's Google Maps Scraper, filters results to businesses with 1-star reviews, and exports structured lead data into a dedicated Google Sheet t
Users who want to automatically fetch and organize property listings from 99Acres and MagicBricks into Google Sheets without manual copying. Users submit search URLs via a form. The workflow uses Apif
This workflow is perfect for content strategists, SEO specialists, marketing agencies, and virtual assistants who need to quickly audit and collect blog content from client websites into a structured
This workflow is for marketers, growth hackers, and social media managers who want to collect and analyze comments from LinkedIn posts without manual copy-pasting. It is especially useful for communit
Automate LinkedIn lead generation by scraping comments from targeted posts and enriching profiles with detailed data