Developers Exterior Remodeling
Industry guide
Video Intros for Exterior Remodeling
Connect inspection, claim, estimate, approval, production and completion milestones to personalized Video Intros. The API is the same as every other industry. What changes is the set of touchpoints an organization starts with.
The customer journey Lead / Appointment Inspection Claim / Estimate Approval Production Completion
Recommended touchpoints These are the touchpoints Video Intros sets up for a new exterior remodeling organization. Each organization can rename them, edit them or turn them off, so always read the live list with GET /v1/touchpoints .
Insurance restoration Inspection, claim and adjuster moments. The rep is the contractor and never speaks for the insurance company.
New Inspection Appointment
new_inspection
When to trigger An inspection is booked.
Useful context context.appointment (start time and time zone)
Example payload
Copy
{
"touchpoint" : "new_inspection" ,
"occurred_at" : "2026-10-05T17:40:00Z" ,
"member" : {
"external_id" : "rep_456"
} ,
"recipient" : {
"first_name" : "Andrea" ,
"last_name" : "Smith" ,
"phone" : "+12405550100"
} ,
"reference" : {
"source" : "your_crm" ,
"type" : "appointment" ,
"id" : "appointment_123"
} ,
"context" : {
"appointment" : {
"starts_at" : "2026-10-06T18:00:00Z" ,
"timezone" : "America/New_York"
}
}
}
Inspection Confirmation Appointment
inspection_confirmation
When to trigger The inspection is close.
Useful context context.appointment (start time and time zone)
Example payload
Copy
{
"touchpoint" : "inspection_confirmation" ,
"occurred_at" : "2026-10-05T17:40:00Z" ,
"member" : {
"external_id" : "rep_456"
} ,
"recipient" : {
"first_name" : "Andrea" ,
"last_name" : "Smith" ,
"phone" : "+12405550100"
} ,
"reference" : {
"source" : "your_crm" ,
"type" : "appointment" ,
"id" : "appointment_123"
} ,
"context" : {
"appointment" : {
"starts_at" : "2026-10-06T18:00:00Z" ,
"timezone" : "America/New_York"
}
}
}
Inspection Findings / Next Steps No context
inspection_findings
When to trigger The inspection is done and the next step is known.
Useful context reference to the record it is about
Example payload
Copy
{
"touchpoint" : "inspection_findings" ,
"occurred_at" : "2026-10-05T17:40:00Z" ,
"member" : {
"external_id" : "rep_456"
} ,
"recipient" : {
"first_name" : "Andrea" ,
"last_name" : "Smith" ,
"phone" : "+12405550100"
} ,
"reference" : {
"source" : "your_crm" ,
"type" : "job" ,
"id" : "job_5521"
}
}
Claim Filed / Claim Follow-Up No context
claim_follow_up
When to trigger A claim was filed or is in process.
Useful context reference to the record it is about
Example payload
Copy
{
"touchpoint" : "claim_follow_up" ,
"occurred_at" : "2026-10-05T17:40:00Z" ,
"member" : {
"external_id" : "rep_456"
} ,
"recipient" : {
"first_name" : "Andrea" ,
"last_name" : "Smith" ,
"phone" : "+12405550100"
} ,
"reference" : {
"source" : "your_crm" ,
"type" : "job" ,
"id" : "job_5521"
}
}
Adjuster Meeting Appointment
adjuster_meeting
When to trigger An adjuster meeting is scheduled.
Useful context context.appointment (start time and time zone)
Example payload
Copy
{
"touchpoint" : "adjuster_meeting" ,
"occurred_at" : "2026-10-05T17:40:00Z" ,
"member" : {
"external_id" : "rep_456"
} ,
"recipient" : {
"first_name" : "Andrea" ,
"last_name" : "Smith" ,
"phone" : "+12405550100"
} ,
"reference" : {
"source" : "your_crm" ,
"type" : "appointment" ,
"id" : "appointment_123"
} ,
"context" : {
"appointment" : {
"starts_at" : "2026-10-06T18:00:00Z" ,
"timezone" : "America/New_York"
}
}
}
claim_update
When to trigger Something meaningful changed in the claim.
Useful context reference to the record it is about
Example payload
Copy
{
"touchpoint" : "claim_update" ,
"occurred_at" : "2026-10-05T17:40:00Z" ,
"member" : {
"external_id" : "rep_456"
} ,
"recipient" : {
"first_name" : "Andrea" ,
"last_name" : "Smith" ,
"phone" : "+12405550100"
} ,
"reference" : {
"source" : "your_crm" ,
"type" : "job" ,
"id" : "job_5521"
}
}
Approved / Moving Forward No context
approved_moving_forward
When to trigger The project or claim is approved and moving forward.
Useful context reference to the record it is about
Example payload
Copy
{
"touchpoint" : "approved_moving_forward" ,
"occurred_at" : "2026-10-05T17:40:00Z" ,
"member" : {
"external_id" : "rep_456"
} ,
"recipient" : {
"first_name" : "Andrea" ,
"last_name" : "Smith" ,
"phone" : "+12405550100"
} ,
"reference" : {
"source" : "your_crm" ,
"type" : "job" ,
"id" : "job_5521"
}
}
Retail Appointment, estimate and decision moments for a homeowner paying directly.
New Appointment Appointment
new_appointment
When to trigger A sales appointment is booked.
Useful context context.appointment (start time and time zone)
Example payload
Copy
{
"touchpoint" : "new_appointment" ,
"occurred_at" : "2026-10-05T17:40:00Z" ,
"member" : {
"external_id" : "rep_456"
} ,
"recipient" : {
"first_name" : "Andrea" ,
"last_name" : "Smith" ,
"phone" : "+12405550100"
} ,
"reference" : {
"source" : "your_crm" ,
"type" : "appointment" ,
"id" : "appointment_123"
} ,
"context" : {
"appointment" : {
"starts_at" : "2026-10-06T18:00:00Z" ,
"timezone" : "America/New_York"
}
}
}
Appointment Confirmation Appointment
appointment_confirmation
When to trigger The appointment is close and deserves a personal confirmation.
Useful context context.appointment (start time and time zone)
Example payload
Copy
{
"touchpoint" : "appointment_confirmation" ,
"occurred_at" : "2026-10-05T17:40:00Z" ,
"member" : {
"external_id" : "rep_456"
} ,
"recipient" : {
"first_name" : "Andrea" ,
"last_name" : "Smith" ,
"phone" : "+12405550100"
} ,
"reference" : {
"source" : "your_crm" ,
"type" : "appointment" ,
"id" : "appointment_123"
} ,
"context" : {
"appointment" : {
"starts_at" : "2026-10-06T18:00:00Z" ,
"timezone" : "America/New_York"
}
}
}
Estimate / Proposal Follow-Up No context
estimate_follow_up
When to trigger An estimate or proposal was presented or sent.
Useful context reference to the record it is about
Example payload
Copy
{
"touchpoint" : "estimate_follow_up" ,
"occurred_at" : "2026-10-05T17:40:00Z" ,
"member" : {
"external_id" : "rep_456"
} ,
"recipient" : {
"first_name" : "Andrea" ,
"last_name" : "Smith" ,
"phone" : "+12405550100"
} ,
"reference" : {
"source" : "your_crm" ,
"type" : "job" ,
"id" : "job_5521"
}
}
Decision Follow-Up No context
decision_follow_up
When to trigger The homeowner is still deciding.
Useful context reference to the record it is about
Example payload
Copy
{
"touchpoint" : "decision_follow_up" ,
"occurred_at" : "2026-10-05T17:40:00Z" ,
"member" : {
"external_id" : "rep_456"
} ,
"recipient" : {
"first_name" : "Andrea" ,
"last_name" : "Smith" ,
"phone" : "+12405550100"
} ,
"reference" : {
"source" : "your_crm" ,
"type" : "job" ,
"id" : "job_5521"
}
}
Both On the way, kickoff, project updates and completion are the same in either lane.
on_my_way
When to trigger The rep is heading to the property.
Useful context reference to the appointment or job
Example payload
Copy
{
"touchpoint" : "on_my_way" ,
"occurred_at" : "2026-10-05T17:40:00Z" ,
"member" : {
"external_id" : "rep_456"
} ,
"recipient" : {
"first_name" : "Andrea" ,
"last_name" : "Smith" ,
"phone" : "+12405550100"
} ,
"reference" : {
"source" : "your_crm" ,
"type" : "job" ,
"id" : "job_5521"
}
}
Project Kickoff / Next Steps No context
project_kickoff
When to trigger The homeowner signed and the project is starting.
Useful context reference to the record it is about
Example payload
Copy
{
"touchpoint" : "project_kickoff" ,
"occurred_at" : "2026-10-05T17:40:00Z" ,
"member" : {
"external_id" : "rep_456"
} ,
"recipient" : {
"first_name" : "Andrea" ,
"last_name" : "Smith" ,
"phone" : "+12405550100"
} ,
"reference" : {
"source" : "your_crm" ,
"type" : "job" ,
"id" : "job_5521"
}
}
project_update
When to trigger A trade starts, materials arrive or the schedule changes.
Useful context context.trade
Example payload
Copy
{
"touchpoint" : "project_update" ,
"occurred_at" : "2026-10-05T17:40:00Z" ,
"member" : {
"external_id" : "rep_456"
} ,
"recipient" : {
"first_name" : "Andrea" ,
"last_name" : "Smith" ,
"phone" : "+12405550100"
} ,
"reference" : {
"source" : "your_crm" ,
"type" : "job" ,
"id" : "job_5521"
} ,
"context" : {
"trade" : "roofing"
}
}
Project Complete / Thank You No context
project_complete
When to trigger The work is complete.
Useful context reference to the record it is about
Example payload
Copy
{
"touchpoint" : "project_complete" ,
"occurred_at" : "2026-10-05T17:40:00Z" ,
"member" : {
"external_id" : "rep_456"
} ,
"recipient" : {
"first_name" : "Andrea" ,
"last_name" : "Smith" ,
"phone" : "+12405550100"
} ,
"reference" : {
"source" : "your_crm" ,
"type" : "job" ,
"id" : "job_5521"
}
}
Insurance restoration and retail An organization can run both lanes. A rep in one lane sees that lane’s touchpoints. Tell Video Intros which lane a moment belongs to when your CRM knows:
context Copy
{
"context" : {
"lane" : "insurance" ,
"trade" : "roofing"
}
}