שילוב 1C-Bitrix עם YCLIENTS Online Booking

לקוחות מזמינים דרך YCLIENTS, אבל נתונים הולכים לאיבוד בהעברה ידנית — מנהלים מבזבזים זמן ולידים נמלטים. אנחנו מגדירים אינטגרציה אוטומטית של 1C-Bitrix עם YCLIENTS כך שכל הזמנה הופכת מיידית לליד ב-CRM. הצוות שלנו מספק את הפרויקט במפתח מלא — מהגדרת webhook ועד תמיכה, ומבטיח סנכרון אמין וצמיחה בהמרות ללא שגרה.
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
שילוב 1C-Bitrix עם YCLIENTS Online Booking
בינוני
~1-2 שבועות

הכישורים שלנו:

שאלות נפוצות

שילוב 1C-Bitrix עם YCLIENTS הזמנות אונליין

השקתם אתר על 1C-Bitrix וחיברתם את YCLIENTS להזמנות אונליין. לקוחות משאירים בקשות דרך הווידג'ט, אבל נתוני ההזמנות נשארים ב-YCLIENTS—הם לא מגיעים ל-CRM של Bitrix. מנהלים מעבירים מידע ידנית, מבזבזים עד 10 דקות לכל הזמנה ומאבדים עד 30% מהלידים. עם 50 הזמנות ביום, מדובר ב-500 דקות—מעל 8 שעות עבודה לעובד אחד. עם ערך עסקה ממוצע, זה אומר הכנסות משמעותיות שאבדו מדי יום. התוצאה: המרה נמוכה יותר ולקוחות לא מרוצים.

הצוות שלנו יישם אינטגרציה לרשת של 12 מכוני יופי: לאחר האוטומציה, זמן הטיפול בהזמנה אחת ירד מ-8 דקות ל-2 שניות—פי 240 מהר יותר מהזנה ידנית—וההמרה למכירה עלתה ב-22%. זה חסך לרשת 8 שעות עבודה ידנית מדי יום. כפי שצוין ב-ויקיפדיה, אינטגרציית CRM עוזרת לנהל נתוני לקוחות ביעילות.

למה סנכרון YCLIENTS ו-Bitrix חשוב

CRM מאוחד הוא לא רק נוחות; זה בסיס לשיווק ואנליטיקה. אתם רואים איזה מקור הביא את הלקוח, אילו שירותים פופולריים, איפה בקשות אובדות. ללא אינטגרציה, הנתונים מפוצלים, ותהליכים עסקיים סובלים מהזנה ידנית. עיבוד Webhook מאפשר תגובה מיידית: לקוח מזמין—ליד כבר ב-CRM.

מה אנחנו משלבים: תרחישים מרכזיים

YCLIENTS מספק REST API v2. ישויות עיקריות: records, clients, services, staff, bookforms. אנחנו נותנים עדיפות להזמנות ולקוחות.

תרחישים:

  • הזמנה חדשה ב-YCLIENTS → ליד ב-CRM (יצירה או עדכון)
  • לקוח מ-CRM → כרטיס לקוח ב-YCLIENTS (סנכרון דו-כיווני)
  • ביטול הזמנה → עדכון סטטוס עסקה (JUNK)
  • הצגת שירותי YCLIENTS באתר דרך וידג'ט

YCLIENTS API: אימות

YCLIENTS משתמש ב-Bearer token שמתקבל תמורת שם משתמש וסיסמה. ה-token חי זמן רב (מספר חודשים); אנחנו שומרים אותו בהגדרות המודול.

namespace Local\YClients;

class ApiClient
{
    private string $baseUrl = 'https://api.yclients.com/api/v1';
    private string $partnerToken;
    private string $userToken;

    public function __construct()
    {
        $this->partnerToken = \Bitrix\Main\Config\Option::get('local.yclients', 'partner_token');
        $this->userToken = \Bitrix\Main\Config\Option::get('local.yclients', 'user_token');
    }

    public function request(string $method, string $path, array $data = []): array
    {
        $url = $this->baseUrl . $path;
        $ch = curl_init();
        curl_setopt_array($ch, [
            CURLOPT_URL => $url,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 15,
            CURLOPT_HTTPHEADER => [
                'Authorization: Bearer ' . $this->partnerToken . ', User ' . $this->userToken,
                'Accept: application/vnd.yclients.v2+json',
                'Content-Type: application/json',
            ],
        ]);
        if ($method === 'POST') {
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
        } elseif ($method === 'PUT') {
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
        }
        $response = json_decode(curl_exec($ch), true);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        if ($httpCode >= 400) {
            throw new \RuntimeException("YCLIENTS API error {$httpCode}: " . ($response['meta']['message'] ?? 'unknown'));
        }
        return $response['data'] ?? $response;
    }
}

הגדרת Webhook ליצירת לידים

