A morning pipeline board for your GoHighLevel deals

See every open deal as a card, spot the ones going stale, and move, edit or reply to them without opening the CRM.

App
LeadConnectorGoHighLevelSalesOperationsLead EnrichmentResearch & Monitoring
PromptCreate

Build me a pipeline review board for my GoHighLevel opportunities that my sales manager and reps open every morning instead of clicking through the CRM. It should be a live board they work out of and act in, not a report.

The main view is a kanban board. I pick a pipeline, and the columns are that pipeline's stages in order. Load the pipeline list and its stages with LeadConnector Get Pipelines, and load the deals with LeadConnector Search Opportunities scoped to the selected pipeline. Default the board to open opportunities only, and make both the pipeline selection and that open-only default adjustable in the app.

Each card is one opportunity and shows the contact name, the deal value, the owner, and how many days it has been sitting in its current stage. Compute days in stage from the opportunity's last stage change timestamp when the record carries one, and fall back to its last updated or created timestamp when it does not, so the number is never blank. Cards that have been in stage longer than a threshold I set get visually flagged as stale; default the threshold to 14 days and let me change it. Each column header shows the stage name, the number of cards in it, and the total deal value sitting in that column, so I can see where the money is stuck.

I can filter the whole board two ways: by assigned user, and to stale-only. Important constraint: there is no operation to enumerate users on either connection, so build the owner filter from the distinct assigned-user values present on the opportunities you have loaded rather than trying to fetch a user directory. Show whatever owner name or identifier the opportunity payload carries. Filters apply across every column at once and the column totals recalculate to match what is visible.

Dragging a card to another column moves the deal to that stage by calling LeadConnector Update Opportunity. I can also edit a card's value or its status inline without opening anything, using the same Update Opportunity operation. Update the card optimistically so the board feels immediate, and roll the card back to its previous column or value with a clear error if the write fails.

Clicking a card opens a side panel for that deal's contact. Load the contact record with GoHighLevel Contacts: Get Contact, find their conversation with GoHighLevel Conversations: Search Conversations, and pull the recent message history with GoHighLevel Conversations: Get messages by conversation id, newest last so it reads like a thread. I want to see what was actually said before I act. The panel also has a box to write a note, saved with GoHighLevel Contacts: Create Note, and a box to send the contact a message, sent with GoHighLevel Conversations: Send a new message, both without leaving the board.

Every card also gets a Prep this deal button that kicks off a background agent for that one deal. The agent reads the contact's conversation history through Conversations: Search Conversations and Conversations: Get messages by conversation id, looks the company up on the web, and writes a short brief covering who they are, what they asked about, what is blocking the deal, and a suggested next step. Keep the brief short enough to read right before a call. Save it as a note on the contact with GoHighLevel Contacts: Create Note so it lives on the CRM record, and also surface it in the app on the card and in the side panel so the rep can read it without digging. Show the button's running state on the card and refresh the brief into view when the agent finishes.

Two connection details to get right. GoHighLevel is represented by two services that share one OAuth surface: pipeline and opportunity operations live only on the LeadConnector connection, while contacts and conversations operations live on the GoHighLevel connection, so the app needs both. There is no operation to enumerate sub-accounts, so scope the app to a single sub-account, or location, connection.

Two API details to bake in. Every request needs a Version header, and the value differs by area: send 2021-07-28 for opportunity and contact requests, and 2021-04-15 for conversation requests. Opportunity search uses cursor-based pagination, so page through it until the pipeline is fully loaded rather than showing only the first page, and keep the board responsive while that happens.

Persist the pipeline selection, the stale threshold, and the open-only setting so the board comes back the way each person left it. Everyone sees the same pipeline; the owner and stale filters are per-person view state.

