Skip to content

CRM · Beta

LeadPerfection
API integration

Ship CRM features without building the integration. Full LeadPerfection API access via Proxy and 50+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
LeadPerfection

Use Cases

Why integrate with LeadPerfection

Common scenarios for SaaS companies building LeadPerfection integrations for their customers.

01

Embed LeadPerfection in AI voice and SMS platforms

Conversational AI vendors serving home improvement contractors need to create leads, book appointments against live rep availability, and log transcripts back to the CRM. Truto lets them ship this integration without learning LeadPerfection's forward-look capacity model or XML-based call history endpoints.

02

Power in-home CPQ and contracting apps

Quoting and estimation tools used by field reps need to pull daily schedules, push signed contracts as image blobs, and write back finalized job costs and commissions. Offering a LeadPerfection integration is table stakes for selling into roofing, windows, and HVAC contractors.

03

Build marketing attribution and BI dashboards

Analytics platforms that report on marketing ROI for home services companies need continuous access to lead sources, job milestones, and status changes. Truto handles the polling, pagination, and namespace fragmentation across LeadPerfection's Lead, Sales, and Customer APIs.

04

Ship field service apps for installer crews

Photo management and job tracking apps built for installers need a separate view of the installer calendar, job details, and note history — distinct from sales rep data. Truto exposes the installer namespace so SaaS vendors can build persona-specific mobile experiences.

05

Enable outbound dialer and call center tooling

Dialer and contact center platforms need to pull batches of leads from LeadPerfection's dialing queues, sync call history, and update DNC compliance status. Truto abstracts the CQDID batching and XML payload formatting required to make this reliable at scale.

What You Can Build

Ship these features with Truto + LeadPerfection

Concrete product features your team can ship faster by leveraging Truto’s LeadPerfection integration instead of building from scratch.

01

Automated appointment booking with capacity checks

Query a sales rep's 14-day availability via forward-look data and book appointments directly onto the correct rep's calendar based on zip code routing.

02

Lead intake with source attribution

Create new leads in LeadPerfection with promoter and sub-promoter tagging so downstream marketing analytics can attribute revenue back to the originating campaign.

03

Two-way call history and DNC sync

Pull leads from dialing queues in batches, push call outcomes back via the call history endpoint, and flag opted-out prospects with a DNC status update.

04

Contract and photo upload from the field

Attach signed contracts, site photos, and salesman images to jobs directly from a tablet or mobile app, tied to the correct prospect and job ID.

05

Sales-to-job conversion workflow

Dispose appointments as sold, push finalized job costs and commission splits, and update job detail records to move prospects through the Prospect → Appointment → Job funnel.

06

Milestone and status change polling for BI

Continuously sync job status changes and milestone events to close the loop between marketing spend and installed revenue in a reporting dashboard.

SuperAI

LeadPerfection AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

create_a_lead_perfection_token

Create an authentication token required by all other LeadPerfection REST API requests. The token expires 24 hours after generation and must be refreshed periodically.

list_all_lead_perfection_leads_get_inbound_lead_infos

Retrieve inbound lead history from LeadPerfection within a date range, optionally filtered by promoter or log number. Returns: data (array of inbound lead status records for the Source codes you have access to). Dates must be in MM/DD/YYYY format.

list_all_lead_perfection_leads_get_leads_forward_looks

Retrieve Forward Look data in LeadPerfection for sales rep appointment availability over the upcoming 14 days. Returns: SDate, TMS_Descr1–TMS_Descr6 (time slot descriptions), T1–T6 (appointments needed per slot with overbooking), X1–X6 (appointments needed without overbooking). Specify either branchid (Market) or productid and zip.

list_all_lead_perfection_leads_get_leads_source_sub_promoters

Retrieve lists of valid values from LeadPerfection lookup tables (SubSources, Promoters, Branches, or Products) for use during lead capture. Returns records with id and table-specific attributes. The type parameter selects the source table and defaults to S (SubSources).

create_a_lead_perfection_leads_set_appointment

Set a new appointment on an existing data lead in LeadPerfection. The lead must be in a set-able status, cannot be out of area, and must not have an existing future appointment. Returns an empty response on success. The upstream spec specifies an empty response schema.

create_a_lead_perfection_leads_set_appointment_sales_rep

Set a new appointment on an existing data lead in LeadPerfection with an optional sales rep and product assignment. The lead must be in a set-able status, cannot be out of area, and must not have an existing future appointment. Returns an empty response on success. The upstream spec specifies an empty response schema.

create_a_lead_perfection_sales_api_add_job_image

Add an image to a job in LeadPerfection by uploading the file's raw byte array along with the target job id and filename. The filename must exactly match the original file's name and extension or the file may be flagged as improperly saved. Optional: docdescr, dtyid. Use /api/SalesApi/GetSalesApptDispProd with type=y to enumerate valid dtyid values. Returns…. The upstream spec specifies an empty response schema.

create_a_lead_perfection_sales_api_add_note

Add a note to a Prospect, Issued Lead, or Job record in LeadPerfection. The note appears on the Notes tab for the specified record. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.

create_a_lead_perfection_sales_api_add_sales_job_commission

Add a commission record on a job in LeadPerfection. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.

create_a_lead_perfection_sales_api_add_sales_job_payment

Add a payment record on a job in LeadPerfection. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.

create_a_lead_perfection_sales_api_add_sales_job_cost

Add a job cost record to a job in LeadPerfection, including quantity, cost, price, commission and invoice details. Returns an empty response on success. The upstream spec specifies an empty response schema.

create_a_lead_perfection_sales_api_add_salesman_image

Add an image to a sales appointment in LeadPerfection. If the appointment disposition is SALE the image attaches to the associated job record, otherwise it attaches to the prospect. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.

list_all_lead_perfection_sales_api_get_prospect_job_ids

Search for jobs in LeadPerfection by prospect id or job number and receive back a list of matching JobIDs. Returns: JobID. At least one of prospectid or contractid should be supplied.

list_all_lead_perfection_sales_api_get_prospect_job_id_2_s

Search for jobs in LeadPerfection by prospect id, job number (contractid), or issued lead id. Returns a list of matching JobIDs. At least one of prospectid, contractid, or issued_appt_id should be provided.

list_all_lead_perfection_sales_api_get_sales_appt_disp_prods

Enumerate static lookup tables in LeadPerfection by specifying a type code. Returns records with id and type-specific attributes whose field structure varies by the requested data type (e.g., dispositions, products, sales reps, call results).

list_all_lead_perfection_sales_api_get_sales_appt_cals

View the appointment calendar for the logged-in sales rep in LeadPerfection. For the current month, lists each day that the rep has at least one appointment scheduled, along with the total number of appointments for each day. Returns the appointment calendar with day-level appointment counts via attributes. Limited to the current month only.

list_all_lead_perfection_sales_api_get_sales_appt_day_lists

List all appointments for a specified day for the logged-in sales rep in LeadPerfection. Returns: id.

get_single_lead_perfection_sales_api_get_sales_appt_detail_by_id

Get detailed information about a single sales appointment in LeadPerfection by specifying a date and issued lead id. Returns an empty 200 response on success.

list_all_sales_api_get_sales_appt_detail_date_ranges

Retrieve a list of issued sales appointments within a specified date range from LeadPerfection, spanning all sales reps rather than just the logged-in user. The upstream API does not document the response body fields.

list_all_lead_perfection_sales_api_get_sales_appt_lists

List all issued sales appointments within a specified date range in LeadPerfection. Returns a list of appointments for the given date range; the upstream OpenAPI spec does not document the response schema.

get_single_lead_perfection_sales_api_get_sales_job_detail_by_id

Get sales job detail information in LeadPerfection for a given JobID. Returns job detail info about the job; the upstream spec does not enumerate individual response fields.

list_all_lead_perfection_sales_api_get_sales_opens

List recent sales for the logged-in sales rep in LeadPerfection. Returns: status for each sale. No request parameters are required.

create_a_lead_perfection_sales_api_update_sales_appt_detail_3

Update the results of an issued sales appointment in LeadPerfection (version 3, adding sale type and vendor parameters over version 2). Returns an empty 200 response on success. Follow-up date/time fields require the IncludeFollowUpinPresentation config key set to Y. The upstream spec specifies an empty response schema.

create_a_lead_perfection_sales_api_update_sales_job_cost

Update a job cost record for a job in LeadPerfection. Returns an empty 200 response on success. invoiceDate must be in YYYY-MM-DD format. The upstream spec specifies an empty response schema.

create_a_lead_perfection_sales_api_update_sales_job_detail

Update the paperwork status, commission type, total commission amount, and user fields (job_user_11, job_user_12) on a LeadPerfection job record. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.

list_all_lead_perfection_sales_api_get_sales_schedules

Get the sales schedule in LeadPerfection broken down by day and then by rep, showing each rep's available time slots and whether an appointment is already scheduled. Returns: day, rep (including slots and appointment-scheduled status for each slot). If no date range is supplied, defaults to the current month; SlrID 0 returns all reps and BrnID 'ALL' returns all markets.

list_all_lead_perfection_sales_api_get_employees

Get a list of employees in LeadPerfection. Returns employee records with EmpID, FirstName, LastName, Active, and Email. Pagination is handled via StartIndex and PageSize parameters.

list_all_lead_perfection_downloads_get_leads_by_cqdids

Retrieve a list of leads to dial from a specified call queue in LeadPerfection. Returns a list of leads in the given queue that are available to be dialed; the response shape is not documented in the upstream API specification. Pulls are restricted to a max of 1000 records at a time.

list_all_lead_perfection_downloads_get_leads_by_cqdid_longs

Retrieve a list of leads available to be dialed from a specific call queue in LeadPerfection, optionally filtered by a call filter. The upstream API does not document the response field structure. Pulls are restricted to a max of 1000 records at a time.

create_a_lead_perfection_downloads_process_call_history_xml

Import call history records into LeadPerfection by submitting an XML payload. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.

create_a_lead_perfection_downloads_process_notes_xml

Import note records into LeadPerfection by submitting a call history XML payload. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.

create_a_lead_perfection_customers_add_call_history

Add call history results back into LeadPerfection. Returns an empty 200 response on success. Valid values for these fields can be enumerated via the GetSalesApptDispProd API. The upstream spec specifies an empty response schema.

list_all_lead_perfection_customers_get_customers

Search customers in LeadPerfection by last name or prospect ID. Returns: name. At least one of custnumber or lastname should be provided. This endpoint is deprecated.

list_all_lead_perfection_customers_get_customers_2_s

Search for prospects in LeadPerfection by last name, phone, job number, or prospect ID. Returns: custnumber, name, phone. This endpoint is deprecated.

list_all_lead_perfection_customers_get_customers_3_s

Search prospects in LeadPerfection by last name, phone, job number, prospect ID, or email. Returns matching records with custnumber, name, and phone for any found matches. All search criteria are optional.

list_all_lead_perfection_customers_get_customers_by_prospect_ids

Search for prospects in LeadPerfection by Prospect ID, job number, first name, last name, or phone. Returns matching prospects with prospectid, name, address, and phone.

list_all_lead_perfection_customers_get_leads

Retrieve full prospect, lead, appointment, and job data from LeadPerfection by prospect id, lead id, issued lead id, or date range. Returns a full set of data for each matching prospect, potentially including hundreds of data elements such as alternate contacts, lead history, appointment history, job history, milestones, payments, and notes.

list_all_lead_perfection_customers_get_job_status_changes

Search for jobs with status changes in LeadPerfection within a specified date range, optionally filtering by customer, job, or job status ID. Returns job status change records for matching jobs; the specific response fields are not documented in the API specification.

list_all_lead_perfection_customers_get_lead_infos

Search for prospects in LeadPerfection by lastname, phone, jobnumber, or prospectid. Returns lead information including EntryDate, PromoterName, Source, SubSourceDescription, and Disposition. Provide at least one search criterion.

list_all_lead_perfection_customers_get_milestones

Retrieve prospect, lead, appointment, and job milestone data from LeadPerfection by specifying a prospect ID, lead ID, issued lead ID, or date range. Returns the data array of full prospect records including milestones, lead history, appointment history, job history, and notes.

list_all_lead_perfection_customers_get_prospect_datas

Retrieve full prospect, lead, appointment, and job data from LeadPerfection by prospect id, lead id, issued lead id, or date range. Returns a data array of prospect records, each potentially including hundreds of elements such as alternate contacts, lead history, appointment history, job history, milestones, payments, and notes. Specify at least one selector: cst_id, lds_id, ils_id, or a date…

list_all_lead_perfection_customers_get_sales_appointments

Get sales appointments with full prospect, lead, appointment, and job data from LeadPerfection by specifying a date range and optional prospect, lead, or issued lead IDs. Returns the data array containing full prospect records including alternate contacts, lead history, appointment history, job history, milestones, payments, and notes.

list_all_lead_perfection_customers_get_service_appointments

Retrieve full prospect, lead, appointment, and job data from LeadPerfection by prospect id, lead id, issued lead id, or date range. Returns the prospect data object with id and content-specific attributes including alternate contacts, lead history, appointment history, job history, milestones, payments, service, and notes.

create_a_lead_perfection_customers_update_customer

Update basic prospect information in LeadPerfection — first name, last name, and phone for a given prospect ID. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.

create_a_lead_perfection_customers_update_prospect_info

Update basic prospect information in LeadPerfection by prospect ID. Supports updating first name, last name, address, address2, city, state, zip, phone, and email. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.

create_a_lead_perfection_customers_update_dnc_status

Update the internal DNC (Do Not Call) status on a prospect in LeadPerfection. The newDncStatus parameter accepts C (Do Not Call), M (Do Not Mail), T (Do Not Text), E (Do Not Email), or P (Do Not Promote). Returns an empty 200 response on success. The upstream spec specifies an empty response schema.

create_a_lead_perfection_installer_add_installer_job_note

Add notes to a job in LeadPerfection matching a given jobid number. Returns an empty 200 response on success. The upstream spec specifies an empty response schema.

list_all_lead_perfection_installer_get_installer_appt_cals

Get the installer appointment calendar for the current month in LeadPerfection, listing each day the installer has at least one appointment scheduled along with the total appointment count for that day. Returns: apptdate. No request parameters are required.

list_all_lead_perfection_installer_get_installer_appt_day_lists

List installer appointments for a given day in LeadPerfection. For the specified date, returns all appointments for the logged-in sales rep; the LeadPerfection API does not document the specific response fields.

get_installer_get_installer_appt_detail_by_id

Get detailed information about a single installer appointment in LeadPerfection by specifying an appointment date and job ID. Returns a 200 response; the upstream spec does not document specific response fields.

get_installer_get_installer_job_detail_by_id

Get detailed information about a single installer job appointment in LeadPerfection by specifying an appointment date and job ID. The upstream API does not document the response schema for this endpoint.

list_all_lead_perfection_installer_get_installer_job_notes

Get notes associated with a job in LeadPerfection. For a given job ID and appointment date, returns the notes that appear on the Notes tab for that job. Returns: notes.

list_all_lead_perfection_installer_get_installs_opens

Get a list of open installs assigned to the logged-in user in LeadPerfection. Returns: id. No required parameters.

list_all_lead_perfection_installer_get_job_images

Get documents associated with a job in LeadPerfection. Returns a list of documents that appear on the DOCS tab for the specified job, customer, or issued lead record.

list_all_lead_perfection_job_get_job_details

Pull basic information about a job in LeadPerfection by providing at least one search criterion. Returns the job detail data object. At least one of JobID, JobNumber, IssuedAppointmentID, StartContractDate, or EndContractDate must be provided.

create_a_lead_perfection_file_download_web_file

Download a web file from a URL in LeadPerfection. If the account has an associated Amazon S3 account, uploads the file to S3 and returns the final storage path. Returns: path.

create_a_lead_perfection_lead

Add a lead to the inbound lead queue in LeadPerfection, the preferred API method with access to all lead fields including contact info, phones, product interest, and appointment details. Returns the created lead record with content-type-specific fields (id, attributes).

list_all_lead_perfection_leads

Retrieve limited information on all leads added to the inbound leads queue during the current day in LeadPerfection. Returns inbound lead records with content-type-specific fields (id, attributes). Deprecated — use GetInboundLeadInfo instead.

list_all_lead_perfection_leads_get_lead_datas

Retrieve a list of leads from LeadPerfection by date range or Issued Lead ID. Returns: data. This endpoint is deprecated; use Customers/GetLead for the current version.

Why Truto

Why use Truto’s MCP server for LeadPerfection

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with LeadPerfection in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s LeadPerfection account

Use Truto’s frontend SDK to connect your customer’s LeadPerfection account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call LeadPerfection

Truto’s Proxy API is a 1-to-1 mapping of the LeadPerfection API. You call us, we call LeadPerfection, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate LeadPerfection’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about LeadPerfection on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How does authentication work with LeadPerfection?

LeadPerfection uses token-based authentication generated from customer credentials. Truto handles the token lifecycle for each of your end users via the create token endpoint, so you don't need to manage credential storage or refresh logic yourself.

Can we separate sales rep calendars from installer calendars?

Yes. LeadPerfection exposes distinct endpoints for sales appointment calendars and installer appointment calendars, and both are available through Truto. This lets you build persona-specific views without mixing the two datasets.

How do we handle high-volume lead syncs for dialer use cases?

LeadPerfection supports batched lead retrieval from dialing queues (CQDIDs) of up to 1,000 records per call. Truto exposes these list endpoints with standard pagination so you can build reliable, incremental sync jobs.

How do we write call activity back to LeadPerfection?

Call history is written via an XML payload endpoint, and standalone notes can be added via a separate endpoint. Truto normalizes the request format so you send structured JSON and we handle the XML transformation.

Can we upload contract PDFs and photos to a job?

Yes. LeadPerfection accepts image and file uploads tied to a job ID via the add job image and add salesman image endpoints. Files are transmitted as byte payloads, which Truto passes through directly.

How fresh is the data — is there webhook support?

LeadPerfection's public API is polling-based rather than webhook-driven. For status changes, milestones, and new leads, you'll poll the relevant list endpoints on an interval that matches your product's freshness requirements.

LeadPerfection

Get LeadPerfection integrated into your app

Our team understands what it takes to make a LeadPerfection integration successful. A short, crisp 30 minute call with folks who understand the problem.