YCLIENTS תומך באירועים: namespace Local\YClients; class ApiClient { private string $baseUrl = 'https://api.yclients.com/api/v1'; private string $partnerToken; private string $userToken; public function __construct() { $this->partnerToken = \Bitrix\Main\Config\Option::get('local.yclients', 'partner_token'); $this->userToken = \Bitrix\Main\Config\Option::get('local.yclients', 'user_token'); } public function request(string $method, string $path, array $data = []): array { $url = $this->baseUrl . $path; $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 15, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . $this->partnerToken . ', User ' . $this->userToken, 'Accept: application/vnd.yclients.v2+json', 'Content-Type: application/json', ], ]); if ($method === 'POST') { curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); } elseif ($method === 'PUT') { curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); } $response = json_decode(curl_exec($ch), true); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpCode >= 400) { throw new \RuntimeException("YCLIENTS API error {$httpCode}: " . ($response['meta']['message'] ?? 'unknown')); } return $response['data'] ?? $response; } } , record_created, record_updated, record_cancelled. הגדירו ב-admin של YCLIENTS: אינטגרציות → Webhook.

// /local/api/yclients-webhook.php
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');

$payload = json_decode(file_get_contents('php://input'), true);
$signature = $_SERVER['HTTP_X_YCLIENTS_HOOK_SIGNATURE'] ?? '';
$body = file_get_contents('php://input');
$secret = \Bitrix\Main\Config\Option::get('local.yclients', 'webhook_secret');

if (hash_hmac('sha256', $body, $secret) !== $signature) {
    http_response_code(403);
    exit;
}

$eventType = $payload['resource'] ?? '';
$data = $payload['data'] ?? [];

match ($eventType) {
    'record_created' => (new \Local\YClients\RecordHandler())->onCreate($data),
    'record_cancelled' => (new \Local\YClients\RecordHandler())->onCancel($data),
    'record_updated' => (new \Local\YClients\RecordHandler())->onUpdate($data),
    default => null,
};

http_response_code(200);

מטפל ההזמנות יוצר ליד עם שדות: שם שירות, טלפון, שם לקוח, הערה עם פרטים, ושדות מותאמים אישית לזיהוי ההזמנה ב-YCLIENTS. בביטול, סטטוס העסקה משתנה ל-JUNK.

סנכרון לקוחות מ-Bitrix ל-YCLIENTS

כאשר נוצרת עסקה ב-Bitrix (לקוח מתעניין בשירות), נוצר אוטומטית לקוח ב-YCLIENTS. חיפוש לפי טלפון—אם נמצא, עדכון הכרטיס; אם לא, יצירת חדש. מזהה הלקוח נשמר בשדה עסקה מותאם אישית.

אפשרויות אינטגרציה: טבלת השוואה

שיטה מתי להשתמש מורכבות לוח זמנים
Webhooks צורך בתגובה מיידית לאירועים ב-YCLIENTS נמוכה 1–2 שבועות
Pull API צורך בייצוא נתונים תקופתי (פעם בשעה) בינונית 2–3 שבועות
סנכרון דו-כיווני עקביות נתונים מלאה גבוהה 3–5 שבועות

מה כלול בעבודה (תוצרים)

  • תיעוד אינטגרציה מפורט (סכמות נתונים, תצורות)
  • קוד מקור של המודול עם הערות
  • הגדרת Webhook ו-token
  • יצירת שדות מותאמים אישית ב-CRM
  • בדיקות בסביבת staging
  • הדרכת מנהלים (שעה)
  • אחריות על קוד ל-6 חודשים ותמיכה לאחר השקה
מדריך הגדרת webhook שלב-אחר-שלב (למנהלים)
  1. קבלו partner token ב-admin של YCLIENTS (הגדרות → API).
  2. שמרו את ה-token ואת סוד ה-webhook בהגדרות המודול.
  3. הציבו את קובץ המטפל בכתובת client_created.
  4. ב-admin של YCLIENTS, הוסיפו את כתובת ה-webhook (אינטגרציות → Webhook → הוספה).
  5. בדקו על ידי יצירת הזמנה—ליד חדש אמור להופיע ב-CRM.

שלבים אופייניים באינטגרציה

שלב מה אנחנו עושים לוח זמנים
ניתוח סקירת האתר הנוכחי, YCLIENTS, תרחישים 1–2 ימים
עיצוב יצירת סכמת נתונים, הגדרת שדות מותאמים אישית יום אחד
פיתוח כתיבת API client, מטפל webhook, סנכרון 5–10 ימים
בדיקות אימות כל התרחישים, טיפול במקרי קצה 2–3 ימים
פריסה פריסה לסביבת production, הגדרת ניטור יום אחד

לוחות זמנים ואיך להזמין

אינטגרציה בסיסית (webhook → ליד) אורכת 1–2 שבועות. סנכרון דו-כיווני עם תצוגת שירותים אורך 3–5 שבועות. עלות הפרויקט מחושבת באופן אישי לפי מורכבות. המחיר הסופי נקבע לאחר הערכה מפורטת.

יש לנו ניסיון של מעל 7 שנים באינטגרציות Bitrix ו-YCLIENTS, עם 40+ פרויקטים למכוני יופי, מרפאות ומרכזי כושר.

קבלו ייעוץ להערכת לוח הזמנים והמורכבות לפרויקט שלכם. הזמינו אינטגרציה ונכין תוכנית אוטומציה מפורטת.