When you need to share operational data across departments or hand it to an external contractor, you usually hit the same wall: the master spreadsheet holds sensitive personally identifiable information (PII). Salaries, social security numbers, customer emails, phone numbers — none of that can go out as-is. The fix is to mask PII in Google Sheets automatically, as the data moves.
The manual fixes don’t hold up. Duplicating the master file and deleting columns gives you a static copy that’s stale the moment a new row is logged. Writing a Google Apps Script to sanitize the data mid-transit takes real effort and adds its own security risk. Both put a person in the loop where you don’t want one.
Sheetgo Anonymize processor removes that step. It sits inside your data pipeline and masks, redacts, or hashes sensitive columns automatically as data moves from a source spreadsheet to a destination — so the copy your team shares is clean, current, and PII-free. This guide walks through three real use cases, each configured from scratch, so you can see exactly how to mask PII in Google Sheets for your own operation.
Sign up for Sheetgo free and build your first secure pipeline.
Meet the Anonymize processor
Instead of treating privacy as a step you remember to do later, the Anonymize processor bakes it into the pipeline. As your rows pass through Sheetgo, it reads each column, applies the masking rule you chose, and writes the protected version to the destination — the raw values never reach the shared file.
Your internal source sheet stays complete and refreshes on schedule. The shared copy stays anonymized. Nobody has to remember to scrub anything.
The two modes of the Anonymize processor
There are two ways to mask PII in Google Sheets with the Anonymize processor. When you drop an Anonymize step into a workflow, you pick one of two modes:
- Automatic (DLP Powered PII detection): Sheetgo scans the columns and masks the ones it flags as sensitive, without you mapping anything by hand. Fast, but it’s a best guess — the tool itself reminds you to double-check its coverage.
- Custom (Configure masking per column): you decide exactly how each column is treated, choosing from a dropdown of masking and hashing methods.
The three use cases below show both modes in practice — a custom setup, an automatic one, and a custom setup tuned for client reporting.
Use case 1: HR and departmental headcount routing (custom masking)
HR keeps a master roster with payroll figures and IDs. Department managers need the roster to track roles, performance, and headcount — but exposing salary tiers and SSNs breaks basic compliance. Custom masking lets the operational fields flow through while locking down the sensitive ones.
We start with a spreadsheet named Master_HR_Roster, unmasked, with visible salaries and full SSNs.
1. Start your workflow. In your Sheetgo Workflows app, click + New → New Automation → Create a workflow.
2. Select the source. Escolha Planilhas Google, find Master_HR_Roster, and select the tab with the roster. Click Próxima etapa.
3. Add the processor. On the data processor screen, click Anonymize.
4. Pick the mode. Set Anonymization Mode para Custom (Configure masking per column). Sheetgo pulls in your column headers automatically.
5. Set the rules. Leave Employee_ID, names, departments, roles, and locations on No masking. For the sensitive columns:
- Salary → Redact. Replaces the value entirely with
[REDACTED]. - SSN → Partial Start. Masks the start of the value and keeps the last digits visible, so
660-03-8360becomes***8360— enough to reconcile a record without exposing the full number.
Clique em Próxima etapa.
6. Set the destination. Escolha Planilhas Google, then create a new file (or a new tab) for the sanitized copy — here, Sanitized_Roster. Clique em Review automation.
7. Review and schedule. The summary shows the three-step flow: Source → Anonymize → Destination. Toggle Enable automation triggers, pick a schedule like Every hour, e clique em Terminar e correr.
8. Check the output. Aberto Sanitized_Roster. Names, roles, and locations pass through cleanly for headcount planning. Salary is replaced with a uniform [REDACTED], and each SSN is truncated to its last four digits (***8360, ***8905) — no scripting involved.
Use case 2: financial auditing and broad data dumps (automatic DLP)
Say you have to hand a large, messy database export to an external auditor. They need it to calculate financial metrics and check dates — not to read customer contact details buried in the text columns. Mapping dozens of columns by hand isn’t worth the time. Automatic mode is built for exactly this: it scans the whole dataset, protects the text-heavy columns, and leaves the core numbers readable.
We start with Raw_Audit_Logs — unstructured data with customer names and notes mixed in.
1. Start the workflow and select the source. As before, open + New → New Automation → Create a workflow in the Sheetgo Workflows app, choose Planilhas Google, and select Raw_Audit_Logs. Clique em Próxima etapa.
2. Add the Anonymize processor from the data processor screen.
3. Set the mode to automatic. Escolha Automatic (DLP Powered PII detection). The per-column list disappears — the engine takes over — and a banner reminds you that automatic detection may not catch everything and that you should confirm which columns actually need masking. Treat it as a strong first pass, then verify. Click Próxima etapa.
4. Set the destination and run. Escolha Planilhas Google, name a new file or tab (for example Auditor_Sync_View), review the automation, enable triggers on your schedule, and click Terminar e correr.
5. Check the output. Em Auditor_Sync_View, the accounting data — Audit_ID, Transaction_Date, and the Amount values — stays untouched so the auditor can run their numbers. The free-text columns that could hold contact details, Client_Name and Auditor_Notes, are overwritten with a cryptographic hash.
Use case 3: agency-to-client lead reporting (cryptographic hashing)
Lead-gen agencies want to show clients the volume and quality of incoming leads — without handing over the raw contact details before the retainer clears. Combining a salted hash with partial masking lets an agency prove the work while holding the deliverable back.
We start with Agency_Lead_Capture — live inbound leads with full names, corporate emails, and phone numbers.
1. Start the workflow and select the source. Create a new workflow, choose Planilhas Google, and select Agency_Lead_Capture. Clique em Próxima etapa.
2. Add the Anonymize processor and set the mode to Custom (Configure masking per column).
3. Set the rules. Leave Lead_ID, Capture_Date, and Campaign_Source on No masking so the client can verify timeline and source. For the contact data:
- First_Name and Last_Name → Salted Hash. Turns each name into a unique alphanumeric string, so the client can count distinct records without reading the actual names.
- Email → Partial Email. Masks most of the address — local part and domain — leaving only fragments (a character or two and the tail), enough to show a real business email was captured without exposing it.
- Phone → Redact. Strips the number entirely.
4. Set the destination. Send the output to a new tab, Client_Live_Dashboard, then click Review automation.
5. Review, schedule, and run. Confirm the flow, enable triggers on your schedule, and click Terminar e correr.
6. Check the output. Em Client_Live_Dashboard, the client sees campaign performance in full — sources like LinkedIn Ads or Google Search, and lead dates. The names are hashed (e5c4f04528…), the emails are partially masked (m.*****@dund*********.c**), and the phone column is [REDACTED]. Enough to prove the work, not enough to poach the leads.
Which method to pick to mask PII in Google Sheets
Across the three cases, the pattern is simple:
- Internal routing (HR): custom masking — Redact and Partial Start — gives managers the fields they need without touching payroll compliance.
- Broad external dumps (audits): automatic mode is the zero-setup option; it hashes the risky text and preserves the numbers. Verify its coverage before you send.
- Client-facing reporting (agencies): Salted Hash plus Partial Email proves volume and quality without exposing the raw deliverable.
It’s one step in a bigger pipeline
The Anonymize processor isn’t a standalone tool — it’s one step you can stack with others in a Sheetgo workflow, so you can mask PII in Google Sheets as part of a larger automation rather than a separate chore. In a single automation you might merge several regional files into one master sheet, filter out inactive accounts, anonymize the sensitive columns, then split the clean output into separate departmental sheets by location.
You can also chain it with Sheetgo’s AI Data Processor to clean and classify data before it’s masked, or feed a sanitized sheet into a webhook or downstream report. Instead of maintaining Apps Script files and duplicate spreadsheets by hand, you get compliance built into the pipeline by default.
Ready to mask PII in Google Sheets without the scripting? Sign up for Sheetgo and build your first anonymized pipeline today.
