🔓 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

Google Tasks to Slack, a clean daily brief every day

Lisa Granqvist Partner Workflow Automation Expert

Your day shouldn’t start with hunting for tasks, copying them into Slack, and then second-guessing due dates. But that’s what happens when Google Tasks lives in one place and your team communicates somewhere else.

This Google Tasks Slack automation hits team leads first (they’re the ones writing “today’s plan” posts). It also saves ops managers and busy agency owners who need a clean daily brief without the morning scramble.

In a few minutes, you’ll understand how this workflow pulls tasks due today, summarizes them, and posts a Slack-ready briefing automatically, every morning.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Tasks to Slack, a clean daily brief every day

The Problem: Daily task updates become manual busywork

Google Tasks is great for capturing work fast. The problem shows up the next morning, when you need to turn that private list into a clear plan your team can actually act on. Someone ends up rewriting tasks into Slack, cleaning up messy titles, and checking every due date because timezones and “due today” logic are surprisingly easy to get wrong. Miss one item and you’ve created confusion before the day even starts. Do it every weekday and you lose a real chunk of time, plus the mental load of remembering “did I include everything?”

The friction compounds. Here’s where it breaks down in real life:

  • People copy tasks by hand, and the wording changes, which means the “plan” doesn’t match the source of truth.
  • Due dates get double-checked (again), because nobody trusts a manual summary at 7:30 AM.
  • Task lists drift, since some items get updated in Google Tasks and never reflected in Slack.
  • When there are no tasks due today, you still spend time confirming that nothing is missing.

The Solution: A Slack-ready morning brief from Google Tasks

This workflow runs every morning on a schedule (it’s set to 7:00 AM by default). It pulls tasks from your chosen Google Tasklist, normalizes the dates to your timezone, and keeps only what’s actually due today. If there are no due-today tasks, it posts a simple “No tasks due today” message to Slack so your team isn’t left guessing. If tasks exist, it creates a compact prompt and asks a local LLM (via LangChain + Ollama) to produce a short, clean summary that’s meant for Slack. Finally, it removes any hidden <think> content the model might include, then posts the final message into your selected Slack channel.

The workflow starts with a daily Cron trigger. Then Google Tasks provides the raw list, code filters it to “today” in your timezone, and an If branch decides which message goes to Slack. The LLM path turns a task list into a brief your team will read instead of ignore.

What You Get: Automation vs. Results

Example: What This Looks Like

Say a team lead posts a daily plan to Slack 5 days a week. Manually, it’s usually about 10 minutes to open Google Tasks, filter what’s due today, rewrite it into a readable brief, then double-check dates and wording. That’s close to an hour every week. With this workflow, the “work” is basically zero after setup: it triggers at 7:00 AM, processes in the background, and your channel has the brief by the time people check Slack.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Tasks to read tasks from a tasklist
  • Slack to post the morning brief
  • Ollama endpoint for local LLM summaries
  • Google Tasks OAuth2 credential (get it from Google Cloud Console)
  • Slack API token (get it from your Slack app settings)

Skill level: Intermediate. You’ll connect OAuth credentials, set a timezone constant, and test one scheduled run.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A scheduled morning trigger fires. The Cron node runs at 7:00 AM by default, so your brief shows up before standups and before inbox chaos starts.

Your Google Tasks list is pulled and cleaned up. n8n fetches tasks from the tasklist you choose, then a small code step normalizes dates to your timezone and keeps only tasks due today.

The workflow takes the right path automatically. If there are no tasks due today, it sends a simple Slack message and stops. If tasks exist, it builds a compact prompt and sends the list to a LangChain LLM chain connected to an Ollama local model.

A final brief is posted to Slack. A cleanup step strips any <think>...</think> blocks (honestly, this is a lifesaver for “internal reasoning” models), and then the Slack node publishes the final summary to your chosen channel.

You can easily modify the schedule time to match your team’s day, or adjust the “due today” timezone logic for remote teams. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Cron Trigger

Set the workflow to run automatically each morning using the scheduled trigger.

  1. Add or open Scheduled Morning Trigger and set Trigger Times to run at hour 7.
  2. Keep the default schedule unless you need a different daily hour for your briefing.

⚠️ Common Pitfall: The cron schedule uses your n8n instance timezone. If you need a specific local time, confirm the instance timezone aligns with your morning schedule.

Step 2: Connect Google Tasks

Pull all tasks from the specific Google Tasks list you want to summarize.

  1. Open Retrieve Task List and set Task to [YOUR_ID].
  2. Set Operation to getAll and enable Return All to true.
  3. Credential Required: Connect your googleTasksOAuth2Api credentials.

⚠️ Common Pitfall: Replace [YOUR_ID] with your actual Google Tasks list ID, or the workflow will return no tasks.

