Connect public lead forms to CRM Leads on submit.
This commit is contained in:
@@ -1425,9 +1425,20 @@ export type LeadFormMapTo =
|
||||
| "person.position"
|
||||
| "deal.title"
|
||||
| "deal.notes"
|
||||
| "lead.title"
|
||||
| "lead.contactName"
|
||||
| "lead.mobile"
|
||||
| "lead.phone"
|
||||
| "lead.city"
|
||||
| "lead.region"
|
||||
| "lead.trade"
|
||||
| "lead.notes"
|
||||
| "lead.source"
|
||||
| "notes"
|
||||
| "custom";
|
||||
|
||||
export type LeadFormDuplicateMode = "skip" | "update" | "activity";
|
||||
|
||||
export interface LeadFormFieldDto {
|
||||
id: string;
|
||||
key: string;
|
||||
@@ -1446,9 +1457,12 @@ export interface LeadFormDto {
|
||||
description: string | null;
|
||||
publicToken: string;
|
||||
isActive: boolean;
|
||||
createLead: boolean;
|
||||
createPerson: boolean;
|
||||
createDeal: boolean;
|
||||
pipelineId: string | null;
|
||||
leadStageId: string | null;
|
||||
duplicateMode: LeadFormDuplicateMode | string;
|
||||
source: string | null;
|
||||
thankYouMessage: string | null;
|
||||
redirectUrl: string | null;
|
||||
@@ -1458,6 +1472,11 @@ export interface LeadFormDto {
|
||||
hasCover: boolean;
|
||||
fields: LeadFormFieldDto[];
|
||||
submissionCount?: number;
|
||||
viewCount: number;
|
||||
startCount: number;
|
||||
submitCount: number;
|
||||
leadCreateCount: number;
|
||||
duplicateCount: number;
|
||||
publicPath: string;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
@@ -1477,9 +1496,12 @@ export interface LeadFormFieldInput {
|
||||
export interface CreateLeadFormRequest {
|
||||
name: string;
|
||||
description?: string | null;
|
||||
createLead?: boolean;
|
||||
createPerson?: boolean;
|
||||
createDeal?: boolean;
|
||||
pipelineId?: string | null;
|
||||
leadStageId?: string | null;
|
||||
duplicateMode?: LeadFormDuplicateMode | string;
|
||||
source?: string | null;
|
||||
thankYouMessage?: string | null;
|
||||
redirectUrl?: string | null;
|
||||
@@ -1493,9 +1515,12 @@ export interface UpdateLeadFormRequest {
|
||||
name?: string;
|
||||
description?: string | null;
|
||||
isActive?: boolean;
|
||||
createLead?: boolean;
|
||||
createPerson?: boolean;
|
||||
createDeal?: boolean;
|
||||
pipelineId?: string | null;
|
||||
leadStageId?: string | null;
|
||||
duplicateMode?: LeadFormDuplicateMode | string;
|
||||
source?: string | null;
|
||||
thankYouMessage?: string | null;
|
||||
redirectUrl?: string | null;
|
||||
@@ -1509,6 +1534,7 @@ export interface PublicLeadFormDto {
|
||||
name: string;
|
||||
description: string | null;
|
||||
thankYouMessage: string | null;
|
||||
redirectUrl: string | null;
|
||||
submitLabel: string;
|
||||
submitColor: string;
|
||||
hasCover: boolean;
|
||||
@@ -1527,19 +1553,43 @@ export interface LeadFormSubmissionDto {
|
||||
id: string;
|
||||
values: Record<string, string>;
|
||||
personId: string | null;
|
||||
leadId: string | null;
|
||||
status: string;
|
||||
utm: Record<string, string> | null;
|
||||
createdAt: string;
|
||||
}
|
||||
|
||||
export interface LeadFormUtmDto {
|
||||
source?: string;
|
||||
medium?: string;
|
||||
campaign?: string;
|
||||
term?: string;
|
||||
content?: string;
|
||||
landingPage?: string;
|
||||
referrer?: string;
|
||||
}
|
||||
|
||||
export interface SubmitLeadFormRequest {
|
||||
values: Record<string, string>;
|
||||
utm?: LeadFormUtmDto;
|
||||
pageUrl?: string;
|
||||
referrer?: string;
|
||||
/** honeypot — must be empty */
|
||||
website?: string;
|
||||
}
|
||||
|
||||
export interface SubmitLeadFormResponse {
|
||||
ok: true;
|
||||
thankYouMessage: string | null;
|
||||
redirectUrl: string | null;
|
||||
outcome?: "created" | "updated" | "duplicate_skipped";
|
||||
leadId?: string | null;
|
||||
duplicate?: boolean;
|
||||
message?: string | null;
|
||||
}
|
||||
|
||||
export type LeadFormPublicEvent = "view" | "start";
|
||||
|
||||
export type QuoteStatus =
|
||||
| "draft"
|
||||
| "sent"
|
||||
|
||||
Reference in New Issue
Block a user