daktela / daktela-v6-crm-sync
Universal sync layer between Daktela Contact Centre V6 and any CRM system
1.0.1
2026-02-27 22:53 UTC
Requires
- php: >=8.2
- daktela/daktela-v6-php-connector: ^2.4
- guzzlehttp/guzzle: ^7.0
- psr/http-message: ^2.0
- psr/log: ^2.0||^3.0
- symfony/yaml: ^6.0||^7.0
Requires (Dev)
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.0
README
A universal sync layer between Daktela Contact Centre V6 and any CRM system. Ships a concrete Daktela adapter, ready-to-use CRM integrations, and lets you add more under src/Crm/.
Architecture
┌─────────────┐ ┌─────────────┐ ┌─────────────────┐
│ CRM System │ ──▶ │ Sync Engine │ ──▶ │ Daktela CC V6 │
│ (Adapter) │ ◀── │ + Mapper │ ◀── │ (Adapter) │
└─────────────┘ └─────────────┘ └─────────────────┘
│ │ │
│ YAML Configs Official PHP
│ (field mappings) Connector v2.4
│
CRM adapters live
in src/Crm/<Name>/
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)
CRM Integrations
| CRM | Namespace | Docs |
|---|---|---|
| Raynet CRM | Daktela\CrmSync\Crm\Raynet |
README |
Requirements
- PHP 8.2+
- Daktela V6 instance with API access
Installation
composer require daktela/daktela-v6-crm-sync
Quick Start
- Create your CRM adapter implementing
CrmAdapterInterface - Configure field mappings in YAML
- 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
- Getting Started
- Configuration
- Field Mapping
- Implementing a CRM Adapter
- Sync Engine
- Webhooks
- Error Handling
- Testing Your Integration
- Production Deployment
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.