@x0333/bitrix24-mcp-server 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +330 -0
- package/build/bitrix24/client.d.ts +224 -0
- package/build/bitrix24/client.d.ts.map +1 -0
- package/build/bitrix24/client.js +1098 -0
- package/build/bitrix24/client.js.map +1 -0
- package/build/config/index.d.ts +6 -0
- package/build/config/index.d.ts.map +1 -0
- package/build/config/index.js +8 -0
- package/build/config/index.js.map +1 -0
- package/build/index.d.ts +3 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +56 -0
- package/build/index.js.map +1 -0
- package/build/tools/index.d.ts +67 -0
- package/build/tools/index.d.ts.map +1 -0
- package/build/tools/index.js +1377 -0
- package/build/tools/index.js.map +1 -0
- package/build/utils/logger.d.ts +7 -0
- package/build/utils/logger.d.ts.map +1 -0
- package/build/utils/logger.js +17 -0
- package/build/utils/logger.js.map +1 -0
- package/package.json +47 -0
package/README.md
ADDED
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
# Bitrix24 MCP Server
|
|
2
|
+
|
|
3
|
+
A comprehensive Model Context Protocol (MCP) server for Bitrix24 CRM integration, enabling AI agents to seamlessly interact with your Bitrix24 instance through a powerful set of tools.
|
|
4
|
+
|
|
5
|
+
## 🚀 Features
|
|
6
|
+
|
|
7
|
+
- **Complete CRM Management**: Create, read, update, and list contacts, deals, and tasks
|
|
8
|
+
- **Advanced Search**: Search across all CRM entities with flexible filtering
|
|
9
|
+
- **Rate Limiting**: Built-in rate limiting to respect Bitrix24 API limits
|
|
10
|
+
- **Type Safety**: Full TypeScript implementation with comprehensive type definitions
|
|
11
|
+
- **Error Handling**: Robust error handling and validation
|
|
12
|
+
- **Easy Integration**: Simple setup with Claude Desktop and other MCP-compatible clients
|
|
13
|
+
|
|
14
|
+
## 📋 Available Tools
|
|
15
|
+
|
|
16
|
+
### Contact Management
|
|
17
|
+
- `bitrix24_create_contact` - Create new contacts
|
|
18
|
+
- `bitrix24_get_contact` - Retrieve contact by ID
|
|
19
|
+
- `bitrix24_list_contacts` - List contacts with filtering
|
|
20
|
+
- `bitrix24_update_contact` - Update existing contacts
|
|
21
|
+
|
|
22
|
+
### Deal Management
|
|
23
|
+
- `bitrix24_create_deal` - Create new deals
|
|
24
|
+
- `bitrix24_get_deal` - Retrieve deal by ID
|
|
25
|
+
- `bitrix24_list_deals` - List deals with filtering
|
|
26
|
+
- `bitrix24_update_deal` - Update existing deals
|
|
27
|
+
|
|
28
|
+
### Task Management
|
|
29
|
+
- `bitrix24_create_task` - Create new tasks
|
|
30
|
+
- `bitrix24_get_task` - Retrieve task by ID
|
|
31
|
+
- `bitrix24_list_tasks` - List tasks with filtering
|
|
32
|
+
- `bitrix24_update_task` - Update existing tasks
|
|
33
|
+
|
|
34
|
+
### User Management
|
|
35
|
+
- `bitrix24_get_user` - Get user information by ID
|
|
36
|
+
- `bitrix24_get_all_users` - Get all users in the system with names and details
|
|
37
|
+
- `bitrix24_resolve_user_names` - Resolve user IDs to user names
|
|
38
|
+
- `bitrix24_get_contacts_with_user_names` - Get contacts with user names resolved
|
|
39
|
+
- `bitrix24_get_deals_with_user_names` - Get deals with user names resolved
|
|
40
|
+
- `bitrix24_get_leads_with_user_names` - Get leads with user names resolved
|
|
41
|
+
- `bitrix24_get_companies_with_user_names` - Get companies with user names resolved
|
|
42
|
+
|
|
43
|
+
### Lead Management
|
|
44
|
+
- `bitrix24_create_lead` - Create new leads
|
|
45
|
+
- `bitrix24_get_lead` - Retrieve lead by ID
|
|
46
|
+
- `bitrix24_list_leads` - List leads with filtering
|
|
47
|
+
- `bitrix24_get_latest_leads` - Get most recent leads
|
|
48
|
+
- `bitrix24_get_leads_from_date_range` - Get leads from specific date range
|
|
49
|
+
- `bitrix24_update_lead` - Update existing leads
|
|
50
|
+
|
|
51
|
+
### Company Management
|
|
52
|
+
- `bitrix24_create_company` - Create new companies
|
|
53
|
+
- `bitrix24_get_company` - Retrieve company by ID
|
|
54
|
+
- `bitrix24_list_companies` - List companies with filtering
|
|
55
|
+
- `bitrix24_get_latest_companies` - Get most recent companies
|
|
56
|
+
- `bitrix24_get_companies_from_date_range` - Get companies from specific date range
|
|
57
|
+
- `bitrix24_update_company` - Update existing companies
|
|
58
|
+
|
|
59
|
+
### Enhanced Deal Filtering
|
|
60
|
+
- `bitrix24_get_deal_pipelines` - Get all deal pipelines/categories
|
|
61
|
+
- `bitrix24_get_deal_stages` - Get deal stages for pipelines
|
|
62
|
+
- `bitrix24_filter_deals_by_pipeline` - Filter deals by pipeline
|
|
63
|
+
- `bitrix24_filter_deals_by_budget` - Filter deals by budget range
|
|
64
|
+
- `bitrix24_filter_deals_by_status` - Filter deals by stage/status
|
|
65
|
+
|
|
66
|
+
### Utilities
|
|
67
|
+
- `bitrix24_search_crm` - Search across CRM entities
|
|
68
|
+
- `bitrix24_get_current_user` - Get current user info
|
|
69
|
+
- `bitrix24_validate_webhook` - Validate webhook connection
|
|
70
|
+
- `bitrix24_diagnose_permissions` - Diagnose webhook permissions
|
|
71
|
+
- `bitrix24_check_crm_settings` - Check CRM settings and configuration
|
|
72
|
+
- `bitrix24_test_leads_api` - Test leads API endpoints
|
|
73
|
+
|
|
74
|
+
### Sales Team Monitoring
|
|
75
|
+
- `bitrix24_monitor_user_activities` - Monitor user activities (calls, emails, timeline interactions, response times)
|
|
76
|
+
- `bitrix24_get_user_performance_summary` - Get comprehensive performance summary with deal metrics and conversion rates
|
|
77
|
+
- `bitrix24_analyze_account_performance` - Analyze performance for specific accounts (companies/contacts)
|
|
78
|
+
- `bitrix24_compare_user_performance` - Compare performance metrics between multiple users
|
|
79
|
+
- `bitrix24_track_deal_progression` - Track deal progression through pipeline stages with timing analysis
|
|
80
|
+
- `bitrix24_monitor_sales_activities` - Monitor sales-related activities (tasks, follow-ups, meetings)
|
|
81
|
+
- `bitrix24_generate_sales_report` - Generate comprehensive sales reports with customizable metrics
|
|
82
|
+
- `bitrix24_get_team_dashboard` - Get real-time team performance dashboard
|
|
83
|
+
- `bitrix24_analyze_customer_engagement` - Analyze customer engagement patterns and relationship health
|
|
84
|
+
- `bitrix24_forecast_performance` - Generate performance forecasts and predictive analytics
|
|
85
|
+
|
|
86
|
+
## 🛠️ Installation
|
|
87
|
+
|
|
88
|
+
### Prerequisites
|
|
89
|
+
- Node.js 18+
|
|
90
|
+
- npm or yarn
|
|
91
|
+
- Bitrix24 webhook URL
|
|
92
|
+
|
|
93
|
+
### Setup
|
|
94
|
+
|
|
95
|
+
1. **Clone and install dependencies:**
|
|
96
|
+
```bash
|
|
97
|
+
git clone <repository-url>
|
|
98
|
+
cd bitrix24-mcp-server
|
|
99
|
+
npm install
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
2. **Configure environment:**
|
|
103
|
+
```bash
|
|
104
|
+
cp .env.example .env
|
|
105
|
+
# Edit .env with your Bitrix24 webhook URL
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
3. **Build the project:**
|
|
109
|
+
```bash
|
|
110
|
+
npm run build
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
4. **Test the connection:**
|
|
114
|
+
```bash
|
|
115
|
+
npm test
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## ⚙️ Configuration
|
|
119
|
+
|
|
120
|
+
### Environment Variables
|
|
121
|
+
|
|
122
|
+
Create a `.env` file with the following variables:
|
|
123
|
+
|
|
124
|
+
```env
|
|
125
|
+
BITRIX24_WEBHOOK_URL=https://your-domain.bitrix24.com/rest/USER_ID/WEBHOOK_CODE/
|
|
126
|
+
NODE_ENV=development
|
|
127
|
+
LOG_LEVEL=info
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Bitrix24 Webhook Setup
|
|
131
|
+
|
|
132
|
+
1. Go to your Bitrix24 instance
|
|
133
|
+
2. Navigate to **Applications** → **Webhooks**
|
|
134
|
+
3. Create an **Incoming webhook**
|
|
135
|
+
4. Copy the webhook URL (format: `https://domain.bitrix24.com/rest/USER_ID/WEBHOOK_CODE/`)
|
|
136
|
+
5. Set appropriate permissions for CRM and Tasks
|
|
137
|
+
|
|
138
|
+
## 🔧 Claude Desktop Integration
|
|
139
|
+
|
|
140
|
+
Add the following to your Claude Desktop configuration file:
|
|
141
|
+
|
|
142
|
+
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
143
|
+
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
144
|
+
|
|
145
|
+
```json
|
|
146
|
+
{
|
|
147
|
+
"mcpServers": {
|
|
148
|
+
"bitrix24": {
|
|
149
|
+
"command": "node",
|
|
150
|
+
"args": ["/path/to/your/bitrix24-mcp-server/build/index.js"],
|
|
151
|
+
"env": {
|
|
152
|
+
"BITRIX24_WEBHOOK_URL": "https://your-domain.bitrix24.com/rest/USER_ID/WEBHOOK_CODE/"
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## 📖 Usage Examples
|
|
160
|
+
|
|
161
|
+
### Creating a Contact
|
|
162
|
+
```
|
|
163
|
+
Create a new contact named John Smith with email john@example.com and phone +39 123 456 789
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Creating a Deal with Contact
|
|
167
|
+
```
|
|
168
|
+
Create a new contact for Maria Rossi with email maria@company.com, then create a deal titled "Website Development Project" for €5000 and link it to this contact
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Managing Tasks
|
|
172
|
+
```
|
|
173
|
+
Create a task titled "Follow up with client" with high priority, deadline tomorrow, and link it to contact ID 123
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Searching CRM
|
|
177
|
+
```
|
|
178
|
+
Search for all contacts and deals related to "example.com"
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## 🏗️ Development
|
|
182
|
+
|
|
183
|
+
### Project Structure
|
|
184
|
+
```
|
|
185
|
+
bitrix24-mcp-server/
|
|
186
|
+
├── src/
|
|
187
|
+
│ ├── bitrix24/
|
|
188
|
+
│ │ └── client.ts # Bitrix24 API client
|
|
189
|
+
│ ├── tools/
|
|
190
|
+
│ │ └── index.ts # MCP tools definitions
|
|
191
|
+
│ ├── utils/
|
|
192
|
+
│ │ └── logger.ts # Logging utilities
|
|
193
|
+
│ ├── config/
|
|
194
|
+
│ │ └── index.ts # Configuration management
|
|
195
|
+
│ └── index.ts # Main MCP server
|
|
196
|
+
├── test/
|
|
197
|
+
│ └── integration.test.js # Integration tests
|
|
198
|
+
├── build/ # Compiled JavaScript
|
|
199
|
+
├── package.json
|
|
200
|
+
├── tsconfig.json
|
|
201
|
+
└── README.md
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Development Commands
|
|
205
|
+
```bash
|
|
206
|
+
# Install dependencies
|
|
207
|
+
npm install
|
|
208
|
+
|
|
209
|
+
# Build the project
|
|
210
|
+
npm run build
|
|
211
|
+
|
|
212
|
+
# Watch mode for development
|
|
213
|
+
npm run dev
|
|
214
|
+
|
|
215
|
+
# Run tests
|
|
216
|
+
npm test
|
|
217
|
+
|
|
218
|
+
# Start the server
|
|
219
|
+
npm start
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Adding New Tools
|
|
223
|
+
|
|
224
|
+
1. Define the tool in `src/tools/index.ts`:
|
|
225
|
+
```typescript
|
|
226
|
+
export const newTool: Tool = {
|
|
227
|
+
name: 'bitrix24_new_action',
|
|
228
|
+
description: 'Description of the new action',
|
|
229
|
+
inputSchema: {
|
|
230
|
+
type: 'object',
|
|
231
|
+
properties: {
|
|
232
|
+
// Define parameters
|
|
233
|
+
},
|
|
234
|
+
required: ['requiredParam']
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
2. Add the execution handler:
|
|
240
|
+
```typescript
|
|
241
|
+
case 'bitrix24_new_action':
|
|
242
|
+
// Implementation
|
|
243
|
+
return { success: true, result: 'Action completed' };
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
3. Add to `allTools` array and rebuild.
|
|
247
|
+
|
|
248
|
+
## 🔒 Security Considerations
|
|
249
|
+
|
|
250
|
+
- **Webhook Security**: Keep your webhook URL secret and rotate it regularly
|
|
251
|
+
- **Environment Variables**: Never commit `.env` files to version control
|
|
252
|
+
- **Rate Limiting**: The client includes built-in rate limiting (2 requests/second)
|
|
253
|
+
- **Error Handling**: Sensitive information is not exposed in error messages
|
|
254
|
+
|
|
255
|
+
## 🐛 Troubleshooting
|
|
256
|
+
|
|
257
|
+
### Common Issues
|
|
258
|
+
|
|
259
|
+
**"Webhook validation failed"**
|
|
260
|
+
- Verify your webhook URL is correct
|
|
261
|
+
- Check that the webhook has appropriate permissions
|
|
262
|
+
- Ensure your Bitrix24 instance is accessible
|
|
263
|
+
|
|
264
|
+
**"Cannot find module" errors**
|
|
265
|
+
- Run `npm install` to install dependencies
|
|
266
|
+
- Ensure you've built the project with `npm run build`
|
|
267
|
+
|
|
268
|
+
**Rate limiting errors**
|
|
269
|
+
- The client automatically handles rate limiting
|
|
270
|
+
- If you see persistent rate limit errors, consider reducing request frequency
|
|
271
|
+
|
|
272
|
+
### Debug Mode
|
|
273
|
+
Set `NODE_ENV=development` and `LOG_LEVEL=debug` in your `.env` file for detailed logging.
|
|
274
|
+
|
|
275
|
+
## 📝 API Reference
|
|
276
|
+
|
|
277
|
+
### Bitrix24Client Methods
|
|
278
|
+
|
|
279
|
+
#### Contacts
|
|
280
|
+
- `createContact(contact: BitrixContact): Promise<string>`
|
|
281
|
+
- `getContact(id: string): Promise<BitrixContact>`
|
|
282
|
+
- `updateContact(id: string, contact: Partial<BitrixContact>): Promise<boolean>`
|
|
283
|
+
- `listContacts(params?: ListParams): Promise<BitrixContact[]>`
|
|
284
|
+
|
|
285
|
+
#### Deals
|
|
286
|
+
- `createDeal(deal: BitrixDeal): Promise<string>`
|
|
287
|
+
- `getDeal(id: string): Promise<BitrixDeal>`
|
|
288
|
+
- `updateDeal(id: string, deal: Partial<BitrixDeal>): Promise<boolean>`
|
|
289
|
+
- `listDeals(params?: ListParams): Promise<BitrixDeal[]>`
|
|
290
|
+
|
|
291
|
+
#### Tasks
|
|
292
|
+
- `createTask(task: BitrixTask): Promise<string>`
|
|
293
|
+
- `getTask(id: string): Promise<BitrixTask>`
|
|
294
|
+
- `updateTask(id: string, task: Partial<BitrixTask>): Promise<boolean>`
|
|
295
|
+
- `listTasks(params?: TaskListParams): Promise<BitrixTask[]>`
|
|
296
|
+
|
|
297
|
+
#### Users
|
|
298
|
+
- `getUser(userId: string): Promise<any>`
|
|
299
|
+
- `getAllUsers(): Promise<any[]>`
|
|
300
|
+
- `getUsersByIds(userIds: string[]): Promise<any[]>`
|
|
301
|
+
- `resolveUserNames(userIds: string[]): Promise<Record<string, string>>`
|
|
302
|
+
- `enhanceWithUserNames<T>(items: T[], userIdFields?: string[]): Promise<T[]>`
|
|
303
|
+
|
|
304
|
+
#### Utilities
|
|
305
|
+
- `getCurrentUser(): Promise<any>`
|
|
306
|
+
- `searchCRM(query: string, entityTypes?: string[]): Promise<any>`
|
|
307
|
+
- `validateWebhook(): Promise<boolean>`
|
|
308
|
+
|
|
309
|
+
## 🤝 Contributing
|
|
310
|
+
|
|
311
|
+
1. Fork the repository
|
|
312
|
+
2. Create a feature branch
|
|
313
|
+
3. Make your changes
|
|
314
|
+
4. Add tests if applicable
|
|
315
|
+
5. Submit a pull request
|
|
316
|
+
|
|
317
|
+
## 📄 License
|
|
318
|
+
|
|
319
|
+
MIT License - see LICENSE file for details.
|
|
320
|
+
|
|
321
|
+
## 🆘 Support
|
|
322
|
+
|
|
323
|
+
For issues and questions:
|
|
324
|
+
1. Check the troubleshooting section
|
|
325
|
+
2. Review Bitrix24 API documentation
|
|
326
|
+
3. Open an issue on GitHub
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
**Built with ❤️ for the AI automation community**
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
export interface BitrixContact {
|
|
2
|
+
ID?: string;
|
|
3
|
+
NAME?: string;
|
|
4
|
+
LAST_NAME?: string;
|
|
5
|
+
PHONE?: Array<{
|
|
6
|
+
VALUE: string;
|
|
7
|
+
VALUE_TYPE: string;
|
|
8
|
+
}>;
|
|
9
|
+
EMAIL?: Array<{
|
|
10
|
+
VALUE: string;
|
|
11
|
+
VALUE_TYPE: string;
|
|
12
|
+
}>;
|
|
13
|
+
COMPANY_TITLE?: string;
|
|
14
|
+
POST?: string;
|
|
15
|
+
COMMENTS?: string;
|
|
16
|
+
DATE_CREATE?: string;
|
|
17
|
+
DATE_MODIFY?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface BitrixDeal {
|
|
20
|
+
ID?: string;
|
|
21
|
+
TITLE?: string;
|
|
22
|
+
STAGE_ID?: string;
|
|
23
|
+
OPPORTUNITY?: string;
|
|
24
|
+
CURRENCY_ID?: string;
|
|
25
|
+
CONTACT_ID?: string;
|
|
26
|
+
COMPANY_ID?: string;
|
|
27
|
+
BEGINDATE?: string;
|
|
28
|
+
CLOSEDATE?: string;
|
|
29
|
+
COMMENTS?: string;
|
|
30
|
+
DATE_CREATE?: string;
|
|
31
|
+
DATE_MODIFY?: string;
|
|
32
|
+
ASSIGNED_BY_ID?: string;
|
|
33
|
+
CREATED_BY_ID?: string;
|
|
34
|
+
MODIFY_BY_ID?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface BitrixLead {
|
|
37
|
+
ID?: string;
|
|
38
|
+
TITLE?: string;
|
|
39
|
+
NAME?: string;
|
|
40
|
+
LAST_NAME?: string;
|
|
41
|
+
SECOND_NAME?: string;
|
|
42
|
+
COMPANY_TITLE?: string;
|
|
43
|
+
SOURCE_ID?: string;
|
|
44
|
+
STATUS_ID?: string;
|
|
45
|
+
STATUS_SEMANTIC_ID?: string;
|
|
46
|
+
OPPORTUNITY?: string;
|
|
47
|
+
CURRENCY_ID?: string;
|
|
48
|
+
PHONE?: Array<{
|
|
49
|
+
VALUE: string;
|
|
50
|
+
VALUE_TYPE: string;
|
|
51
|
+
}>;
|
|
52
|
+
EMAIL?: Array<{
|
|
53
|
+
VALUE: string;
|
|
54
|
+
VALUE_TYPE: string;
|
|
55
|
+
}>;
|
|
56
|
+
ASSIGNED_BY_ID?: string;
|
|
57
|
+
CREATED_BY_ID?: string;
|
|
58
|
+
MODIFY_BY_ID?: string;
|
|
59
|
+
DATE_CREATE?: string;
|
|
60
|
+
DATE_MODIFY?: string;
|
|
61
|
+
DATE_CLOSED?: string;
|
|
62
|
+
COMMENTS?: string;
|
|
63
|
+
OPENED?: string;
|
|
64
|
+
}
|
|
65
|
+
export interface BitrixTask {
|
|
66
|
+
ID?: string;
|
|
67
|
+
TITLE?: string;
|
|
68
|
+
DESCRIPTION?: string;
|
|
69
|
+
RESPONSIBLE_ID?: string;
|
|
70
|
+
DEADLINE?: string;
|
|
71
|
+
PRIORITY?: '0' | '1' | '2';
|
|
72
|
+
STATUS?: '1' | '2' | '3' | '4' | '5';
|
|
73
|
+
STAGE?: string;
|
|
74
|
+
UF_CRM_TASK?: string[];
|
|
75
|
+
}
|
|
76
|
+
export interface BitrixCompany {
|
|
77
|
+
ID?: string;
|
|
78
|
+
TITLE?: string;
|
|
79
|
+
COMPANY_TYPE?: string;
|
|
80
|
+
INDUSTRY?: string;
|
|
81
|
+
PHONE?: Array<{
|
|
82
|
+
VALUE: string;
|
|
83
|
+
VALUE_TYPE: string;
|
|
84
|
+
}>;
|
|
85
|
+
EMAIL?: Array<{
|
|
86
|
+
VALUE: string;
|
|
87
|
+
VALUE_TYPE: string;
|
|
88
|
+
}>;
|
|
89
|
+
WEB?: Array<{
|
|
90
|
+
VALUE: string;
|
|
91
|
+
VALUE_TYPE: string;
|
|
92
|
+
}>;
|
|
93
|
+
ADDRESS?: string;
|
|
94
|
+
EMPLOYEES?: string;
|
|
95
|
+
REVENUE?: string;
|
|
96
|
+
COMMENTS?: string;
|
|
97
|
+
ASSIGNED_BY_ID?: string;
|
|
98
|
+
CREATED_BY_ID?: string;
|
|
99
|
+
MODIFY_BY_ID?: string;
|
|
100
|
+
DATE_CREATE?: string;
|
|
101
|
+
DATE_MODIFY?: string;
|
|
102
|
+
}
|
|
103
|
+
export declare class Bitrix24Client {
|
|
104
|
+
private baseUrl;
|
|
105
|
+
private requestCount;
|
|
106
|
+
private lastRequestTime;
|
|
107
|
+
private readonly RATE_LIMIT_DELAY;
|
|
108
|
+
constructor(webhookUrl?: string);
|
|
109
|
+
private enforceRateLimit;
|
|
110
|
+
private makeRequest;
|
|
111
|
+
createContact(contact: BitrixContact): Promise<string>;
|
|
112
|
+
getContact(id: string): Promise<BitrixContact>;
|
|
113
|
+
updateContact(id: string, contact: Partial<BitrixContact>): Promise<boolean>;
|
|
114
|
+
listContacts(params?: {
|
|
115
|
+
start?: number;
|
|
116
|
+
filter?: Record<string, any>;
|
|
117
|
+
}): Promise<BitrixContact[]>;
|
|
118
|
+
getLatestContacts(limit?: number): Promise<BitrixContact[]>;
|
|
119
|
+
createDeal(deal: BitrixDeal): Promise<string>;
|
|
120
|
+
getDeal(id: string): Promise<BitrixDeal>;
|
|
121
|
+
updateDeal(id: string, deal: Partial<BitrixDeal>): Promise<boolean>;
|
|
122
|
+
listDeals(params?: {
|
|
123
|
+
start?: number;
|
|
124
|
+
filter?: Record<string, any>;
|
|
125
|
+
order?: Record<string, string>;
|
|
126
|
+
select?: string[];
|
|
127
|
+
}): Promise<BitrixDeal[]>;
|
|
128
|
+
getLatestDeals(limit?: number): Promise<BitrixDeal[]>;
|
|
129
|
+
getDealsFromDateRange(startDate: string, endDate?: string, limit?: number): Promise<BitrixDeal[]>;
|
|
130
|
+
createLead(lead: BitrixLead): Promise<string>;
|
|
131
|
+
getLead(id: string): Promise<BitrixLead>;
|
|
132
|
+
updateLead(id: string, lead: Partial<BitrixLead>): Promise<boolean>;
|
|
133
|
+
listLeads(params?: {
|
|
134
|
+
start?: number;
|
|
135
|
+
filter?: Record<string, any>;
|
|
136
|
+
order?: Record<string, string>;
|
|
137
|
+
select?: string[];
|
|
138
|
+
}): Promise<BitrixLead[]>;
|
|
139
|
+
getLatestLeads(limit?: number): Promise<BitrixLead[]>;
|
|
140
|
+
getLeadsFromDateRange(startDate: string, endDate?: string, limit?: number): Promise<BitrixLead[]>;
|
|
141
|
+
createCompany(company: BitrixCompany): Promise<string>;
|
|
142
|
+
getCompany(id: string): Promise<BitrixCompany>;
|
|
143
|
+
updateCompany(id: string, company: Partial<BitrixCompany>): Promise<boolean>;
|
|
144
|
+
listCompanies(params?: {
|
|
145
|
+
start?: number;
|
|
146
|
+
filter?: Record<string, any>;
|
|
147
|
+
order?: Record<string, string>;
|
|
148
|
+
select?: string[];
|
|
149
|
+
}): Promise<BitrixCompany[]>;
|
|
150
|
+
getLatestCompanies(limit?: number): Promise<BitrixCompany[]>;
|
|
151
|
+
getCompaniesFromDateRange(startDate: string, endDate?: string, limit?: number): Promise<BitrixCompany[]>;
|
|
152
|
+
getDealPipelines(): Promise<any[]>;
|
|
153
|
+
getDealStages(pipelineId?: string): Promise<any[]>;
|
|
154
|
+
filterDealsByPipeline(pipelineId: string, options?: {
|
|
155
|
+
limit?: number;
|
|
156
|
+
orderBy?: string;
|
|
157
|
+
orderDirection?: string;
|
|
158
|
+
select?: string[];
|
|
159
|
+
}): Promise<BitrixDeal[]>;
|
|
160
|
+
filterDealsByBudget(minBudget: number, maxBudget?: number, currency?: string, options?: {
|
|
161
|
+
limit?: number;
|
|
162
|
+
orderBy?: string;
|
|
163
|
+
orderDirection?: string;
|
|
164
|
+
select?: string[];
|
|
165
|
+
}): Promise<BitrixDeal[]>;
|
|
166
|
+
filterDealsByStatus(stageIds: string[], pipelineId?: string, options?: {
|
|
167
|
+
limit?: number;
|
|
168
|
+
orderBy?: string;
|
|
169
|
+
orderDirection?: string;
|
|
170
|
+
select?: string[];
|
|
171
|
+
}): Promise<BitrixDeal[]>;
|
|
172
|
+
createTask(task: BitrixTask): Promise<string>;
|
|
173
|
+
getTask(id: string): Promise<BitrixTask>;
|
|
174
|
+
updateTask(id: string, task: Partial<BitrixTask>): Promise<boolean>;
|
|
175
|
+
listTasks(params?: {
|
|
176
|
+
select?: string[];
|
|
177
|
+
filter?: Record<string, any>;
|
|
178
|
+
order?: Record<string, string>;
|
|
179
|
+
start?: number;
|
|
180
|
+
}): Promise<BitrixTask[]>;
|
|
181
|
+
getCurrentUser(): Promise<any>;
|
|
182
|
+
getUser(userId: string): Promise<any>;
|
|
183
|
+
getAllUsers(): Promise<any[]>;
|
|
184
|
+
getUsersByIds(userIds: string[]): Promise<any[]>;
|
|
185
|
+
resolveUserNames(userIds: string[]): Promise<Record<string, string>>;
|
|
186
|
+
enhanceWithUserNames<T extends Record<string, any>>(items: T[], userIdFields?: string[]): Promise<T[]>;
|
|
187
|
+
searchCRM(query: string, entityTypes?: string[]): Promise<any>;
|
|
188
|
+
validateWebhook(): Promise<boolean>;
|
|
189
|
+
diagnosePermissions(): Promise<any>;
|
|
190
|
+
checkCRMSettings(): Promise<any>;
|
|
191
|
+
testLeadsAPI(): Promise<any>;
|
|
192
|
+
private batchRequest;
|
|
193
|
+
monitorUserActivities(userId?: string, startDate?: string, endDate?: string, options?: {
|
|
194
|
+
includeCallVolume?: boolean;
|
|
195
|
+
includeEmailActivity?: boolean;
|
|
196
|
+
includeTimelineActivity?: boolean;
|
|
197
|
+
includeResponseTimes?: boolean;
|
|
198
|
+
}): Promise<any>;
|
|
199
|
+
getUserPerformanceSummary(userId?: string, startDate?: string, endDate?: string, options?: {
|
|
200
|
+
includeDealMetrics?: boolean;
|
|
201
|
+
includeActivityRatios?: boolean;
|
|
202
|
+
includeConversionRates?: boolean;
|
|
203
|
+
}): Promise<any>;
|
|
204
|
+
analyzeAccountPerformance(accountId: string, accountType: 'company' | 'contact', startDate?: string, endDate?: string, options?: {
|
|
205
|
+
includeAllInteractions?: boolean;
|
|
206
|
+
includeDealProgression?: boolean;
|
|
207
|
+
includeTimelineHistory?: boolean;
|
|
208
|
+
}): Promise<any>;
|
|
209
|
+
compareUserPerformance(userIds?: string[], startDate?: string, endDate?: string, options?: {
|
|
210
|
+
metrics?: string[];
|
|
211
|
+
includeRankings?: boolean;
|
|
212
|
+
includeTrends?: boolean;
|
|
213
|
+
}): Promise<any>;
|
|
214
|
+
private calculateResponseTimes;
|
|
215
|
+
private generateUserRankings;
|
|
216
|
+
trackDealProgression(dealId?: string, userId?: string, pipelineId?: string, startDate?: string, endDate?: string, options?: any): Promise<any>;
|
|
217
|
+
monitorSalesActivities(userId?: string, startDate?: string, endDate?: string, options?: any): Promise<any>;
|
|
218
|
+
generateSalesReport(reportType: string, startDate?: string, endDate?: string, options?: any): Promise<any>;
|
|
219
|
+
getTeamDashboard(options?: any): Promise<any>;
|
|
220
|
+
analyzeCustomerEngagement(accountId?: string, accountType?: string, userId?: string, startDate?: string, endDate?: string, options?: any): Promise<any>;
|
|
221
|
+
forecastPerformance(forecastType: string, userId?: string, options?: any): Promise<any>;
|
|
222
|
+
}
|
|
223
|
+
export declare const bitrix24Client: Bitrix24Client;
|
|
224
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/bitrix24/client.ts"],"names":[],"mappings":"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"}
|