Bigin pipeline review board with forecast and quota tracking
Run Monday pipeline review on a drag-and-drop board that adds the weighted forecast and quota tracking Bigin does not give you.
Build me an app my sales team opens every Monday for pipeline review. Bigin has no forecasting and no custom dashboards, so this app has to do the part Bigin cannot: a weighted forecast and quota tracking sitting on top of a board we can actually work in.
The main surface is a board of my Bigin deal stages for a chosen sub-pipeline, one column per stage in the correct stage order. Each deal card shows the deal name, amount, close date, owner, and how many days it has been sitting in its current stage. Dragging a card to another column updates the Stage on that Pipelines record in Bigin.
Data comes from Bigin by Zoho CRM. Handlers call the base URL ${apiDomain}/bigin/v2 with the header Authorization: Zoho-oauthtoken ${accessToken}. Deals are the Pipelines module, and listing Pipelines accepts a pipeline_id parameter to scope the board to one team pipeline. Two things to bake in carefully. First, the fields query parameter is REQUIRED on every list read: pass comma-separated field API names, max 50 per call. Discover the exact field API names with the Fields Metadata operation before hardcoding any of them, since layouts differ per account. Second, pagination is page and per_page with per_page capped at 200, so page through until the response info object reports more_records false.
For days in current stage, prefer a stage history related list on the Pipelines record if the account exposes one, and fall back to the record's modified time when it does not. Whichever source you use, make it clear in the card tooltip what the number is measured from, so nobody reads a fallback number as gospel.
Any deal with no call, event, or note in the last 14 days gets a stalled badge. Compute that by reading the Calls, Events, and Notes modules for the deals on the board and taking the most recent activity date across all three. A deal with no activity at all counts as stalled. Make the 14 day cutoff a setting rather than a hardcoded constant.
Dragging a card writes the new Stage back to that Pipelines record. Bigin mutating calls wrap records in a data array, and the response returns a per-record code and status inside data[], which means an HTTP 200 can still contain per-record failures. Do not treat 200 as success. Move the card optimistically, then check the per-record code, and if it is anything other than SUCCESS snap the card back to its original column and surface the returned message to the user. Codes like MANDATORY_NOT_FOUND and INVALID_DATA are the ones that will actually show up here.
Above the board is a forecast strip with four numbers: total open pipeline, a weighted forecast, deals committed to close this month, and progress against a quarterly quota target. The weighted forecast is the sum of each open deal's amount multiplied by the win probability I set for the stage that deal is in. I want to set that probability per stage myself in a settings panel, and I want the app to remember both those probabilities and the quarterly quota number across sessions. The quota tile should show attained versus target with how much is left to close.
I can filter the whole board by owner or by sub-pipeline. Owner names come from the Bigin Users module so the filter shows real people rather than raw ids. Filters apply to the forecast strip and the board together, so filtering to one rep recalculates their pipeline, their weighted forecast, and their share of quota rather than just hiding cards.
A share review button posts a summary of the board to a Slack channel using Slack Bot's Send a Message operation. The summary covers top movers, stalled deals, and forecast against quota, and it reflects whatever filters are active when I click it. Let me pick the destination channel from the workspace using Slack Bot's List Channels operation, and remember my choice for next time.
Handle the ordinary edge cases without gold plating them: deals with no amount set, an empty stage column, a sub-pipeline with no deals at all, and the first run where no win probabilities or quota have been entered yet. In that first-run state the board should still render and the forecast tiles should prompt me to set my numbers rather than showing zeros as if they were real.
What does this prompt do?
- Shows your Bigin deals as a board of stage columns for whichever sub-pipeline you pick, with amount, close date, owner, and days sitting in the current stage on every card.
- Adds the forecast strip Bigin is missing: total open pipeline, a weighted forecast based on the win odds you set for each stage, what is committed to close this month, and how you are tracking against your quarterly target.
- Flags any deal with no call, meeting, or note in the last two weeks, so stalled work is obvious before the meeting starts.
- Moves a deal to a new stage in Bigin when you drag its card to another column, and posts the whole review to Slack in one click.
What do I need to use this?
- A Bigin by Zoho CRM account with deals in at least one pipeline
- Permission to view and edit deals in Bigin
- A Slack workspace where the app can post to your sales channel
- Your quarterly revenue target and a rough win rate for each stage
How can I customize it?
- Set your own win probability for each stage so the weighted forecast matches how your team actually closes.
- Change the stalled cutoff from two weeks to whatever your sales cycle warrants.
- Filter the board by rep or sub-pipeline before you share, and pick which Slack channel the summary posts to.
FAQs
Does this change anything in Bigin?
Will this work on the free Bigin plan?
How is the weighted forecast calculated?
What counts as a stalled deal?
Can the whole sales team use it, or just the manager?
Related templates
See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.
One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.
Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.
Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.
Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.
A personal queue of every overdue Guru card, sorted by how late it is, with one-click verify, reassign, comment, and an agent that drafts the refresh for you.
Give Bigin the forecast it never shipped.
Build a pipeline review board your team works out of every Monday, with weighted forecasting and quota tracking on top of the deals you already have.