Skip to main content

Send tiered contract renewal Slack alerts from Google Sheets

Workflow preview

Workflow preview
100%
Send tiered contract renewal Slack alerts from Google Sheets preview
Open on n8n.io

1. Workflow Overview

What this workflow does Runs every morning at 9am. Reads every contract from the 5 tabs in your Contracts sheet, checks how many days are left until each , and pings Slack with tiered alerts so no ...

Best for

  • Document Extraction automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.if, n8n-nodes-base.switch, n8n-nodes-base.slack, n8n-nodes-base.scheduletrigger, n8n-nodes-base.googlesheets, n8n-nodes-base.merge, n8n-nodes-base.set, n8n-nodes-base.stickynote

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Felix.

Original n8n.io source

1.1 Workflow description

Title
Send tiered contract renewal Slack alerts from Google Sheets
Workflow name
Send tiered contract renewal Slack alerts from Google Sheets

What this workflow does

Runs every morning at 9am. Reads every contract from the 5 tabs in your Contracts sheet, checks how many days are left until each Cancellation Deadline, and pings Slack with tiered alerts so no renewal slips through.


Alert tiers

Days until deadline Tier Message
≀ 7 πŸ”΄ Urgent Act now
≀ 14 🟑 Action needed Plan this week
≀ 30 🟒 Heads-up On your radar
> 30 or past due β€” No alert

Auto-renewing contracts get a stronger warning than contracts that simply expire – because that's the case where money is actually at stake.


Setup guide

1. Add two columns to every tab in your Contracts sheet Open your sheet and add these two columns to all 5 tabs (SaaS, Leases, Services, Insurance, Other):

  • Last Alert Tier
  • Last Alert Date

Leave both empty for existing rows. These drive the de-duplication – without them you'll get the same ping every day for weeks.

2. Paste your Sheet ID Replace YOUR_GOOGLE_SHEET_ID in all 5 Read nodes. It's the same Sheet you used in Part 1.

3. Set your Slack channel Replace YOUR_SLACK_CHANNEL_ID in all 3 Slack nodes with the channel (or DM) where alerts should land. #contracts or #finance-alerts work well; DM to the contract owner is fine too.

4. Connect credentials

  • Google Sheets β†’ OAuth
  • Slack β†’ OAuth

5. Activate and test Before turning it on, temporarily set one row's Cancellation Deadline to ~10 days from today and clear its Last Alert Tier. Click Execute Workflow and confirm a 🟑 Slack message lands. Revert the row, then activate.


Known limitations (v1)

No automatic writeback. Today the workflow alerts but doesn't mark the row as "alerted". To stop daily re-pings, either:

  • Fill Last Alert Tier manually when the alert fires (🟒 / 🟑 / πŸ”΄), or
  • Add a Google Sheets Update node per tab (Switch by Contract Class, match on Start Date + Provider Name as a composite key)

Works on ISO dates only. The days_left calculation assumes Cancellation Deadline is stored as YYYY-MM-DD. Part 1 produces this format correctly, so this is only a concern if you're adding rows manually.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Needs Alert Today?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.3

Block 2 - Route by Tier

Type / Role
n8n-nodes-base.switch - switch
Config choices
Version 3.4

Block 3 - Slack: Urgent (Red)

Type / Role
n8n-nodes-base.slack - slack
Config choices
Version 2.3

Block 4 - Slack: Action (Yellow)

Type / Role
n8n-nodes-base.slack - slack
Config choices
Version 2.3

Block 5 - Slack: Heads-up (Green)

Type / Role
n8n-nodes-base.slack - slack
Config choices
Version 2.3

Block 6 - Trigger: Daily at 9am

Type / Role
n8n-nodes-base.scheduleTrigger - scheduleTrigger
Config choices
Version 1.1

Block 7 - Read: Services Tab

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4

Block 8 - Read: Leases Tab

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4

Block 9 - Read: SaaS Tab

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4

Block 10 - Read: Insurance Tab

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4

Block 11 - Read: Other Tab

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4

Block 12 - Merge: All Contracts

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Block 13 - Calculate Tier & Days Left

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 14 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 15 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 16 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 17 - Sticky Note3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 18 - Sticky Note4

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 19 - Sticky Note5

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 20 - Sticky Note6

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 21 - Sticky Note7

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

3. Summary Table

Workflow Send tiered contract renewal Slack alerts from Google Sheets
Complexity advanced
Nodes 21
Categories Document Extraction
Author Felix
Published 22 Apr 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/15231/15231.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Send tiered contract renewal Slack alerts from Google Sheets do?

What this workflow does Runs every morning at 9am. Reads every contract from the 5 tabs in your Contracts sheet, checks how many days are left until each , and pings Slack with tiered alerts so no ...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Document Extraction use case.