Skip to content
Video IntrosDevelopers
TestLive not yet available
videointros.com

Preview Developer preview. The API described here is not available yet. Examples are illustrative and every console screen uses sample data: nothing is sent, created or stored.

Integration guide · Exterior Remodeling Guide

AccuLynx and Video Intros

AccuLynx terminology never enters the Video Intros API. Your adapter reads a job’s milestone or status in AccuLynx and translates it into one of the organization’s touchpoints.

How it fits together

  1. AccuLynxINSPECTION_COMPLETED
  2. Your adapterMapping lives here
  3. Video Introsinspection_findings

Native names stay in your adapter’s mapping. Video Intros only ever sees the organization’s touchpoint.

A reference mapping

In AccuLynxKindVideo Intros touchpointContext
INSPECTION_COMPLETED
Event
inspection_findingsInspection Findings / Next Steps
None
Prospect
Milestone
claim_follow_upClaim Filed / Claim Follow-Up
None
Adjustment Complete
Status
claim_updateClaim Update
NoneThe seeded set has no touchpoint for after the adjuster meeting; this example reports it as a claim update.
Send For Supplement
Status
claim_updateClaim Update
None
Waiting on supplement approval
Status
claim_updateClaim Update
None
Emailed Quote
Status
estimate_follow_upEstimate / Proposal Follow-Up
None
Approved
Milestone
approved_moving_forwardApproved / Moving Forward
None
Roofing in Progress
Status
project_updateProject Update
trade = roofing
Siding In Progress
Status
project_updateProject Update
trade = siding
Gutters In Progress
Status
project_updateProject Update
trade = gutters
Completed
Milestone
project_completeProject Complete / Thank You
None

The request your adapter sends

Whatever happened in AccuLynx, the request is the same one every integration sends.

  1. Detect the changeSubscribe to AccuLynx’s notifications, or poll, for the records you care about.
  2. Look up the mappingFind the organization’s touchpoint for the native value. If there is none, do nothing.
  3. Build the keyacculynx:job_5521:project_update:roofing
  4. Send the eventPOST /v1/touchpoint-events
  5. Store the event idSo you can look the event up later.
AccuLynx → project_update
curl -X POST https://api.videointros.com/v1/touchpoint-events \
  -H "Authorization: Bearer $VIDEO_INTROS_API_KEY" \
  -H "Idempotency-Key: acculynx:job_5521:project_update:roofing" \
  -H "Content-Type: application/json" \
  -d '{
  "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": "acculynx",
    "type": "job",
    "id": "job_5521"
  },
  "context": {
    "trade": "roofing"
  }
}'
const response = await fetch("https://api.videointros.com/v1/touchpoint-events", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.VIDEO_INTROS_API_KEY}`,
    "Idempotency-Key": "acculynx:job_5521:project_update:roofing",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "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": "acculynx",
      "type": "job",
      "id": "job_5521"
    },
    "context": {
      "trade": "roofing"
    }
  }),
});
const result = await response.json();
import os, requests

response = requests.post(
    "https://api.videointros.com/v1/touchpoint-events",
    headers={
        "Authorization": f"Bearer {os.environ['VIDEO_INTROS_API_KEY']}",
        "Idempotency-Key": "acculynx:job_5521:project_update:roofing",
    },
    json={
        "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": "acculynx",
            "type": "job",
            "id": "job_5521",
        },
        "context": {
            "trade": "roofing",
        },
    },
)
result = response.json()

Next