Skip To Main Content
All modules

Goals

Fields marked * are required. Updates keep every field they are not given. An AI app can ask vritto_describe for the same details, filtered to what its connection may use.

Goalgoal

A goal with progress, milestones, check-ins, and links.

goals_findFindthrough vritto_find

Read Goals: one goal by id, or goals filtered by status, text, priority, horizon, area, tag, owner, linked record or target date; type 'measurement' lists what Vritto can measure a goal from. Compact rows (health, progress, measuredBy) unless detail is 'full'. Cancelled goals are excluded.

Note: type 'measurement' lists what other modules can measure a goal by; use a listed moduleId and metricId as a goal's measure.

FieldTypeDescription
typeone of goal, measurement'goal' (default) or 'measurement': each module's metrics (id, label, shape, cadences, aims, an example), read before adding a measured goal.
idstringReturn just this goal, every field (check-ins, steps, the full why).
querystringFree-text search over titles, whys, tags, and check-ins.
statusone of planned, active, paused, achieved, missed, cancelledFilter by status.
priorityone of low, normal, high, urgentFilter by priority.
horizonone of weekly, monthly, quarterly, yearly, customFilter by horizon.
areastringFilter by area.
tagstringFilter by tag.
ownerPersonIdstringOnly goals owned by this person ID.
linkedModuleIdstringOnly goals linked to records of this module.
linkedEntityIdstringOnly goals linked to this record ID (combine with linkedModuleId).
fromstringOnly goals whose target date is on or after this date.
tostringOnly goals whose target date is on or before this date. ALWAYS pass from/to when the question concerns a period.
includeArchivedbooleanInclude cancelled goals; default false.
detailone of summary, fullRow shape: "summary" (default, compact rows with health and the measured value) or "full" (every field incl. check-ins, milestones, and habit log).
limitintegerMax records to return (default 50 in summary mode).
goalIdstringOlder name for id.
Example input
{
  "status": "active"
}
goals_addCreatethrough vritto_create

Add a goal. Only goal.title is required. Measured example: { title: "Read 24 books this year", kind: "target", measure: { moduleId: "books", metricId: "books_finished" }, targetValue: 24, startDate: "2026-01-01", targetDate: "2026-12-31" }. By-hand example: { title: "Write 50,000 words", kind: "target", startValue: 0, targetValue: 50000, unit: "words" }.

FieldTypeDescription
goal*objectGoal fields; only title is required.
goal.title*stringGoal title.
goal.whystringReason this goal matters.
goal.statusone of planned, active, paused, achieved, missed, cancelledGoal status; defaults to "active".
goal.priorityone of low, normal, high, urgentPriority; defaults to "normal".
goal.kindone of objective, key_result, habit, target"target" (reach or stay under a number), "habit" (every day, week or month), or "objective" (steps or done).
goal.areastringArea or domain.
goal.startDatestringStart date YYYY-MM-DD.
goal.targetDatestringTarget date YYYY-MM-DD.
goal.measureobject
goal.aimone of reach, limit"reach" (default) or "limit" (stay at or under the target, e.g. spending).
goal.metricTypeone of percent, number, currency, booleanFor a number the person updates: "number" (default), "currency" (unit = ISO code), or "percent".
goal.startValuenumberStarting value; for a measured level it defaults to today's reading.
goal.currentValuenumberCurrent value of a number the person updates.
goal.targetValuenumberTarget; for a habit, the target per period (4 workouts a week).
goal.unitstringUnit for a number the person updates, e.g. "kg", "books", or an ISO currency code.
goal.habitCadenceone of daily, weekly, monthlyPeriod of a "habit" goal; defaults to "daily".
goal.confidenceintegerConfidence from 0 to 100; defaults to 70.
goal.ownerPersonIdslist of stringOwner person IDs.
goal.tagslist of stringTags.
goal.linkedRefslist of objectRelated records in other modules (they never move progress). Prefer goals_change ref / unlink for one change.
goal.milestoneslist of objectSteps, or checkpoints with a targetValue.
goal.favoritebooleanMark the goal as a favorite.
goal.idempotencyKeystringStable dedupe key so a retried create does not duplicate the goal.
Example input
{
  "goal": {
    "title": "Run a half marathon",
    "kind": "target",
    "horizon": "quarterly",
    "targetDate": "2026-12-06",
    "metricType": "number",
    "startValue": 0,
    "targetValue": 21.1,
    "unit": "km"
  }
}
goals_changeUpdatethrough vritto_update

