Skip to content

calljacob/wp-leaddocket-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WP LeadDocket API

A PHP library for WordPress that provides a clean wrapper around the LeadDocket REST API v1. Covers all available endpoints across every resource group, with built-in transient caching and a consistent response object.

Requirements

  • PHP 7.4+
  • WordPress 5.0+
  • A LeadDocket account with an API key (Admin → Settings → API Key)

Installation

Drop wp-leaddocket-api.php into your plugin or theme and include it:

require_once plugin_dir_path( __FILE__ ) . 'wp-leaddocket-api.php';

Basic Usage

$ld = new WP_LeadDocket_API(
    'https://yourfirm.leaddocket.com',
    'YOUR_API_KEY'
);

$res = $ld->get_lead( 123 );

if ( $res->ok() ) {
    $lead = $res->data();
} else {
    error_log( $res->error_message() );
}

Response Object

Every method returns a WP_LeadDocket_Response with four methods:

Method Returns Description
ok() bool true if HTTP 2xx and no connection error
data() array|string|null Decoded JSON response body
status() int HTTP status code (0 on connection error)
error_message() string|null Error description, or null on success
is_cached() bool true if response was served from cache

Caching

GET requests are cached using WordPress transients. The default TTL is 5 minutes.

// Change the TTL (in seconds)
$ld->cache_ttl = 60;

// Disable caching entirely
$ld->cache_ttl = 0;

// Bypass cache for a single call
$res = $ld->get_statuses( true );
$res = $ld->get_lead( 123, true );

// Clear all cached responses
$ld->flush_cache();

Available Methods

Leads

$ld->get_leads( $params, $bypass_cache )
$ld->get_lead( $id, $bypass_cache )
$ld->get_lead_basic( $id, $bypass_cache )
$ld->get_lead_detailed( $id, $params, $bypass_cache )
$ld->update_lead( $id, $data )
$ld->get_lead_by_code( $params, $bypass_cache )
$ld->get_lead_by_opportunity_id( $params, $bypass_cache )
$ld->get_leads_pending_export_ids( $params, $bypass_cache )
$ld->get_leads_last_status_change_since( $params, $bypass_cache )
$ld->get_leads_last_updated_since( $params, $bypass_cache )
$ld->update_lead_code( $data )
$ld->update_lead_custom_field( $data )
$ld->get_lead_custom_field( $params, $bypass_cache )
$ld->update_lead_custom_fields( $data )
$ld->mark_lead_as_processed( $data )
$ld->add_lead_related_contact( $data )
$ld->update_lead_role_user( $data )

Lead Status

$ld->change_lead_status( $id, $data )
$ld->advance_lead_substatus( $id, $data )

Lead Notes

$ld->add_lead_note( $id, $data )
$ld->update_lead_note( $id, $note_id, $data )
$ld->delete_lead_note( $id, $note_id )

Lead Appointments

$ld->schedule_lead_appointment( $id, $data )

Lead Files

$ld->upload_lead_file( $id, $data )
$ld->get_lead_file_upload_url( $id, $data )
$ld->finalize_lead_file_upload( $id, $file_id, $data )
$ld->associate_lead_file_with_field( $id, $file_id, $field_id, $data )
$ld->download_lead_file( $id, $bypass_cache )

Lead Forms

$ld->get_lead_forms( $params, $bypass_cache )
$ld->create_lead_form( $data )
$ld->get_lead_form( $id, $bypass_cache )
$ld->update_lead_form( $id, $data )
$ld->delete_lead_form( $id )
$ld->add_lead_form_field( $id, $data )
$ld->update_lead_form_field( $id, $field_id, $data )
$ld->delete_lead_form_field( $id, $field_id )
$ld->delete_lead_form_fields( $id, $params )
$ld->get_lead_form_invitations( $lead_id, $bypass_cache )
$ld->create_lead_form_invitation( $lead_id, $data )

Collection Sections

$ld->get_lead_collection_sections( $lead_id, $bypass_cache )
$ld->add_lead_collection_section_entry( $lead_id, $section_id, $data )
$ld->update_lead_collection_section_entry( $lead_id, $section_id, $data )
$ld->delete_lead_collection_section_entry( $lead_id, $section_id, $data )

Contacts

$ld->create_contact( $data )
$ld->get_contact( $id, $bypass_cache )
$ld->update_contact( $id, $data )
$ld->get_contact_by_code( $params, $bypass_cache )
$ld->search_contacts( $params, $bypass_cache )
$ld->update_contact_code( $data )
$ld->update_contact_custom_fields( $data )
$ld->check_contact_recent_by_phone( $params, $bypass_cache )
$ld->get_contacts_last_updated_since( $params, $bypass_cache )
$ld->add_contact_tag( $id, $tag_id )
$ld->delete_contact_tag( $id, $contact_tag_id )
$ld->get_contact_custom_fields( $bypass_cache )

Opportunities

$ld->get_opportunity( $id, $bypass_cache )
$ld->get_opportunities_created_since( $params, $bypass_cache )
$ld->get_opportunities_last_updated_since( $params, $bypass_cache )
$ld->get_opportunities_unprocessed( $params, $bypass_cache )
$ld->append_opportunity_note( $data )
$ld->clear_opportunity_note( $data )
$ld->disregard_opportunity( $data )
$ld->lock_opportunity( $data )
$ld->unlock_opportunity( $data )

Referrals

$ld->create_referral( $data )
$ld->get_referral( $id, $bypass_cache )
$ld->update_referral( $id, $data )
$ld->delete_referral( $id )
$ld->get_referral_by_external_code( $params, $bypass_cache )
$ld->get_referrals( $params, $bypass_cache )
$ld->update_referral_code( $data )
$ld->update_referral_external_code( $data )
$ld->get_referral_groups( $bypass_cache )
$ld->get_referral_practice_areas( $bypass_cache )

Settlements

$ld->create_settlement( $data )
$ld->get_settlement( $id, $bypass_cache )
$ld->get_settlements_by_lead( $lead_id, $bypass_cache )

Tasks

$ld->create_task( $data )
$ld->get_task( $id, $bypass_cache )
$ld->update_task( $data )
$ld->delete_task( $id )
$ld->get_lead_tasks( $lead_id, $bypass_cache )
$ld->complete_task( $id )

Statuses

$ld->get_statuses( $bypass_cache )
$ld->create_status( $data )
$ld->get_status( $id, $bypass_cache )
$ld->update_status( $id, $data )
$ld->create_substatus( $status_id, $data )
$ld->update_substatus( $status_id, $substatus_id, $data )
$ld->delete_substatus( $status_id, $substatus_id )

Messages

$ld->create_message( $data )
$ld->send_text_message( $data )
$ld->send_email_message( $data )

Expenses

$ld->create_expense( $data )
$ld->get_expense( $id, $bypass_cache )
$ld->get_expenses( $params, $bypass_cache )
$ld->delete_expense( $id )

External Calls

$ld->start_external_call( $data )
$ld->end_external_call( $data )
$ld->get_external_call( $id, $bypass_cache )
$ld->get_external_call_recording( $id, $bypass_cache )
$ld->get_external_call_transcription( $id, $bypass_cache )

Lead Roles

$ld->get_lead_roles( $bypass_cache )
$ld->delete_lead_role( $id )

Lead Sources

$ld->get_lead_sources( $bypass_cache )

Custom Fields

$ld->get_custom_fields( $bypass_cache )

Lookups

$ld->get_lookup_types( $bypass_cache )
$ld->get_lookups( $params, $bypass_cache )

Users

$ld->get_users( $params, $bypass_cache )
$ld->get_user( $id, $bypass_cache )
$ld->get_users_by_role( $params, $bypass_cache )
$ld->get_user_by_code( $code, $bypass_cache )
$ld->get_user_by_filevine_id( $id, $bypass_cache )

Settings

$ld->get_settings_options( $bypass_cache )

Webhook (legacy push)

// For third-party form integrations — uses webhook URL, not the API key
$ld->push_lead_webhook( $webhook_url, $data )

Low-Level Access

You can call any endpoint directly via request() if you need something not covered by a named method:

$res = $ld->request( 'GET', '/api/leads', [ 'statusId' => 2 ] );
$res = $ld->request( 'POST', '/api/leads/456/notes', [], [ 'note' => 'Called client.' ] );

License

MIT

About

A PHP library for WordPress that provides a clean wrapper around the LeadDocket REST API v1.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages