Co-authored-by: Michael Chihlas <michael@resolutionflow.com> Co-committed-by: Michael Chihlas <michael@resolutionflow.com>
33 lines
869 B
TypeScript
33 lines
869 B
TypeScript
import apiClient from './client'
|
|
|
|
export type SalesLeadSource = 'pricing_page' | 'register_footer' | 'landing_page'
|
|
|
|
export interface SalesLeadCreatePayload {
|
|
email: string
|
|
name: string
|
|
company: string
|
|
team_size?: string
|
|
message?: string
|
|
source: SalesLeadSource
|
|
posthog_distinct_id?: string
|
|
}
|
|
|
|
export interface SalesLeadCreateResponse {
|
|
id: string
|
|
status: 'received'
|
|
}
|
|
|
|
export const salesApi = {
|
|
/**
|
|
* Public Talk-to-Sales submission. No auth required. Rate-limited per IP
|
|
* server-side (5/hour). Server emits PostHog `talk_to_sales_form_submitted`
|
|
* — frontend should NOT also fire this event.
|
|
*/
|
|
async createLead(payload: SalesLeadCreatePayload): Promise<SalesLeadCreateResponse> {
|
|
const response = await apiClient.post<SalesLeadCreateResponse>('/sales-leads', payload)
|
|
return response.data
|
|
},
|
|
}
|
|
|
|
export default salesApi
|