One pipeline per kind of contact

Most CRMs give you one status column and one set of words to put in it, which works until the same workspace is running a sales pipeline, a hiring funnel and a support queue through the same list. Viably keeps the states fixed and changes the language over them. You tell it what each source you capture through actually is, and the status on a candidate starts reading Applied and Reviewing while the one on a lead keeps reading Open and Working. This guide is the reference for those words: what each stream is called, what its five states are, and everywhere in the product they turn up.
Trigger
Acquisition panel
Lands in
The Contacts dashboard
Setup
2 min
Needs
Nothing else

A stream is a source you have named

Viably lists the sources it has genuinely seen, so classifying is a decision about traffic you already have rather than a taxonomy somebody has to invent up front.

One state machine

Five states, stored once, the same in every stream: open, working, won, lost and archived. Every funnel, facet, count and shortcut in Viably reads those, which is why a workspace running sales and hiring through one inbox still gets one set of numbers rather than two that cannot be added up.

Five vocabularies over it

What those states are called is not the same conversation twice. A candidate is reviewed and passed on, a support enquiry is responded to and resolved, a signup activates or goes quiet. A single set of words for all of them is why a status column ends up dead in most CRMs.

Classified once, not per contact

You classify a source, not a person. A careers form is a hiring stream from the day somebody says so, and every contact it has ever produced reads in hiring words immediately, including the ones captured last year.

Some relationships have no stages

A workshop ticket closes on arrival. That stream is marked one-off, its contacts show Purchased instead of a status, and nobody is asked to move them through a pipeline that does not exist for them.

The source, not the endpoint

A stream is keyed on source, the field your payload names the form with, because one endpoint frequently carries two pipelines. A single relay URL taking both your contact form and your careers form is two streams, and only the source can tell them apart.

The five vocabularies

The same five states, in each stream's own words. This is the whole reference, and it is generated from the product, so what you read here is what your workspace will show you.

Archived is the same everywhere

Every vocabulary keeps the last state as Archived, because it is the one state that is not about the relationship at all. It means out of play and off the queue, and a stream-specific word for that would be a synonym rather than a distinction.

Which words a person is shown in

Resolved across every stream a contact belongs to, most recent first, and never from the source that first captured them.

  • A stream somebody chose by hand beats all of it. Where a member has moved one contact to another stream, that reading of what the person actually wrote outranks anything the source could imply.
  • A stream with stages beats one without. Somebody who bought a workshop ticket and later became a customer reads in the customer stream's words, and keeps a status control rather than losing it at exactly the point it starts mattering.
  • Among streams that have stages, the most recent wins. Whether a product signup outranks a job applicant has no answer in the abstract, so the contact's own history answers it.
  • An unclassified source reads as Sales, which is the vocabulary Viably ships with. Nothing breaks while a workspace has not got round to classifying, and classifying later rewrites the labels everywhere at once.
  • It is read when the page renders rather than written onto the contact, so re-classifying a source takes effect on the next load and never needs a backfill.
When one form carries two kinds of traffic

Classifying a source moves everybody who ever came down it, which is the wrong lever for the single applicant who used the contact form because it was the only form on the site. Open their record and change the stream beside their status, or use “Move to another stream” from the inbox. It files that person alone and leaves the source, and everybody else on it, exactly as they were. Moving them back to “Follow the source” hands them to whatever their source says, now and in future.

Where these words turn up

Every surface that names a state reads the same table, so none of them can disagree about what your pipeline calls something.

  • The status on the contact row and on the record, and the facet you filter the queue by.
  • The s shortcut, which advances the row under the cursor one stage and names the stage it moved to.
  • The acquisition panel, which measures a stream by revenue or by pipeline depending on which question that kind is actually asked.
  • The inbox, where the button on somebody waiting reads Move to Reviewing on a candidate and Move to Responded on a support enquiry, and where declining somebody uses that stream's own word for a closed relationship: Passed, Closed, Lost or Dormant.
Why a careers form is not measured in money

Both bars are true of every stream and only one of them is the question. Five applicants drawn on the revenue axis report that nobody paid, which is a fact about a hire that means nothing; the same five drawn on status report that nobody has screened them, which is the thing to do something about this afternoon.

Common questions

What teams ask once they are running more than one pipeline through the same contact list.

What is a stream in Viably?

A stream is one source you capture through: a contact form, a careers form, a support inbox, a signup webhook. Viably lists every source it has actually seen and lets an admin classify each one as sales, hiring, support, product or one-off. That classification is the only thing that decides which words a contact's status is shown in.

Do the statuses themselves change per stream?

No, and that is the point. There are five states underneath, always, and only the words over them change. A candidate who has been passed on and a lead that was lost are the same stored state, so one funnel chart, one facet and one keyboard shortcut work across every pipeline you run, and nothing has to be configured per stream to make reporting line up.

What if somebody belongs to two streams?

The vocabulary is resolved across every stream they belong to, most recent first, and a stream with a lifecycle always beats one that closes on arrival. Somebody who bought a workshop ticket and later became a paying customer reads in the sales words, not the ticket's. This is read at render time rather than stored, so re-classifying a source takes effect on the next page load with no backfill.

Why does the one-off stream have no statuses?

Because the relationship closes when they buy. A workshop ticket is bought and then it is simply true, and a state machine over it would ask your team to move people through stages that mean nothing. Those contacts show Purchased instead of a status, and their acquisition panel reports revenue rather than a pipeline.

Where do these words actually show up?

On the contact row and the record, on the status facet you filter by, on the s keyboard shortcut that advances somebody a stage, in the acquisition panel's legend, and in the inbox, where the button on a waiting person reads Move to Reviewing for a candidate and Move to Responded for a support enquiry. Declining somebody in the inbox uses the same stream's word for a closed relationship.

Can I add my own stream kind or rename a stage?

Not today. The five kinds are built in and each one is a vocabulary somebody wrote and tested, which is what keeps the reporting comparable across workspaces and the labels free of half-finished pipelines. If a stream you run does not read correctly in any of the five, that is worth telling us, because the fix is a new vocabulary rather than a settings page.

Classify what you already capture

Nothing here needs setting up in advance. Capture events, then tell Viably what the sources it has seen actually are.

Open Contacts, find the acquisition panel, and classify each source it lists. Every contact that source has ever produced picks up the new vocabulary on the next page load.

Add Viably to Slack
Then send it something to classify

The Webhook Relay guide covers the source field these streams are keyed on. The Lightweight CRM guide is the queue these statuses are read in, and the lifetime view is the record behind any one of them.