Skip to content

Work intake

Work intake is the set of doors a request can arrive through to become a cycle. There are five, and a request from any other source is refused. “What can create work in this project” always has an exact answer.

Two of the doors connect systems outside hlix and can be closed. The other three are always open, because using one is already a deliberate act within the project.

  • A project in your Workspace.
  • manage access on the project to change its intake settings; owner or admin for the Workspace defaults.
API value What it is Can it be closed?
chat Someone typed into the project’s conversation No
kanban Someone moved a card on the project’s board No
api A direct API call with a Workspace credential No
linear A delegation from a Linear issue Yes
github A GitHub issue Yes

Every door is open by default, and every request admitted through any of them goes through triage before it becomes work.

chat, kanban and api are native: the request starts inside hlix and is scoped by the act of making it. Someone typed into this project’s chat, moved a card on its board, or called the API with a credential for this Workspace.

linear and github are external: another system sends requests to this project, that system can be noisy, and noise becomes spend. You can switch either one off.

The native doors cannot be closed: {"intake": {"chat": false}} answers 400.

Terminal window
curl -sS -X PATCH "$HLIX_BASE_URL/v1/api/projects/$PROJECT_ID" \
-H "x-api-key: $HLIX_API_KEY" \
-H "X-Organization-Id: $HLIX_WORKSPACE_ID" \
-H 'content-type: application/json' \
-d '{"intake":{"linear":false}}'

Expected result: 200 and the updated project, with intake.linear now false.

The intake object is merged onto what is already stored, so sending one key leaves the other unchanged. Omitting intake leaves the settings as they are.

The dashboard shows the same switches under Project → Settings → Work intake, one per closable door, with a line naming the three that are always open.

Each external door is decided by the first of these that has a setting:

  1. The project’s own setting — what you set above.
  2. The Workspace default — an admin’s default for every project.
  3. The catalog’s default — open.

A project setting overrides the Workspace default.

A blocked request does not become a cycle, and the reason names the setting that closed the door:

Linear intake is turned off for this project
Linear intake is turned off for this workspace

Check the setting the message names: a door closed by the Workspace default stays closed even when the project screen shows no change.

An unknown source gets a different refusal:

unknown intake source 'slack' — it is not in the intake source catalog

If work is not arriving, or is arriving when it should not

Section titled “If work is not arriving, or is arriving when it should not”
  • A Linear issue was assigned and nothing happened. Check both settings: the project’s intake.linear and the Workspace default. The refusal reason in the project’s activity names which one.
  • A GitHub issue did not become a cycle. Same check on intake.github. Also confirm the repository is attached to this project — an issue only reaches a project through a repository it owns.
  • {"error":"…"} with 400 on the PATCH. You sent a native door (chat, kanban, api) or a name that is not a door. Unknown keys are refused.
  • You sent board and got a 400. The API value is kanban.
  • You closed one door and the other closed too. intake merges, so check that you did not send both keys.
  • Work is arriving from a source you never enabled. All five doors are open by default; close the ones you do not want.
  • A 403 on the PATCH. Changing intake needs manage access on the project.
  • The door is open and a request still did not become work. It was admitted and then triaged. See Triage for what happens after the door.
If you want to… Read
See what happens after a request is admitted Triage
Connect the Linear workspace Linear
Connect the GitHub account GitHub
Gate what a cycle may do once created Delivery policy