Step 3: Filter and Route Today’s Tasks

Filter tasks due today and route the flow based on whether any tasks exist.

  1. Open Filter Today's Tasks and keep the JavaScript as-is to filter due dates in Asia/Dhaka and emit { __empty: "empty" } when none exist.
  2. In Task Presence Check, verify the condition checks Left Value ={{ $json.__empty }} notEquals Right Value empty.
  3. Confirm the routing: Task Presence Check sends items with tasks to Compose LLM Brief Prompt, and empty results to Post Empty Tasks Alert.

Step 4: Set Up the LLM Briefing Generation

Generate a Slack-ready summary using the LLM chain and a local Ollama model.

  1. Open Compose LLM Brief Prompt to keep the prompt-building logic that outputs a single input field for the LLM.
  2. In LLM Briefing Chain, set Text to ={{ $json.input }} and keep Prompt Type as define.
  3. Open Ollama Language Model and set Model to qwen3:4b.
  4. Credential Required: Connect your ollamaApi credentials on Ollama Language Model. It is connected as the language model for LLM Briefing Chain—do not add credentials to the chain node itself.
  5. In Strip Think Tags, keep the cleanup code that removes <think>...</think> and outputs cleanText.

Step 5: Configure Slack Outputs

Send either a “no tasks” alert or the generated brief to Slack.

  1. In Post Empty Tasks Alert, set Text to 🌤️ No Google Tasks due today. I’ll check again tomorrow and choose your Slack Channel (replace REPLACE_WITH_SLACK_CHANNEL_NAME).
  2. Credential Required: Connect your slackApi credentials in Post Empty Tasks Alert.
  3. In Dispatch Slack Brief, set Text to ={{ $json.cleanText }} and choose the same or a different Slack Channel.
  4. Credential Required: Connect your slackApi credentials in Dispatch Slack Brief.

⚠️ Common Pitfall: If the Slack channel name is wrong or not accessible to your Slack app, messages will fail to post.

Step 6: Test and Activate Your Workflow

Run a manual test to verify both branches, then activate for daily use.

  1. Click Execute Workflow and check the output of Retrieve Task List and Filter Today's Tasks.
  2. If tasks exist, confirm Dispatch Slack Brief posts a concise summary to Slack.
  3. If no tasks exist, confirm Post Empty Tasks Alert posts the “no tasks” message.
  4. When successful, toggle the workflow to Active to enable the daily scheduled run.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Tasks OAuth credentials can expire or need the right scopes. If tasks stop loading, check the credential in n8n and confirm the Google Tasks API is enabled in Google Cloud Console.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Slack tokens often fail because the app is missing chat:write permission or the bot isn’t in the channel. Verify the Slack credential in n8n, then confirm the bot is invited to the target channel.

Frequently Asked Questions

How long does it take to set up this Google Tasks Slack automation?

About 30–60 minutes if your Google and Slack credentials are ready.

Do I need coding skills to automate Google Tasks to Slack?

No. You’ll mainly connect accounts and paste in the provided code blocks as-is.

Is n8n free to use for this Google Tasks Slack 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. If you use a local Ollama model, your LLM cost is basically your own compute.

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.

Can I customize this Google Tasks Slack workflow for a different posting time and timezone?

Yes, and it’s a common tweak. Change the Cron node from 7:00 AM to your preferred hour, then update the TZ constant inside the “Filter Today’s Tasks” code node to match your team. Some teams also adjust the Slack message formatting (bullets vs. short paragraphs) by editing the “Compose LLM Brief Prompt” node.

Why is my Google Tasks connection failing in this workflow?

Most of the time it’s expired OAuth consent or the wrong scope on the Google Tasks credential. Re-check that the Google Tasks API is enabled in your Google Cloud project, then confirm the credential in n8n still shows as connected. Also verify the selected Tasklist inside “Retrieve Task List,” because swapping Google accounts can silently point you at an empty list. If you recently changed redirect URLs or upgraded your n8n domain, you may need to re-authenticate.

How many tasks can this Google Tasks Slack automation handle?

Practically, it can handle dozens of due-today tasks in a single run, and most teams never hit a limit.

Is this Google Tasks Slack automation better than using Zapier or Make?

Often, yes, because this workflow includes “real” filtering logic, branching, and LLM cleanup that’s awkward to maintain in simpler tools. n8n also lets you self-host, which matters if you want unlimited scheduled runs and more control over credentials. The local Ollama approach is another big deal if you don’t want to send task content to third-party AI APIs. On the other hand, if your brief is just “list tasks and post,” Zapier or Make can be quicker to set up. Talk to an automation expert if you want help choosing.

Once this is live, the “morning brief” becomes background noise in the best way. Your team gets a clear plan, and you get your mornings back.

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