Skip to content
ChatfuelSDK

Deals

Your pipeline is the contacts you already have — six stages, a board that drags with a finger, a table you can filter on any field the bot stores, and a forecast where every money figure says how much of the pipeline it covered.

A Kanban board over the people you already talk to

Drag a customer from New to Won and the record your inbox is answering moves with them. The table and the forecast are that same board, counted two other ways.

A board of six columns

New, Sorting, Ready, Working on, Won, Lost — every customer with a stage, sitting in the column they belong to. Each column carries its own total, so you can see where the pipeline is stacked up.

The same deals as a table

Search by name or phone, narrow to the stages you want, add conditions on any attribute the bot carries. Fourteen columns are available and eight are on when it opens.

A forecast over a window

Deals per stage over 7, 30 or 90 days, a quarter, all time or a range you pick, with win rate, pipeline and weighted pipeline. Every money figure says how much of the pipeline it counted.

A panel beside the board

Amount, currency, close date, company, probability, source and lost reason, plus the name, the note and the owner. A drawer on a narrow screen, a second column on a wide one.

Moves as your team moves it

A card someone drags in another tab lands in yours, and an edit made in the inbox shows up in the panel you have open. Nobody works a stale board.

Shows what has gone quiet

A bar on the card counts the days since the deal last moved, and it turns at two days in New, three in Sorting, five in Ready and fourteen in Working on. A closed deal never ages.

The board works on a phone

Drag a card on a laptop, a tablet or a phone — the gesture is the same everywhere, and so is the board. Pick up several cards and the whole batch changes stage in one drag.

A wrong drop costs a second

One press puts the cards back where they came from, for a full minute after the move. A team moves faster on a board where a mistake is not a support ticket.

A pipeline number you can defend

Every total says how many deals went into it, so nobody walks into a meeting with a figure that quietly left half the pipeline out. Deals in different currencies are kept apart rather than added into a number that means nothing.

A board a rep can live in

Arrows walk the cards, space picks them up, 1 to 6 sends the selection to a stage, and ⌘K opens the palette from anywhere. A morning of pipeline work never has to reach for the mouse.

Drag it, work it, count it

Three views over one pipeline, and three different server queries behind them. Each can answer something the others cannot, so the module routes to the one that fits and says when an answer was narrowed here rather than by the server.

01

Drag it

Six columns, newest move first, and moving a card is one mutation. A selection moves together — one request per card, because there is no bulk mutation in this API — and a card the server refuses flashes and comes back alone while the rest stay.

02

Work it in the table

Search by name or phone, narrow to a set of stages, add conditions on any attribute, and sort by any of the deal fields. Stage, owner, unread and last message do not sort: the server orders by an attribute name, and none of those has one.

03

Count it in the forecast

Pick a window and read deals per stage, win rate, pipeline and weighted pipeline, then export what you loaded as CSV. Reading the board needs People · View; moving a card and editing a field need People · Edit.

Six stages

The same six run through the whole module — the columns on the board, the filter on the table, the rows in the forecast. The first four are your open pipeline; Won and Lost never age, because a closed deal sitting still is not rot.

NameWhat it means on the boardGoes stale after
NewArrived and not looked at yet. Where the board expects the least patience.2 days
SortingBeing qualified — is there anything here worth working?3 days
ReadyQualified and waiting for somebody to pick it up.5 days
Working onActively being worked, and the longest leash on the board.14 days
WonClosed, and counted in the win rate for whatever window is on screen.
LostClosed the other way, and the one stage with a reason field of its own.

Seven fields on a deal

None of them is a deal field in the API — each is a custom attribute on the contact, and writing a value is what creates it. Two are on the card and get summed into the column total; the other five live in the panel and in the table, and every name is one line in one file if you want it called something else.

NameWhat it holdsWhere it shows
AmountA plain decimal, no symbol and no thousands separator — 1500.50.Card, panel and table
Close dateA millisecond timestamp, which is the form the server can read back as a date.Card, panel and table
CurrencyAn ISO-4217 code in upper case. A deal with an amount and no currency of its own reads as the module’s default.Panel and table
CompanyFree text — whatever the deal belongs to.Panel and table
ProbabilityA bare integer per cent, and the only input to the weighted pipeline besides the amount.Panel and table
SourceFree text — where the deal came from.Panel and table
Lost reasonFree text — why it closed the way it did.Panel and table

The board without a pointer

Reach every card, every selection and every stage from the keyboard. The same list is in the app behind ?, and one source feeds both the sheet and the handlers.

NameWhat it does
Global
⌘KOpens the command palette, and it is the one binding that still works inside a text field.
/Jumps to the search box.
⌘ZUndoes the last stage change, for a minute after it.
RRefreshes the columns and their totals.
?Opens the same list inside the app.
G then B / T / FBoard, table or forecast.
Move around
ArrowsMove between cards. Left and right hold your place in the column and skip a collapsed one.
Home / EndThe first or the last card in the column.
EnterOpens the deal beside the board.
Select
SpaceSelects the focused card.
Shift + arrowsExtends the selection up or down the column.
⌘ASelects the column, not the board — six columns of twenty is not a selection anyone wants.
EscClears the selection.
Change stage
1 to 6Moves the card to that stage, or the whole selection when the focused card is part of it.
[ and ]Steps one stage back or forward, and does not wrap: New and Lost are the ends.

What it holds

The API documents none of these. They are the module’s own ceilings, each picked against something the API actually does — there is no bulk mutation, so a drag of twenty-five cards is twenty-five requests.

Cards in a column page20
Pages the board loads before a button3
Rows in a table page25
Cards in one drag25
Undo window60 seconds
Moves you can undo1
Saved views50
Saved view name60 characters
Search kept in a saved view200 characters
Conditions in a saved filter20
Values on a condition20

FAQs

Not a question this API can answer. It keeps one timestamp per deal and it is the last transition, not the moment a deal entered a stage — which also rules out funnel conversion, sales velocity, average days to close and any cohort. The forecast names all four in plain words rather than showing greyed-out controls that would imply they are on the way.

One command, and your pipeline is in your app

npx @chatfuel/wizard