Інтеграція CRM-системи Salesforce з сайтом

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.
Розробка та обслуговування будь-яких видів сайтів:
Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Інтеграція CRM-системи Salesforce з сайтом
Складна
~3-5 робочих днів
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Інтеграція CRM-системи Salesforce з сайтом

Salesforce — корпоративна CRM-платформа з широкими можливостями кастомізації. Інтеграція сайту з Salesforce дозволяє автоматично створювати лідів з форм, синхронізувати клієнтську базу, передавати дані про транзакції та будувати єдиний профіль клієнта для менеджерів продажу.

Способи підключення

REST API (Salesforce REST API) — основний варіант. Авторизація через OAuth 2.0 (Connected App). Підтримує CRUD-операції з об'єктами Salesforce (Lead, Contact, Account, Opportunity).

Salesforce Web-to-Lead — вбудована HTML-форма від Salesforce. Найпростіший варіант, але обмежені можливості: немає валідації, немає користувацьких полів, складно кастомізувати вигляд. Підходить тільки для простих випадків.

Salesforce Platform Events / Streaming API — для двунаправленої синхронізації в реальному часі.

Налаштування Connected App

  1. У Salesforce: Setup → App Manager → New Connected App
  2. Включити OAuth settings, додати callback URL
  3. Вибрати scopes: api, refresh_token
  4. Отримати Consumer Key та Consumer Secret

Створення лідо з форми замовлення

use Omniphx\Forrest\Providers\LaravelServiceProvider;
// composer require omniphx/forrest

// config/forrest.php
'credentials' => [
    'consumer_key'    => env('SF_CONSUMER_KEY'),
    'consumer_secret' => env('SF_CONSUMER_SECRET'),
    'username'        => env('SF_USERNAME'),
    'password'        => env('SF_PASSWORD'),
]

// У контролері
Forrest::authenticate();

$lead = Forrest::sobjects('Lead', 'post', [
    'body' => [
        'FirstName'   => $request->first_name,
        'LastName'    => $request->last_name,
        'Email'       => $request->email,
        'Phone'       => $request->phone,
        'Company'     => $request->company ?? 'Фізична особа',
        'LeadSource'  => 'Website',
        'Description' => "UTM: {$request->utm_source}/{$request->utm_campaign}"
    ]
]);

Синхронізація замовлень (Opportunities)

Підтверджене замовлення на сайті → Opportunity у Salesforce з привязкою до Contact/Account. Це дозволяє менеджерам бачити історію покупок прямо в CRM.

Forrest::sobjects('Opportunity', 'post', [
    'body' => [
        'Name'        => "Замовлення #{$order->id}",
        'AccountId'   => $salesforceAccountId,
        'Amount'      => $order->total / 100,
        'CloseDate'   => $order->created_at->format('Y-m-d'),
        'StageName'   => 'Closed Won',
        'Order_ID__c' => $order->id  // користувацьке поле
    ]
]);

Двустороння синхронізація

Зміни у Salesforce (статус угоди, контактні дані) повинні відображатися на сайті. Реалізація через Outbound Messages або Platform Events: Salesforce відправляє webhook на сайт при зміні об'єкту.

Альтернатива — періодичний polling: раз у 15 хвилин запитувати змінені об'єкти через SELECT Id, ... FROM Lead WHERE LastModifiedDate > {timestamp} через SOQL.

Дедупликація контактів

Salesforce часто містить дублі — потрібна логіка: перед створенням нового Lead/Contact перевірити наявність запису з тим же email через SOQL-запит.

$existing = Forrest::query(
    "SELECT Id, Email FROM Lead WHERE Email = '{$email}' LIMIT 1"
);

if ($existing['totalSize'] > 0) {
    // Оновити існуючий лід
    Forrest::sobjects("Lead/{$existing['records'][0]['Id']}", 'patch', [...]);
} else {
    // Створити новий
}

Маппінг полів

Користувацькі поля в Salesforce створюються через Setup → Object Manager. API-ім'я користувацького поля закінчується на __c (наприклад, UTM_Source__c). Маппінг полів сайту → поля Salesforce зберігається у конфігу, щоб не змінювати код при зміні структури.

Обробка ошибок та очереди

Salesforce API має обмеження (24-годинні обмеження на виклики API). Всі запити до Salesforce виконуються через очередь (Laravel Queue/Horizon), щоб не блокувати відповідь користувачу та повторювати при тимчасових помилках.

Терміни розробки: 4–6 тижнів для повної двусторонної інтеграції з користувацькими об'єктами та синхронізацією замовлень.