VEYNDO
Handbook
docs/app-tutorials/customer-preferences.mdView source ↗

English source · 3 min

Workshop 3 — Customer preferences in the existing editor

Create a private customer section with merchant notes and a Standard/Priority choice. The app stores these fields in its own model and links them to an owned customer. It does not make private customer data public or duplicate the CRM.

Workshop setup and release steps · Installable customer example

Current data model editor; define the customer relationship and fields described below

Current shared workspace, captured 2 November 2026. The linked earlier worked examples preserve their original field definitions and outcomes.

1. Configure the assistant

Open Developers → New app → Admin app. Enter Customer preferences, choose a unique technical ID such as tutorial_customer, and select Customer · additional fields. Leave Expose action to MCP / agents disabled. Create the editable draft; resolve the replacement prompt only after saving earlier work.

Earlier worked example: Customer placement and explicit MCP choice in the guided assistant

2. Keep the customer relation; edit labels and choices

In Data models, the assistant supplies required indexed customer_id with Core object → customer, translated title and body, plus segment choices. Keep Allow shoppers to read this model off. Rename the displayed labels to Preference subject, Merchant notes and Service level.

Earlier worked example: Customer-bound fields in the real draft model

For segment, retain technical values standard / priority; edit their displayed labels through Content language. Changing a caption is not changing stored choice identity. An unknown choice is rejected by the native validator.

Earlier worked example: One language at a time for choice captions; stable technical values

An optional new field can be added with Add field. For example, add a boolean contact_requested with a translated label. This records a merchant workflow request; it is not legal marketing consent and must not replace the existing privacy/consent owner.

3. Place the form and set rights

In Design, retain the customer context on table/form blocks. A Selection control can bind to segment in that same form. In Connections, inspect the Customer · additional fields surface and its actions. Reading requires customers.read; saving requires customers.write. Keep public, MCP and AI access separate and off unless the intended capability is reviewed.

The generated form already uses the native write action. Additional independent inputs join it only when the model and current record resolve to one form. Do not turn customer IDs into freely editable text controls.

4. Test the actual customer placement

Save/install the version in staging with two synthetic customers. Open customer A, add a subject/note, select Priority, save and reopen. Customer B must not show A's app record. Try a read-only teammate and verify saving is denied. An anonymous storefront request must not reveal either customer's records.

Switch to German/Spanish content labels and check main-language fallback. Release the app package separately from test records, then open Customers → customer with the intended live team role.

Ask the coding agent

Improve this private Customer preferences app. Add an optional contact_requested
boolean and a translated display label. Bind it to the existing customer form;
keep customer_id, existing choices, stored field types and action rights. Use
customers.read and customers.write. Do not expose personal records to the
Storefront API, MCP or AI automatically. Do not treat this field as marketing
consent. Keep implementation and resources in the app's own directory.

Ownership and regression evidence

The canonical assistant produces a normal Manifest. The repository keeps an installable result under extensions/apps/assistant-examples/customer.json. app_assistants tests real customer/order fields, scope checks, private reads, MCP opt-out and foreign-reference rejection. The screenshots are actual draft setup/model views, not evidence that every merchant has installed the example.

Next: Scheduled review · All five workshops