User guide
Projects
A project always belongs to a customer. It brings together tasks, tickets, code, deployments, time, costs and measurements.
The project list
Under Projects you filter by “All”, “Active”, “Blocked”, “Review” and “Paused” and choose between cards and table (project, customer, status, progress, tasks, deploy). The search filters by name and customer.
Creating a project
“Create project” (or “+ New” › Project, key p) asks for:
- Customer (required) and name (at least two characters),
- Address — the slug VentionDesk suggests; umlauts are written out (“mueller”, not “muller”). It then appears in every URL and in the configuration of the task runner, so choose it with care,
- Type (Web, App, API, Internal, Data), status, GitHub repository (as
owner/name), branch, live URL and description.
The header of the project page
- Deploy (owner only) opens “Start deploy” with the project’s targets. A deploy is triggered; whether it succeeds is shown afterwards in the “Deployments” tab. Where a target is still missing something, it says what — for example “Assign hosting”. Hosting providers can only be assigned once they are connected under Operations › Sources.
- Project timer to start time tracking for this project.
- Create invoice (owner only) and Open repo.
- The pencil opens “Edit project”; only the owner may use “Delete project”.
- Change company (owner only) assigns the project to another customer. Tickets, notes, documents and drafts move along. Finalised invoices and sent quotes do not: in that case the change is aborted and names the documents — cancel them and issue them again.
Below are the key figures Progress, Open, Tickets, Budget and Unbilled; a click switches to the matching tab.
The tabs
Overview
Activity (the latest six entries, “More rows” expands the rest), next steps, budget (“Costs and budget”, owner only), links (customer, repository, hosting, ticket intake, email intake) and the project’s ideas.
The Ticket intake row is measured: “connected” with the last report as soon as a ticket has arrived in this project via form, app or server — regardless of whether through the public key or an intake key. “set up” means: a way is open, but nothing has arrived yet. “Set up” (owner only) takes you to Settings › Ticket intake with this project expanded — that is where keys, origins and mailboxes are.
The project’s ideas (owner only) — the idea the project came from, or any other assigned to this project on the Ideas page — appear as a small card with title, status and one line of text. A click on the title opens the idea on the Ideas page for editing.
Tasks
The project’s Kanban board — see Tasks and board.
Tickets
The tickets of this project; a click opens the ticket. You don’t set up the intake channels here but under Settings › Ticket intake.
Git & PRs
Commits, pull requests, branches and check runs from GitHub, as soon as the repository is entered and GitHub is connected. “Sync now” fetches what has not arrived yet; otherwise the sync runs every night, and new events arrive immediately. A commit whose message contains the line VentionDesk-Task: <task ID> is linked to that task. Commits and pull requests each show the first eight rows (open PRs first); “More rows” expands the rest.
Deployments
Table with environment, status, commit, duration, trigger and time, fed from GitHub, Vercel, Render and the other hosting providers — the latest eight runs, “More rows” shows the older ones. In the detail view: “Open build log at the provider” and “Open deployment”.
Roadmap
Phases with title, from and to (“Create phase”); per phase “Mark as done”, “Reopen” and “Edit phase”. An agent key with roadmap:write creates, changes, orders and ticks off phases — it cannot delete any.
Time
“Add time”, hours per week, the distribution and all entries of this project — see Time tracking.
Costs (owner only)
Running costs with name, type, amount per month or per year and term (“Add item”). You set the budget with “Set budget”. Consumption is calculated, not maintained: tracked time times hourly rate.
Analytics
Three sections: Usage and performance (error rate and P95 load time from the monitors of the last seven days; visits and conversion stay empty as long as no source measures them — the question mark on the tile explains why), Errors (with the “Error source” row for assigning) and Monitors (list and form in one card).
- Create monitor: URL, type (“Availability” or “Certificate”) and interval. If a monitor fails twice in a row, a ticket is created; once it is reachable again, the ticket is resolved.
- Errors from Sentry, Bugsnag or Rollbar, as soon as a project at the provider is chosen under “Assign error source”. “Create as task” turns an error into a task. “Resolved” first marks it as resolved at the provider — with the access of your error source — and only then here; the owner and staff members have the button. If the access at the provider is read-only (Sentry without
event:write, Bugsnag without the role Organization Administrator or Project Owner, Rollbar without a project access token with the scope “write”), if the provider no longer knows the error or does not answer within ten seconds, the error stays open and the reason is shown below the list. An agent key witherrors:readreads the errors of its projects; witherrors:writeit marks one as resolved the same way. If the error reappears afterwards, it counts as a regression.