How someone likes to be reached
A few lines on a person's file: how they like to be reached and talked to, and how things made for them should look.
The people below are made up to show the shape. Murmurations has no field for this, so it is the system's own, added in person contract 0.2.0. The fuller story stays in your own profile of them.
The picture
Preferences, as a table
One row is one person. Every part is optional; a person with none on file has no contact_preferences at all.
| id | reach_by | how_to_talk | rendering | from |
|---|---|---|---|---|
per_robin-park | email text, for anything same day | Direct. Lead with the ask; skip the warm-up. | Short pages, large type, one link at the end. | notes/people/Robin Park.md |
per_ana-ruiz | Direct. Lead with the ask. | notes/people/Ana Ruiz.md | ||
per_jordan-ruiz | text | Warm. Ask how the garden is going first. | One frame with pictures, no long text. | notes/people/Jordan Ruiz.md |
reach_by is in order: the first way is the one they like most.
What each field holds
- contact_preferences
- On a person file. How this person likes to be reached and talked to, and how things made for them should look.
- reach_by
- Ways to reach them, most preferred first, in your words.
- how_to_talk
- How they like to be talked to, from your profile of them.
- rendering
- How a page or frame made for them should look or read.
- from
- Where these preferences were read from.
An organization file has no contact_preferences.
- preferences.mjs fill
- Fills it in from your own profile of each person: the
.mdfile named in theirelsewherepath. It reads three sections: "How to Talk to Them", "Rendering Preferences" and "How to Reach Them". It never overwrites a field already on record. - preferences.mjs for "<who>"
- Prints one person's preferences, by name, email or id, for an agent about to make something for them. The share skill runs it before it makes something for a named person.
What the file looks like inside
JSON, a plain text format. This is Robin's file, records/per_robin-park/person.json.
{
"id": "per_robin-park",
"linked_schemas": ["people_schema-v0.1.0", "contacts_person_addon-v0.2.0"],
"name": "Robin Park",
"email": ["robin@example.org"],
"telephone": ["+1 713 555 0188"],
"visibility": ["local"],
"filed_at": "2026-10-09T10:20:00-05:00",
"filed_by": "intake:vcf",
"contact_preferences": {
"reach_by": ["email", "text, for anything same day"],
"how_to_talk": "Direct. Lead with the ask; skip the warm-up.",
"rendering": "Short pages, large type, one link at the end.",
"from": "notes/people/Robin Park.md"
}
}
How it connects
How sure we are →
Getting started →
What the manifest is →
