authenticated
crm

Create Stop Request

Record a stop the office was told about, at the level they were told it.

Returns the whole policy rather than the one row: marking at any level can change the computed answer, and the panel re-renders from this.

post/crm/contacts/{contact_id}/stop-requests

Request

  • Base URL
    https://api-docs.upsmith.com (the document declares no server; this is the origin it was published from)
  • Auth
    • API key in header x-api-key
    • or HTTP bearer

Path parameters

contact_idstring required

Headers

organization-idstring nullable
x-user-idstring nullable
timezonestring
x-actor-emailstring nullable
x-request-sourcestring nullable
x-operation-idstring nullable
x-commit-messagestring nullable
x-confirmation-idstring nullable
x-chat-idstring nullable

Request body

scope'customer' | 'contact_method' | 'campaign' | 'maintenance' | 'estimate' | 'membership' | 'job' | 'lead' | 'canceled_appointment' | 'marketing' required

What the customer asked us to stop.

Stored as a plain string column (not a DB enum): crm is zero-ETL replicated to Redshift, which can't represent a native Postgres enum.

contact_method_idstring nullable
campaign_idstring nullable
maintenance_type_idstring nullable
reason'lead_declined' | 'lead_already_resolved' | 'customer_opt_out' | 'canceled_appointment_already_resolved' | 'office_toggle' | 'carrier_opt_out' | 'contact_deceased' | 'customer_moved' | 'not_a_fit' | 'wrong_number' | 'service_titan_customer_note' | 'service_titan_location_note' | 'service_titan_job_note' | 'service_titan_contact_memo' | 'service_titan_job_reminders_off' | 'service_titan_marketing_updates_off' | 'unknown' required

Why outreach stopped.

One vocabulary across every scope. The per-table reason enums this replaced diverged mostly because they lived in different tables — a campaign opt-out and a customer-scope opt-out are one reason at two scopes, so scope carries what their values encoded.

UNKNOWN covers rows predating the audit columns. It is unclassified, not reversible: a bulk lift must not clear a mark it cannot explain.

customer_statementstring nullable
expires_atstring date-time nullable
source_engagement_idstring nullable

Response

Successful Response

do_not_contactboolean required

Changes

No recorded changes to this operation across all 1 revision of this API.