Skip to content

@happ-integ/bitrix

Клиент для Bitrix24 REST API.

Установка

bash
pnpm add @happ-integ/bitrix

Использование

Инициализация

typescript
import { BitrixClient } from "@happ-integ/bitrix";

const bitrix = new BitrixClient("company.bitrix24.ru", "api-token");

Контакты

typescript
// Создать контакт
const contact = await bitrix.createContact({
	NAME: "John",
	LAST_NAME: "Doe",
	PHONE: [{ VALUE: "+380501234567" }],
	EMAIL: [{ VALUE: "john@example.com" }],
});

// Поиск контактов
const results = await bitrix.searchContacts({
	filter: { PHONE: "+380501234567" },
	select: ["ID", "NAME", "PHONE"],
});

// Обновить контакт
await bitrix.updateContact("123", {
	NAME: "Jane",
	STATUS_ID: "CONVERTED",
});

// Получить контакт
const contact = await bitrix.getContact("123");

// Удалить контакт
await bitrix.deleteContact("123");

Health Check

typescript
const isHealthy = await bitrix.healthCheck();

API

BitrixClient

typescript
new BitrixClient(domain: string, accessToken: string)

Параметры:

  • domain — домен Bitrix (e.g., company.bitrix24.ru)
  • accessToken — REST API токен

Методы

createContact(params): Promise<IBitrixContact>

typescript
interface IBitrixContactCreateParams {
	NAME?: string;
	LAST_NAME?: string;
	EMAIL?: Array<{ VALUE: string }>;
	PHONE?: Array<{ VALUE: string }>;
	COMPANY_ID?: string;
	[key: string]: any;
}

searchContacts(params): Promise<IBitrixContact[]>

typescript
interface IBitrixContactSearchParams {
	filter?: Record<string, any>;
	select?: string[];
	limit?: number;
}

updateContact(id, params): Promise<IBitrixContact>

getContact(id): Promise<IBitrixContact>

deleteContact(id): Promise<void>

healthCheck(): Promise<boolean>

Получить API Token

  1. Bitrix24 Admin Panel → Integration → REST API
  2. Create New Access Token
  3. Copy token
  4. Добавить в Doppler / env
BITRIX_DOMAIN=company.bitrix24.ru
BITRIX_ACCESS_TOKEN=xxxxx

Когда использовать

  • ✅ Интеграция с Bitrix24
  • ✅ Синхронизация контактов
  • ✅ Управление делами и сделками
  • ❌ High-volume — rate limit 2 req/sec