Skip To Main Content
All modules

Personal

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.

Personal Profileprofile

The user's own identity, vitals, preferences, and favorites.

personal_getProfileFindthrough vritto_find

Read the user's full profile: identity, narrative (headline/about/current focus), vitals, preferences, singular favorites, skills, languages, principles, and social links.

No input.

personal_setFavoriteUpdatethrough vritto_update

Record the user's favorite(s), one value per slot (e.g. cuisine → 'Thai', movie → 'Arrival'). Merges into their existing favorites; an empty value clears that slot.

FieldTypeDescription
favorites*list of objectFavorites to record, one entry per slot. Common slots: movie, show, book, music, artist, food, cuisine, drink, place, city, color, sport, team, hobby, game, quote, season.
personal_updateProfileUpdatethrough vritto_update

Update the profile singleton, identity (name, pronouns, date of birth, birthplace, nationalities, gender, home base, name history), narrative (headline/about/current focus), vitals, preferences (dietary/allergies), principles, skills, languages, or social links. Arrays and narrative REPLACE the stored value, read personal_getProfile first and send the full merged set.

Note: Arrays and narrative replace the stored value; read the profile first and send the full merged set.

FieldTypeDescription
identityobject
identity.preferredNamestring
identity.legalNamestring
identity.pronounsstring
identity.genderstring
identity.dateOfBirthstringA date the user gives: "2022", "2022-06", "2022-06-15", or free text like "summer 2020". Year is enough.
identity.birthPlaceobjectA light place reference; label is enough.
identity.nationalitieslist of stringFull replacement list of nationalities.
identity.homeBaseobjectA light place reference; label is enough.
identity.nameHistorylist of objectFull replacement list of prior/other names.
narrativeobjectReplaces the whole narrative, include all three fields you want kept.
narrative.headlinestring
narrative.aboutstring
narrative.currentFocusstring
vitalsobject
vitals.heightstringFree text, e.g. "5'11\"" or '180 cm'.
vitals.weightstring
vitals.bloodTypeone of A+, A-, B+, B-, AB+, AB-, O+, O-, unknown
vitals.starSignone of aries, taurus, gemini, cancer, leo, virgo, libra, scorpio, sagittarius, capricorn, aquarius, pisces
vitals.handednessone of right, left, ambidextrous
vitals.eyeColorstring
preferencesobject
preferences.dietarylist of stringFull replacement list, e.g. ['vegetarian', 'no pork'].
preferences.allergieslist of stringFull replacement list of allergies.
preferences.notesstring
principleslist of objectFull replacement list of the user's values/principles.
skillslist of objectFull replacement list of skills.
languageslist of objectFull replacement list of languages.
socialLinkslist of objectFull replacement list of social links.

Life Timelinelife_timeline

The user's dated history of work, education, homes, and more; read-only.

personal_getEntryFindthrough vritto_find

Read one complete history entry by id, the full summary, highlights, courses, and module links that the timeline projection leaves out. Use it before amending an existing entry.

FieldTypeDescription
collection*one of experiences, education, residences, credentials, projects, relationshipsThe entry's sourceCollection, as returned by personal_queryTimeline.
id*stringEntry ID from personal_queryTimeline.
personal_queryTimelineFindthrough vritto_find

List the user's dated factual history, work, education, residences, credentials, and projects, in one chronological timeline. Also the source of entity IDs for updating an existing entry.

FieldTypeDescription
domainslist of one ofOptional filter to specific domains.

Work Experiencework_experience

A job in the user's history.

personal_addExperienceCreate or Updatethrough vritto_create or vritto_update

Add a job / work experience to the user's history when they mention one. Omit record.id to create; pass an ID from personal_queryTimeline to update.

FieldTypeDescription
record*object
record.idstringExisting entry ID to update (from personal_queryTimeline); omit to create. Fields you leave out keep their stored value.
record.org*stringEmployer / organization.
record.titlestring
record.employmentTypeone of full_time, part_time, self_employed, freelance, contract, internship, apprenticeship, seasonal, volunteer
record.locationobjectA light place reference; label is enough.
record.startstringA date the user gives: "2022", "2022-06", "2022-06-15", or free text like "summer 2020". Year is enough.
record.endstringA date the user gives: "2022", "2022-06", "2022-06-15", or free text like "summer 2020". Year is enough.
record.currentbooleanSet true if they still work here.
record.summarystring
record.highlightslist of stringNotable achievements in this role, one per entry.
record.personIdslist of stringPeople-module person IDs tied to this entry (resolve via people_resolvePerson) so it links into their graph.
record.visibilityone of private, ai, publicWho can see this. private = only the user; ai = also SahAI; public = the user considers it freely shareable (no public surface renders it today).
Example input
{
  "record": {
    "org": "Vritto, Inc.",
    "title": "Founder",
    "employmentType": "self_employed",
    "start": "2026-01",
    "current": true
  }
}

Educationeducation

A school or degree in the user's history.

personal_addEducationCreate or Updatethrough vritto_create or vritto_update

Add a school / degree to the user's education history. Omit record.id to create; pass an ID from personal_queryTimeline to update.

