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.
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?
What counts as a stale deal?
Can I show more than one pipeline at a time?
Will my reps all see the same board?
What does the Prep this deal button actually produce?
Do I need a separate GoHighLevel login for the deals and the messages?
Related templates
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.
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.
Every weekday afternoon, we spot tomorrow's open appointment times, pick the warm leads worth calling in, and offer each one a personal note.
Every 30 minutes during business hours, find the customer messages nobody has replied to yet and post one quiet Slack nudge.
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.
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.
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.