Skip to main content
CRM platforms are only as useful as the data inside them. When a sales rep opens a lead in ServiceTitan, Jobber, Housecall Pro, or any field-service tool, they need current lender eligibility, available incentive programs, and verified equipment context — not a static note from last quarter. Home Service Data gives you two proven patterns for keeping your CRM records accurate without rebuilding your workflows from scratch.

Supported platforms

Home Service Data is designed to work alongside the platforms your team already uses. Common integration targets include:
  • Field service CRMs — ServiceTitan, Jobber, Housecall Pro, Workiz, FieldPulse
  • Solar workflow tools — OpenSolar, Aurora Solar, Enerflo
  • Roofing and estimating tools — AccuLynx, Leap, EagleView, HOVER, CompanyCam, JobNimbus
  • Construction management — Buildertrend
Any platform that accepts webhooks, has an API, or allows custom field population can be enriched with Home Service Data.

Integration patterns

In the real-time pattern, you call Home Service Data when a lead’s address or location is captured — typically in a CRM webhook, a form submission handler, or a lead creation trigger. This keeps your lookup fresh and avoids maintaining a local cache.Best for: Platforms with webhook-based automations, small teams, or use cases where you query a handful of leads per hour.When a new lead arrives, call /api/v1/quote-context with the lead’s state, county, and the relevant trade vertical. Store the returned finance eligibility and incentive records as custom fields on the lead record.
import { createHsdClient } from "hsd-client-sdk";

const hsd = createHsdClient({
  apiKey: process.env.HSD_API_KEY!,
  baseUrl: "https://homeservicedata.com",
});

// Called from your CRM webhook handler when a lead is created
async function enrichLeadOnCreate(lead: {
  state: string;
  county: string;
  trade: string;
}) {
  const params = new URLSearchParams({
    trade: lead.trade,
    state: lead.state,
    county: lead.county,
  });

  const response = await fetch(
    `https://homeservicedata.com/api/v1/quote-context?${params}`,
    {
      headers: { "x-api-key": process.env.HSD_API_KEY! },
    }
  );

  const { data, error } = await response.json();

  if (error) throw new Error(error);

  // Only surface quote-safe records to the CRM
  const eligiblePrograms = data.finance.filter(
    (p: { quote_safe: boolean }) => p.quote_safe === true
  );
  const activeIncentives = data.context.incentives.filter(
    (i: { quote_safe: boolean }) => i.quote_safe === true
  );

  return {
    eligiblePrograms,
    activeIncentives,
    climateContext: data.context.climate,
  };
}

Keeping CRM data fresh with webhooks

Even with a scheduled sync, dataset updates can happen between polling intervals. Home Service Data publishes dataset.version.published webhook events whenever a dataset is updated. Configure a webhook endpoint in the Dashboard to receive these events and trigger an immediate delta pull — so your CRM records are updated within seconds of a new lender program or incentive change going live. See the Webhooks guide for the full payload shape and a handler example.

Mapping data to CRM fields

Different CRM platforms expose different extension points. Here are the most common mapping targets:

Lead custom fields

Map finance_eligibility records and incentives to lead-level custom fields so reps see eligibility context as soon as a lead is created.

Estimate line items

Map finance fee records (interest rate, term, dealer fee) to estimate or proposal line items in quoting workflows.

Job notes

Append context.permits and context.climate summaries to job notes so technicians arrive informed.

Product catalog

Sync equipment_pricing records into your CRM’s product catalog so reps can select verified SKUs when building proposals.

Dataset keys for CRM use cases

The following dataset keys are most relevant for CRM enrichment:
Dataset keyWhat it containsCRM use
finance_eligibilityLender eligibility by state, county, and measureQualify leads for financing before first contact
finance_feesVerified dealer fees and program ratesPopulate accurate finance line items in estimates
hvac_incentivesIncentive programs with eligibility rulesShow available rebates on HVAC leads
equipment_pricingPrice observations with confidence ratingsCross-reference against your own pricing model
Create a dedicated API key for each CRM integration in the Dashboard. This lets you track usage, set per-key rate limits, and revoke access to a single integration without affecting other systems.

Next steps

Sync Integration

Step-by-step guide to seeding and maintaining a local database mirror of any HSD dataset.

Webhooks

Receive instant notifications when a dataset is updated so your CRM data never lags.