feat: add lead qualification workflow
This commit is contained in:
@@ -8,6 +8,7 @@ const leadPriority = v.union(
|
||||
v.literal("medium"),
|
||||
v.literal("low"),
|
||||
v.literal("defer"),
|
||||
v.literal("blocked"),
|
||||
);
|
||||
const leadContactStatus = v.union(
|
||||
v.literal("new"),
|
||||
@@ -158,6 +159,7 @@ export default defineSchema({
|
||||
city: v.optional(v.string()),
|
||||
postalCode: v.optional(v.string()),
|
||||
googlePlaceId: v.optional(v.string()),
|
||||
normalizedGooglePlaceId: v.optional(v.string()),
|
||||
googleMapsUrl: v.optional(v.string()),
|
||||
googlePrimaryType: v.optional(v.string()),
|
||||
googleTypes: v.optional(v.array(v.string())),
|
||||
@@ -169,9 +171,18 @@ export default defineSchema({
|
||||
websiteUrl: v.optional(v.string()),
|
||||
websiteDomain: v.optional(v.string()),
|
||||
phone: v.optional(v.string()),
|
||||
normalizedEmail: v.optional(v.string()),
|
||||
normalizedPhone: v.optional(v.string()),
|
||||
normalizedCompanyName: v.optional(v.string()),
|
||||
normalizedAddress: v.optional(v.string()),
|
||||
email: v.optional(v.string()),
|
||||
emailSource: v.optional(v.string()),
|
||||
contactPerson: v.optional(v.string()),
|
||||
priorityReason: v.optional(v.string()),
|
||||
contactStatusReason: v.optional(v.string()),
|
||||
duplicateReason: v.optional(v.string()),
|
||||
blacklistReason: v.optional(v.string()),
|
||||
duplicateOfLeadId: v.optional(v.id("leads")),
|
||||
priority: leadPriority,
|
||||
contactStatus: leadContactStatus,
|
||||
duplicateStatus: leadDuplicateStatus,
|
||||
@@ -183,8 +194,16 @@ export default defineSchema({
|
||||
.index("by_campaignId", ["campaignId"])
|
||||
.index("by_discoveryRunId", ["discoveryRunId"])
|
||||
.index("by_contactStatus", ["contactStatus"])
|
||||
.index("by_normalizedEmail", ["normalizedEmail"])
|
||||
.index("by_normalizedPhone", ["normalizedPhone"])
|
||||
.index("by_normalizedCompanyName_and_normalizedAddress", [
|
||||
"normalizedCompanyName",
|
||||
"normalizedAddress",
|
||||
])
|
||||
.index("by_normalizedGooglePlaceId", ["normalizedGooglePlaceId"])
|
||||
.index("by_googlePlaceId", ["googlePlaceId"])
|
||||
.index("by_websiteDomain", ["websiteDomain"])
|
||||
.index("by_normalizedCompanyName", ["normalizedCompanyName"])
|
||||
.index("by_priority_and_contactStatus", ["priority", "contactStatus"]),
|
||||
|
||||
audits: defineTable({
|
||||
|
||||
Reference in New Issue
Block a user