FieldTypeDescription
record*object
record.idstringExisting entry ID to update (from personal_queryTimeline); omit to create. Fields you leave out keep their stored value.
record.institution*string
record.degreestring
record.fieldstring
record.startstringA date the user gives: "2022", "2022-06", "2022-06-15", or free text like "summer 2020". Year is enough.
record.endstringA date the user gives: "2022", "2022-06", "2022-06-15", or free text like "summer 2020". Year is enough.
record.currentboolean
record.gradestringGPA or grade, e.g. '3.8' or 'First Class'.
record.activitiesstringClubs, societies, sports.
record.courseslist of stringNotable courses taken.
record.summarystring
record.academicsTermIdstringOptional link to an Academics module term.
record.personIdslist of stringPeople-module person IDs tied to this entry (resolve via people_resolvePerson) so it links into their graph.
record.visibilityone of private, ai, publicWho can see this. private = only the user; ai = also SahAI; public = the user considers it freely shareable (no public surface renders it today).

Residenceresidence

A place the user has lived.

personal_addResidenceCreate or Updatethrough vritto_create or vritto_update

Add a place the user has lived (home, hometown, study-abroad, work posting). Omit record.id to create; pass an ID from personal_queryTimeline to update.

FieldTypeDescription
record*object
record.idstringExisting entry ID to update (from personal_queryTimeline); omit to create. Fields you leave out keep their stored value.
record.place*objectWhere they lived. Required.
record.kindone of home, hometown, study, work, otherDefaults to home.
record.startstringA date the user gives: "2022", "2022-06", "2022-06-15", or free text like "summer 2020". Year is enough.
record.endstringA date the user gives: "2022", "2022-06", "2022-06-15", or free text like "summer 2020". Year is enough.
record.currentbooleanSet true if they still live here.
record.notestring
record.personIdslist of stringPeople-module person IDs tied to this entry (resolve via people_resolvePerson) so it links into their graph.
record.visibilityone of private, ai, publicWho can see this. private = only the user; ai = also SahAI; public = the user considers it freely shareable (no public surface renders it today).

Credentialcredential

A certification, license, or award.

personal_addCredentialCreate or Updatethrough vritto_create or vritto_update

Add a credential: a certification, license, or award the user mentions. Omit record.id to create; pass an ID from personal_queryTimeline to update.

FieldTypeDescription
record*object
record.idstringExisting entry ID to update (from personal_queryTimeline); omit to create. Fields you leave out keep their stored value.
record.name*stringCredential name, e.g. 'AWS Solutions Architect'.
record.issuerstring
record.issuedstringA date the user gives: "2022", "2022-06", "2022-06-15", or free text like "summer 2020". Year is enough.
record.expiresstringA date the user gives: "2022", "2022-06", "2022-06-15", or free text like "summer 2020". Year is enough.
record.credentialIdstringThe issuer's credential/license number.
record.urlstringVerification or badge URL.
record.personIdslist of stringPeople-module person IDs tied to this entry (resolve via people_resolvePerson) so it links into their graph.
record.visibilityone of private, ai, publicWho can see this. private = only the user; ai = also SahAI; public = the user considers it freely shareable (no public surface renders it today).

Personal Projectpersonal_project

A side project or creative work.

personal_addProjectCreate or Updatethrough vritto_create or vritto_update

Add a personal project (side project, startup, creative work) to the user's history. Omit record.id to create; pass an ID from personal_queryTimeline to update.

FieldTypeDescription
record*object
record.idstringExisting entry ID to update (from personal_queryTimeline); omit to create. Fields you leave out keep their stored value.
record.name*string
record.descriptionstring
record.rolestringTheir role, e.g. 'founder', 'designer'.
record.startstringA date the user gives: "2022", "2022-06", "2022-06-15", or free text like "summer 2020". Year is enough.
record.endstringA date the user gives: "2022", "2022-06", "2022-06-15", or free text like "summer 2020". Year is enough.
record.urlstring
record.guideIdstringOptional link to a Guides module guide.
record.highlightslist of stringNotable outcomes, one per entry.
record.personIdslist of stringPeople-module person IDs tied to this entry (resolve via people_resolvePerson) so it links into their graph.
record.visibilityone of private, ai, publicWho can see this. private = only the user; ai = also SahAI; public = the user considers it freely shareable (no public surface renders it today).

Relationship Historyrelationship_history

A partner, family, or close relationship in the user's history.

personal_addRelationshipCreate or Updatethrough vritto_create or vritto_update

Add a close relationship or partner history the user mentions (partner, spouse, ex, family, close friend, mentor). Omit record.id to create.

FieldTypeDescription
record*object
record.idstringExisting entry ID to update (from personal_queryTimeline); omit to create. Fields you leave out keep their stored value.
record.name*stringThe person's name.
record.kindone of partner, spouse, engaged, ex_partner, situationship, family, friend, mentor, other
record.startstringA date the user gives: "2022", "2022-06", "2022-06-15", or free text like "summer 2020". Year is enough.
record.endstringA date the user gives: "2022", "2022-06", "2022-06-15", or free text like "summer 2020". Year is enough.
record.currentbooleanSet true if it's ongoing.
record.notestring
record.personIdstringThe People-module Person record for this person (resolve via people_resolvePerson), set it whenever the person exists there.
record.personIdslist of stringPeople-module person IDs tied to this entry (resolve via people_resolvePerson) so it links into their graph.
record.visibilityone of private, ai, publicWho can see this. private = only the user; ai = also SahAI; public = the user considers it freely shareable (no public surface renders it today).