Change one goal by id: patch for fields, status (e.g. "achieved" when the person confirms), checkIn (note, confidence, progressValue for a number tracked by hand), habitDay to tick a tapped habit, milestoneId with status to tick a step, ref or unlink for a related record. Progress and health are recomputed by the server. Resolve the id with goals_find first.

Note: One goal by id: patch for fields; status, checkIn, habitDay, milestoneId with status, ref and unlink are its named changes. Progress and health are recomputed.

FieldTypeDescription
idstringThe goal to change. Required.
patchobjectGoal fields to change; omitted fields are kept.
patch.titlestringGoal title.
patch.whystringReason this goal matters.
patch.statusone of planned, active, paused, achieved, missed, cancelledGoal status; defaults to "active".
patch.priorityone of low, normal, high, urgentPriority; defaults to "normal".
patch.kindone of objective, key_result, habit, target"target" (reach or stay under a number), "habit" (every day, week or month), or "objective" (steps or done).
patch.areastringArea or domain.
patch.startDatestringStart date YYYY-MM-DD.
patch.targetDatestringTarget date YYYY-MM-DD.
patch.measureobject
patch.aimone of reach, limit"reach" (default) or "limit" (stay at or under the target, e.g. spending).
patch.metricTypeone of percent, number, currency, booleanFor a number the person updates: "number" (default), "currency" (unit = ISO code), or "percent".
patch.startValuenumberStarting value; for a measured level it defaults to today's reading.
patch.currentValuenumberCurrent value of a number the person updates.
patch.targetValuenumberTarget; for a habit, the target per period (4 workouts a week).
patch.unitstringUnit for a number the person updates, e.g. "kg", "books", or an ISO currency code.
patch.habitCadenceone of daily, weekly, monthlyPeriod of a "habit" goal; defaults to "daily".
patch.confidenceintegerConfidence from 0 to 100; defaults to 70.
patch.ownerPersonIdslist of stringOwner person IDs.
patch.tagslist of stringTags.
patch.linkedRefslist of objectRelated records in other modules (they never move progress). Prefer goals_change ref / unlink for one change.
patch.milestoneslist of objectSteps, or checkpoints with a targetValue.
patch.favoritebooleanMark the goal as a favorite.
patch.idempotencyKeystringStable dedupe key so a retried create does not duplicate the goal.
statusone of planned, active, paused, achieved, missed, cancelled, todo, in_progress, doneThe goal's new status ('achieved' when the person confirms). With milestoneId, that step's status: todo, in_progress, done or cancelled.
milestoneIdstringA step's id from the goal's milestones; status then ticks or reopens that step.
checkInobjectGoal check-in fields.
checkIn.datestringCheck-in date YYYY-MM-DD; defaults to today.
checkIn.summarystringProgress summary: what happened since the last check-in.
checkIn.confidenceintegerConfidence from 0 to 100; defaults to 70.
checkIn.progressValuenumberNew value of a number the person updates by hand; ignored for goals Vritto measures.
checkIn.nextStepstringNext concrete step.
checkIn.blockerslist of stringBlockers.
habitDaystringToggle a tapped habit's completion for this day YYYY-MM-DD (today's date for 'I did it today'); the same day again undoes it. Not for habits Vritto measures.
refobjectRelate a record in another module (deduped by moduleId + entityId); it never moves progress.
ref.moduleId*stringModule ID of the related record.
ref.entityId*stringRelated record ID.
ref.labelstringHuman-readable label.
ref.relationone of supports, blocks, reference"supports" (moves this goal, default), "blocks", or "reference" (context).
unlinkobjectRemove one related record.
unlink.moduleId*stringModule ID of the link to remove.
unlink.entityId*stringEntity ID of the link to remove.
expectedRevisionintegerOptional revision guard; the write is rejected if the stored revision differs.
goalIdstringOlder name for id.
goalobjectOlder whole-goal form: the goal with its id; absent fields keep their stored values.
goal.id*string
datestringOlder form of habitDay.
moduleIdstringOlder form of unlink, with entityId.
entityIdstringOlder form of unlink, with moduleId.
Example input
{
  "id": "goal_half",
  "patch": {
    "targetDate": "2027-03-31",
    "confidence": 70
  }
}
goals_removeDeletethrough vritto_delete

Delete one goal (marks it cancelled). Only for explicit deletion requests; a goal that is over is a goals_change status. Resolve the id with goals_find first.

FieldTypeDescription
idstringThe goal to remove.
expectedRevisionintegerOptional revision guard; the write is rejected if the stored revision differs.
goalIdstringOlder name for id.