solarOSsolarOS Docs
GuidesCustomers & Properties

A Contact (a deliberately shallow Customer type: just email and first name, no property required, per the glossary) can be promoted into a full Customer or Company record. The Promote button on the customer detail page (apps/web/src/app/(authenticated)/customers/[id]/customer-detail.tsx) opens PromoteCustomerDialog (apps/web/src/components/customers/promote-customer-dialog.tsx), which posts to POST /api/customers/[id]/promote (apps/web/src/app/api/customers/[id]/promote/promote.ts) with a targetType of CUSTOMER or COMPANY and, for a Customer target, a property address.

TODO(owner, likely product): write the full guide from promote-customer-dialog.tsx and promote.ts, covering what's irreversible about promotion, what happens to existing relationships (Opportunities, Leads) tied to the Contact record, and whether this is the same flow project memory tracks as "contact-promote-inline" (an inline promote redesign, not yet built as of this writing) or a separate, already-shipped path.

Was this page helpful?