pending quote in a target company from a source inspection, carrying property and contact data without cross-company ID leakage.createQuoteWithCharges in attik-backend/src/util/functions/quote/createQuoteWithCharges.ts with _companyId on quoteSchema.copyActionFlowToCompany in attik-backend/src/util/functions/actionFlows/copyActionFlowToCompany.ts, endpoints in attik-backend/src/routes/flow.ts) is the closest pattern for targetCompanyId + allowed-company checks.instance-management or inspection/:id/...) accepting source inspection id + targetCompanyId; validate user membership in both companies and new permission.people, charges as reference); build quote payload for target _companyId.status: 'pending' via createQuoteWithCharges (or equivalent transaction used by attik-backend/src/routes/quote.ts).findSpectoraContactMatches in attik-backend/src/util/functions/spectora/findSpectoraContactMatches.ts); map people[] with destination _contactId / _roleId only.property._sourceInspectionId, _sourceCompanyId, created-by metadata for audit.wcLeadId, _hubspotDealId, _finalInspectionId, source charge/service Mongo IDs, source inspector IDs.attik-backend/src/util/functions/quote/createQuoteWithCharges.tsattik-backend/src/routes/quote.tsattik-backend/src/models/quoteSchema.tsattik-backend/src/routes/protectedRouteBarrel.ts (/instance-management)attik-backend/src/routes/flow.ts (cross-company copy guards)Please authenticate to join the conversation.
Planned
Main App
4 days ago
Linear
Get notified by email when there are changes.
Planned
Main App
4 days ago
Linear
Get notified by email when there are changes.