Contact visibility is changing. Agents no longer automatically see every organization contact. Existing whitelist and block choices can hide contacts or profile details. Review each agent’s access before relying on its previous contact view. You can restore View-only access without permitting communication, as described below.
Review existing access
- Open Contacts for the selected agent in the Inkbox Console.
- Review the roster, including contacts hidden from that agent. Email/phone visibility and communication are separate choices.
- Enable Profile before selecting Email, Phone, or Contact memories. For view-only access, enable a channel’s visibility and leave every May contact address unchecked.
- Save permissions and confirm the agent can retrieve the intended contact information. Hiding Profile clears and disables every child permission.
contacts.access.get/update or contacts access get/set; see the request examples. Existing mixed-access groups can reveal all their addresses while permitting communication to only some of them.
Contact profiles can also surface concise, conversation-backed memories, helping agents carry useful context into future interactions. Open a contact in the Inkbox Console to view those memories alongside the relevant conversation history.
Use contacts.access.get/update in the SDKs or contacts access get/set in the CLI to read and change group visibility, individually contactable addresses, Profile, and Memories with admin credentials. visible: true with contactable: [] gives view-only access. Profile is the parent permission: hiding it also hides Email, Phone, and Memories. Hosted voice in YOLO mode retains full organization contact and memory reads; that exception does not widen ordinary API or MCP reads.
The permission management roster includes contacts hidden from the selected agent. Its access settings separate group visibility from communication coverage. Existing standalone rules remain the same per-address communication choices, and changing filter mode preserves explicit choices.
Receiving and sending independently
SDK/CLI0.7.3 adds separate inbound_contactable and outbound_contactable lists (TypeScript and CLI files use inboundContactable and outboundContactable). Legacy contactable reads describe sending only. Legacy list and boolean writes still set both directions.
For example, allow receiving from ada@example.com while denying replies by setting that address in inbound_contactable and using an empty outbound_contactable list. Updating only one list preserves the other side. Do not combine directional lists with legacy contactable in the same group. See verified SDK and CLI examples.
An address allowed in either direction can make its group visible unless explicit visibility or Profile restrictions prevent it. A visible, receive-only address is absent from legacy contactable; seeing it does not authorize a send. Hiding a group blocks both directions. Shared-line iMessage connection setup requires both permissions and does not grant them.
Use response notices to retain explanatory metadata alongside a split-permission result.
Suggested contacts
Inkbox suggests contacts from incoming emails, texts, and calls. Suggestions havereview_status: "unreviewed" and collect memories and conversation history. In the Inkbox Console, open Suggestions next to Saved to save or reject a suggestion.
List suggestions through the API with review_status=unreviewed. Confirm one by setting review_status to confirmed with an admin API key. An agent-scoped profile PATCH does not confirm a suggestion.
With admin credentials, creating a contact whose identifiers match one eligible suggestion saves that suggestion and preserves its ID, memories, history, and existing identifiers. Agent keys cannot use create to change an existing suggestion’s identifiers; those requests return 409. See Create contact.
Creating a contact
The minimum is one non-empty name field:given_name, family_name, company_name, or preferred_name. Use valid email addresses and E.164 phone numbers.
Looking up by channel
When an email or call comes in, you usually want to know who it’s from before deciding how your agent should respond.contacts.lookup runs a reverse search by exact email, email substring, email domain, exact phone, or phone substring. Exactly one filter is required per call.
Importing and exporting vCards
Move contacts between Inkbox and other address books using vCards. Bulk import accepts up to 10 MiB and 2,500 cards per request. The response reportscreated_count, error_count, and individual card results. You can preview an import to check for conflicts first.

