Weekly Pipedrive pipeline snapshot to Google Sheets and Slack

Every Monday at 8am, log a snapshot of every Pipedrive pipeline to Google Sheets and post the weekly headline numbers to Slack.

Deterministic Code
PipedriveGoogle SheetsSlack BotSalesOperationsAI ReportsDaily DigestsData Sync

Build me a code workflow that runs every Monday at 8:00am America/New_York and produces a deterministic weekly snapshot of my Pipedrive pipeline. It should be fully reproducible, no LLM judgement needed.

Step 1: Use Pipedrive List Pipelines to enumerate every active pipeline. Capture each pipeline's id and name. Skip archived or deleted pipelines.

Step 2: For each pipeline, use Pipedrive List Deals filtered by that pipeline_id and status=open to pull every open deal. Paginate through all pages. For each deal, keep the deal id, stage_id, stage name, value, currency, add_time, and update_time.

Step 3: In code, aggregate the deals by (pipeline, stage). For each (pipeline, stage) bucket compute: deal_count, total_value (sum of value, converted to a single reporting currency if needed), average_days_in_stage (average of now minus stage_change_time, or update_time if stage_change_time is unavailable), and stalled_count (count of deals whose update_time is more than 14 days before the run time). Make the 14 day stalled threshold a configurable constant.

Step 4: Use Google Sheets Append Values to append one row per (pipeline, stage) bucket to a designated tracking tab. Columns in order: snapshot_date (the run date in America/New_York, YYYY-MM-DD), pipeline_name, stage_name, deal_count, total_value, average_days_in_stage, stalled_count. Use USER_ENTERED so numbers and dates are parsed correctly. Do not overwrite existing rows, only append.

Step 5: Use Slack Bot Send a Message to post one summary message to the configured leadership channel. The message should include: total open deal count and total open value across all pipelines, the count of stalled deals, the pipeline with the largest open value, and a link to the Google Sheets tab. Format it tightly with a bold headline and a short bullet list.

Make these configurable inputs: spreadsheet_id, tracking tab name, Slack channel, reporting timezone, stalled threshold in days, and an optional currency for value conversion. Log a final summary line with total pipelines covered, total deals processed, and total value so a human can sanity check the run.

Additional information

What does this prompt do?
  • Pulls every open deal across all your active Pipedrive pipelines on a Monday 8am schedule.
  • Aggregates per pipeline and stage into deal count, total value, average days in stage, and a stalled count for anything untouched for more than 14 days.
  • Appends one new row per pipeline and stage to a tracking tab in Google Sheets so you build a real weekly time series instead of one-off exports.
  • Posts a short Slack summary to your leadership channel with the headline numbers and a link to the sheet.
What do I need to use this?
  • A Pipedrive account connected with permission to read pipelines and deals.
  • A Google Sheets account connected with edit access to the tracking spreadsheet.
  • A Slack workspace connected with permission to post in your leadership channel.
  • The spreadsheet ID and tab name where weekly snapshots should be appended.
  • The Slack channel name or ID where the summary should land.
How can I customize it?
  • Change the cron to a different day or timezone, for example Friday at 5pm for an end-of-week snapshot.
  • Filter to a single pipeline, a specific owner, or a minimum deal value instead of every open deal.
  • Adjust the stalled threshold from 14 days to whatever your team treats as a warning sign.
  • Tweak the Slack summary format, add or drop metrics, or route it to a different channel.

Frequently asked questions

Does this overwrite my existing Pipedrive data?
No. The workflow only reads from Pipedrive. It writes new rows to a Google Sheets tab and posts a Slack message. Your CRM is untouched.
What counts as a stalled deal?
By default, any open deal whose last update in Pipedrive is more than 14 days old. You can change the threshold in the workflow if your team uses a different cutoff.
Will it pick up new pipelines automatically?
Yes. Each run lists your active pipelines, so any pipeline you add in Pipedrive shows up in next Monday's snapshot without code changes.
Can I chart the data once it is in Google Sheets?
Yes. Because each run appends a fresh row per pipeline and stage with the snapshot date, you can build a pivot table or chart over time the same way you would with any time series.
Can I run this on demand instead of waiting until Monday?
Yes. The Monday cron is one option. You can swap it for a manual trigger or change the schedule without changing the rest of the workflow.

Stop running the same Pipedrive export every Monday morning.

Connect Pipedrive, Google Sheets, and Slack once, and Geni runs this snapshot every Monday at 8am.