What does this prompt do?

  • Lays out the pipeline you pick as a board, one column per stage and one card per open deal, showing the contact name, deal value, owner, and how many days it has been sitting in that stage.
  • Flags any deal that has not moved in longer than your chosen number of days, and totals the value sitting in each column so you can see where the money is stuck.
  • Lets you drag a deal into a new stage, edit its value or status right on the card, and filter the board down to one rep or to stale deals only.
  • Opens a side panel on any card with the contact's details and their recent messages, plus a box to leave a note or send them a reply without leaving the board.
  • Gives every card a Prep this deal button that reads the conversation history, researches the company, and writes a short call brief back onto the contact.

What do I need to use this?

  • A GoHighLevel account with at least one sales pipeline already set up
  • Permission to connect the sub-account whose deals you want the board to cover
  • Deals that have an owner assigned, if you want the filter by rep view to be useful
  • Contacts with some message history, so the side panel and the deal briefs have something to read

How can I customize it?

  • Change how many days a deal can sit in one stage before it gets flagged as stale (it starts at 14)
  • Switch which pipeline the board is showing, or point it at a different sub-account
  • Show all deals including won and lost, instead of the default of open deals only
  • Adjust what the Prep this deal brief covers, for example adding budget or timeline to the questions it answers

FAQs

Does dragging a card actually update GoHighLevel?
Yes. Moving a card to another column writes the new stage straight back to the deal in GoHighLevel, and the same goes for editing a deal's value or status on the card. The board is not a read-only copy, so what your team does here is what the rest of the business sees.
What counts as a stale deal?
A deal is flagged when it has been sitting in its current stage longer than your threshold, which starts at 14 days and is yours to change. It is based on how long the deal has been stuck at that step, not on how old the deal is overall, so a long-running deal that keeps progressing will not be flagged.
Can I show more than one pipeline at a time?
The board shows one pipeline at a time so the columns stay meaningful, since every pipeline has its own stages. You can switch between pipelines whenever you like and the board reloads around the one you pick.
Will my reps all see the same board?
Yes, everyone opening the app sees the same pipeline. Each person can filter down to their own deals using the owner filter, so a rep can work their own list while the sales manager keeps the whole board in view.
What does the Prep this deal button actually produce?
It kicks off a short piece of background research that reads what the contact has actually said to you and looks the company up online, then writes a brief covering who they are, what they asked about, what seems to be blocking the deal, and a suggested next step. The brief is saved as a note on the contact and shown in the app, so the rep can read it before calling and it stays on the record afterwards.
Do I need a separate GoHighLevel login for the deals and the messages?
No. Deals, contacts and conversations all come from the same GoHighLevel sub-account you connect, even though the board pulls pipeline data and messaging data through two connections behind the scenes.

Related templates

An appointment show-rate board for your GoHighLevel front desk

See booked, showed and no showed counts by calendar and rep, work today's schedule, and win back the people who did not turn up.

GoHighLevel
App
A revenue and receivables dashboard for GoHighLevel

Pick any date range and see what you collected, what is still owed and how late it is, then chase it without leaving the page.

LeadConnector
GoHighLevel
App
Fill tomorrow's empty GoHighLevel slots before they go to waste

Every weekday afternoon, we spot tomorrow's open appointment times, pick the warm leads worth calling in, and offer each one a personal note.

GoHighLevel
Slack Bot
Agentic Task
Alert your team when GoHighLevel messages go unanswered

Every 30 minutes during business hours, find the customer messages nobody has replied to yet and post one quiet Slack nudge.

GoHighLevel
Slack Bot
Google Sheets
Deterministic Code
Turn new GoHighLevel bookings into rep-ready pre-call briefs

When someone books a call, we research them, pull up what your team already told them, and hand the rep a brief in Slack and on their calendar.

GoHighLevel
Google Calendar
Slack Bot
+1
Agentic Task
Triage new GoHighLevel conversations and draft the reply

Every new inbound message gets sorted by intent, urgency and mood, with a ready-to-send reply waiting in Slack before anyone opens the inbox.

GoHighLevel
Slack Bot
Agentic Task

Stop clicking through the CRM every morning.

Give your sales manager and reps one board that shows what is stuck, what it is worth, and what to say next.