docs: mark card phone/mobile capture shipped (v0.1.0:98)
This commit is contained in:
@@ -99,17 +99,17 @@ existing flow (parse → match → disambiguate → approve → `log-communicati
|
|||||||
in the audit log, threaded via the proposal's `_source` control key (`handle_intake(…, source=…)`
|
in the audit log, threaded via the proposal's `_source` control key (`handle_intake(…, source=…)`
|
||||||
→ `crm_client.build_commit_payload`, which defaults to `"matrix_intake"` when absent).
|
→ `crm_client.build_commit_payload`, which defaults to `"matrix_intake"` when absent).
|
||||||
- **Fields captured** (`parse._FIELDS`): investor, contact, email, title, **city**, **linkedin_url**,
|
- **Fields captured** (`parse._FIELDS`): investor, contact, email, title, **city**, **linkedin_url**,
|
||||||
note. `city` is a plain extracted field (low-harm if wrong; the human sees it); `linkedin_url`
|
**phone**, **mobile**, note. `city` is a plain extracted field (low-harm if wrong; the human sees
|
||||||
follows the **email-integrity rule** — kept only if it literally appears in the source/instruction,
|
it). `linkedin_url`, `phone`, and `mobile` follow the **email-integrity rule** — kept only if they
|
||||||
never minted (a wrong profile URL points at the wrong person). Both ride to the contact via the
|
literally appear in the source/instruction, never minted (for phone/mobile the check is digit-run
|
||||||
existing `log-communication` upsert (`_upsert_contact_from_fundraising` already honors them; `city`
|
membership, ≥7 digits, in the source). Mapping (from the labeled transcription): an office/main/
|
||||||
also syncs to the grid contact pill, `linkedin_url` lands on the canonical contact record).
|
direct number → `phone`, a cell/mobile → `mobile`, a **fax is skipped**. All ride to the contact
|
||||||
- **Phone is NOT captured yet (pending a server change).** The transcription reads the phone, but the
|
via the existing `log-communication` upsert (`_upsert_contact_from_fundraising`); `city` also syncs
|
||||||
bot's write path (`_upsert_contact_from_fundraising`) doesn't accept a `contact.phone` today, so
|
to the grid contact pill, the rest land on the canonical contact record (contact-level, not pills).
|
||||||
phone is deliberately left off the card to avoid showing a field that won't persist. Enabling it is
|
- **Phone/mobile shipped in v0.1.0:98 (live 2026-06-20).** The server half — `_upsert_contact_from_
|
||||||
a small additive server change (read `contact.phone` → write `contacts.phone`; contact-level, not a
|
fundraising` accepting `contact.phone` + `contact.mobile` — is in the s9pk; the bot's transcription
|
||||||
grid pill field) that ships in an **s9pk** (version bump + install), paired with adding `phone` to
|
(Phone/Mobile/Fax labels), extractor, and card shipped on the Spark in the same deploy, so phone
|
||||||
the bot's extractor/card/payload in the same deploy. Tracked agreed 2026-06-20.
|
never showed on a card before the box could store it.
|
||||||
- **UX:** the bot acks `📇 Reading the card…` before the (slower) vision call; an unreadable image
|
- **UX:** the bot acks `📇 Reading the card…` before the (slower) vision call; an unreadable image
|
||||||
(model replies `NONE`, or transcription < 5 chars) gets a "try a clearer, well-lit photo" reply
|
(model replies `NONE`, or transcription < 5 chars) gets a "try a clearer, well-lit photo" reply
|
||||||
instead of a garbage proposal.
|
instead of a garbage proposal.
|
||||||
|
|||||||
Reference in New Issue
Block a user