Extract Business Card Data from Slack to Google Sheets with GPT-4o OCR

Go to Workflow
0 views
Built by Toshiki Hirao Toshiki Hirao
Created on June 08, 2026

Description

You can turn messy business card photos into organized contact data automatically.
With this workflow, you can upload a business card photo to Slack and instantly capture the contact details into Google Sheets using OCR. No more manual typing—each new card is scanned, structured, saved, and confirmed back in Slack, making contact management fast and effortless.

How it works
Slack Trigger – The workflow starts when a business card photo is uploaded to Slack.
HTTP Request – The uploaded image is fetched from Slack.
AI/OCR Parsing – The card image is analyzed by an AI model and structured into contact fields (name, company, email, phone, etc.).
Transform Data – The extracted data is cleaned and mapped into the correct format.
Google Sheets – A new row is appended to your designated Google Sheet, creating an organized contact database.
Slack Notification – Finally, a confirmation message is sent back to Slack to let you know the contact has been successfully saved.

How to use
Copy the template into your n8n instance.
Connect your Slack account to capture uploaded images.
Set up your Google Sheets connection and choose the spreadsheet where contacts should be stored.
Adjust the Contact Information extraction node if you want to capture custom fields (e.g., job title, address).
Deploy and test: upload a business card image in Slack and confirm it’s added to Google Sheets automatically.

Requirements
n8n running (cloud).
A Slack account with access to the channel where photos will be uploaded.
A Google Sheets account with a target sheet prepared for storing contacts.
AI/OCR capability enabled in your n8n (e.g., OpenAI, Google Vision, or another OCR/LLM provider).
Basic access rights in both Slack and Google Sheets to read and write data.

Nodes Used (6)

AI Agent
@n8n/n8n-nodes-langchain.agent
Google Sheets
n8n-nodes-base.googleSheets
HTTP Request
n8n-nodes-base.httpRequest
OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi
Slack
n8n-nodes-base.slack
Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured