daktela/daktela-v6-crm-sync

Universal sync layer between Daktela Contact Centre V6 and any CRM system

Maintainers

Package info

github.com/Daktela/daktela-v6-crm-sync-sdk

pkg:composer/daktela/daktela-v6-crm-sync

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.3 2026-03-18 14:24 UTC

This package is auto-updated.

Last update: 2026-03-18 14:26:18 UTC


README

A universal sync SDK between Daktela Contact Centre V6 and any CRM system. Provides the sync engine, field mapper, transformers, state tracking, and webhook handling — you supply a CrmAdapterInterface implementation for your CRM.

Architecture

┌─────────────┐     ┌─────────────┐     ┌─────────────────┐
│  CRM System │ ──▶ │ Sync Engine │ ──▶ │ Daktela CC V6   │
│  (Adapter)  │ ◀── │  + Mapper   │ ◀── │   (Adapter)     │
└─────────────┘     └─────────────┘     └─────────────────┘
      │                    │                     │
      │              YAML Configs          Official PHP
      │            (field mappings)        Connector v2.4

Sync directions:

  • Contacts: CRM → Daktela (CRM is source-of-truth)
  • Accounts: CRM → Daktela (CRM is source-of-truth)
  • Activities: Daktela → CRM (Daktela is source-of-truth)

Requirements

  • PHP 8.2+
  • Daktela V6 instance with API access

Installation

composer require daktela/daktela-v6-crm-sync

Pre-Built Adapters

The companion package daktela/daktela-crm-integrations provides ready-to-use adapters for 15 CRM/ERP systems — including HubSpot, Salesforce, Pipedrive, SugarCRM, Dynamics 365, Raynet, WooCommerce, and more. Install with composer require daktela/daktela-crm-integrations.

Quick Start

  1. Install a pre-built adapter or create your own implementing CrmAdapterInterface
  2. Configure field mappings in YAML
  3. Wire up the SyncEngine
use Daktela\CrmSync\Adapter\Daktela\DaktelaAdapter;
use Daktela\CrmSync\Config\YamlConfigLoader;
use Daktela\CrmSync\Logging\StderrLogger;
use Daktela\CrmSync\Sync\SyncEngine;

$logger = new StderrLogger();
$config = (new YamlConfigLoader())->load('config/sync.yaml');

$ccAdapter = new DaktelaAdapter($config->instanceUrl, $config->accessToken, $config->database, $logger);
$crmAdapter = new YourCrmAdapter(/* ... */);

$engine = new SyncEngine($ccAdapter, $crmAdapter, $config, $logger);
$engine->testConnections();

$results = $engine->fullSync();
foreach ($results->toArray() as $type => $result) {
    echo $result->getSummary(ucfirst($type)) . "\n";
}

See examples/ for full sync, incremental, single-record, and webhook examples.

Documentation

Development

docker compose build
docker compose run --rm php composer install
docker compose run --rm php vendor/bin/phpunit
docker compose run --rm php vendor/bin/phpstan analyse

License

Proprietary — requires a valid Daktela Contact Centre license. See LICENSE for details.