🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Slack to Google Sheets, business cards logged fast

Lisa Granqvist Partner Workflow Automation Expert

Business cards are still everywhere. The problem is what happens after: photos scattered in Slack, names typed in later (maybe), and a “where did that lead go?” moment a week from now.

This Slack Sheets automation hits sales reps first, but event marketers and ops people cleaning up CRMs feel it too. You post a card photo, and the contact shows up in Google Sheets with the key fields already filled in.

Below you’ll see how the workflow runs, what it eliminates, and what you can tweak so it matches the way your team captures leads.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: Slack to Google Sheets, business cards logged fast

The Challenge: Business Cards Turn Into Data Entry

Capturing leads from business cards sounds simple until you’re doing it at speed. You take a photo, drop it into Slack, and tell yourself you’ll “log it later.” Later becomes next week. Then it’s a scramble: zooming into blurry text, guessing at email spellings, mixing up titles, or saving “John” with no company because you couldn’t read the logo. It’s not just time. It’s lost context, missed follow-ups, and a list that never becomes searchable.

It adds up fast. Here’s where the friction compounds:

  • Someone has to retype every field, and it’s usually the busiest person on the team.
  • Small mistakes (a wrong digit, a missing domain) quietly break follow-up.
  • Photos sit in Slack threads, which means you can’t sort, dedupe, or search contacts later.
  • Even if you do capture the lead, you still need a “did it save?” check, or you end up doing the work twice.

The Fix: Capture Slack Business Cards Straight Into Sheets

This workflow turns one small habit (posting the photo) into a clean contact record you can actually use. It starts when a business card photo is uploaded in Slack. n8n fetches the image from Slack, then sends it to an AI-powered extraction step that reads the card and returns structured fields like name, company, email, and phone. After that, the data is cleaned and mapped into the columns you’ve chosen in Google Sheets. Finally, the workflow appends a new row to your sheet and posts a confirmation back to Slack so you know it worked. No spreadsheet hunting, no copying details off a tiny rectangle of paper.

The workflow begins with a Slack trigger and pulls down the image with an HTTP request. Then the AI agent extracts and structures contact details so your sheet gets consistent rows. Once the row is saved, Slack gets a quick confirmation message.

What Changes: Before vs. After

Real-World Impact

Say your team collects 30 business cards after a conference day. Manually, a careful entry is maybe 5 minutes per card once you include checking spelling and formatting, so that’s about 2.5 hours of admin. With this workflow, each person just posts the photo in Slack (a few seconds), and the automation handles extraction plus Sheets logging in the background. You still spot-check a few rows, but the heavy lifting is gone.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Slack to receive the uploaded card photos.
  • Google Sheets to store contacts in a shared table.
  • OpenAI API key (get it from your OpenAI dashboard)

Skill level: Beginner. You’ll connect accounts, pick your sheet, and adjust which fields you want captured.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

A Slack photo lands in your channel. The trigger listens for a new message with an uploaded business card image, so you don’t need a separate form or app.

The image is fetched from Slack. n8n uses an HTTP request to retrieve the file so it can be processed reliably (not just “seen” in the chat).

AI extracts the contact fields. The workflow passes the image to an AI agent powered by an OpenAI chat model, then uses a structured output step so you get predictable fields like name, company, email, and phone.

A new row is created in Google Sheets, then Slack gets confirmation. The workflow appends the data into your chosen sheet and posts back a message so the person who uploaded it knows the lead is saved.

You can easily modify the fields captured (like job title or address) to match your sheet columns. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Slack Message Trigger

Set up the workflow to start when a new Slack message is posted in a specific channel.

  1. Add the Slack Message Trigger node to your workflow.
  2. Credential Required: Connect your slackApi credentials.
  3. Set Trigger to message.
  4. Set Channel to the target Slack channel (value: [YOUR_ID]).

Step 2: Connect Slack and Download the Image

Use the Slack file URL from the trigger to download the business card image file.

  1. Add the Retrieve Image File node and connect it to Slack Message Trigger.
  2. Credential Required: Connect your slackApi credentials.
  3. Set URL to ={{ $json.files[0].url_private_download }}.
  4. Set Authentication to predefinedCredentialType and Credential Type to slackApi.
  5. Under Options → Response, set Response Format to file.

Step 3: Set Up the AI Extraction

Configure the AI to extract structured contact data from the image, then split the results into individual records.

  1. Add the OpenAI Chat Model node and select the model gpt-4o.
  2. Credential Required: Connect your openAiApi credentials.
  3. Add the Define Structured Output node and set JSON Schema Example to [{ "full names": "Toshiki Hirao", "job titles": "CEO", "company names": "dTosh", "phone numbers": "012-3456-938", "email": "[YOUR_EMAIL]" }].
  4. Add the Extract Contact Details node and set Text to Please identify and extract all professional contact information from the image containing several business cards. You have to include details that are full names, job titles, company names, phone numbers, and email addresses..
  5. In Extract Contact Details, keep Prompt Type as define and enable Has Output Parser.
  6. Connect OpenAI Chat Model to Extract Contact Details as the language model.
  7. Connect Define Structured Output to Extract Contact Details as the output parser. For this AI sub-node, credentials are added to OpenAI Chat Model, not Define Structured Output.
  8. Add the Split Output Records node after Extract Contact Details and set Field to Split Out to output with Include as allOtherFields.

Step 4: Configure Google Sheets and Slack Outputs

Append each extracted contact into Google Sheets and then post a confirmation to Slack.

  1. Add the Append Sheet Row node and connect it to Split Output Records.
  2. Credential Required: Connect your googleSheetsOAuth2Api credentials.
  3. Set Operation to append.
  4. Select your Document (value: [YOUR_ID]) and Sheet (value: gid=0).
  5. Map columns: Name to ={{ $json.output['full names'] }}, Email to ={{ $json.output.email }}, Phone to ={{ $json.output['phone numbers'] }}, Company to ={{ $json.output['company names'] }}, and Job Title to ={{ $json.output['job titles'] }}.
  6. Add the Post Slack Confirmation node and connect it to Append Sheet Row.
  7. Credential Required: Connect your slackApi credentials.
  8. Set Text to =--- Name: {{ $json.Name }} Title: {{ $json['Job Title']}} Company: {{ $json.Company }} Phone: {{ $json.Phone }} Email: {{ $json.Email }} and select your target Channel (value: [YOUR_ID]).

Step 5: Test and Activate Your Workflow

Validate the end-to-end flow from Slack message to Google Sheets and confirmation post.

  1. Click Execute Workflow in n8n and post a message with a business card image in the configured Slack channel.
  2. Verify that Retrieve Image File downloads the file and Extract Contact Details outputs structured data.
  3. Confirm new rows are appended in the Google Sheet by Append Sheet Row.
  4. Check Slack for the formatted confirmation from Post Slack Confirmation.
  5. When everything looks correct, toggle the workflow Active to enable continuous processing.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • Slack credentials can expire or need specific permissions. If things break, check the Slack app permissions and your n8n credential connection first.
  • If you’re posting low-light photos, the AI extraction can come back incomplete. Ask your team to snap the card on a flat surface with decent lighting, or you’ll be fixing missing emails later.
  • Default AI prompts are generic. Add your column names and “what counts as a valid email/phone” rules early, or you will spend time cleaning Sheets afterward.

Common Questions

How quickly can I implement this Slack Sheets automation?

Usually about 30 minutes if Slack, Sheets, and your API key are ready.

Can non-technical teams implement this business card logging?

Yes. No coding is required, but you will need to connect Slack and Google Sheets credentials. The only “fiddly” part is matching your sheet columns to the fields you want extracted.

Is n8n free to use for this Slack Sheets automation workflow?

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 OpenAI API costs (often a few cents per card, depending on your model and usage).

Where can I host n8n to run this automation?

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.

How do I adapt this Slack Sheets automation solution to my specific challenges?

You can change what gets captured by adjusting the extraction prompt in the “Extract Contact Details” agent and the “Define Structured Output” step that enforces the fields. Common tweaks include adding job title, splitting first and last name, capturing a full address, or saving the original Slack file URL into your sheet for reference.

Why is my Slack connection failing in this workflow?

Usually it’s an expired Slack token or missing permissions to read files in that channel. Reconnect the Slack credential in n8n and confirm the app can access file uploads. If the HTTP request can’t fetch the image, double-check the file URL handling and make sure the message trigger is firing on the right event type.

What’s the capacity of this Slack Sheets automation solution?

On n8n Cloud, capacity depends on your plan’s monthly executions, and each uploaded card typically counts as one run. If you self-host, there’s no execution cap; it mainly depends on your server and the time your AI extraction takes. In practice, most small teams can process dozens of cards in a day without thinking about limits. If you’re logging hundreds daily, you’ll want to watch API rate limits and queueing.

Is this Slack Sheets automation better than using Zapier or Make?

Often, yes, because OCR + structured extraction usually needs more control than a simple two-step Zap. n8n makes it easier to enforce a consistent schema (so Sheets columns don’t drift), and you can self-host if you want unlimited runs. Zapier and Make can still work if your needs are basic, but the moment you want better validation, retries, or custom prompts, they get awkward. Honestly, the best choice depends on volume and how picky you are about data quality. Talk to an automation expert if you’re not sure which fits.

Once this is running, business cards stop being “something to deal with later.” They turn into searchable leads the same day, and your team keeps moving.

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.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal