دليل المطوّرين والربط مع Helpy
اربط Claude وChatGPT وCursor وHermes بـ Helpy عبر MCP، واربط أنظمتك بـ REST API والويبهوكات — بنفس صلاحيات كل مستخدم بالظبط.
نظرة عامة
فيه 3 طرق تربط بيها أي حاجة بـ Helpy، وكلها بتشتغل بصلاحيات المستخدم اللي ربط ونطاق بياناته بالظبط، وبتتراجع فوراً لو صلاحياته اتغيّرت أو فصل الاتصال:
| الطريقة | لمين | العنوان |
|---|---|---|
| خادم MCP | تطبيقات الذكاء الاصطناعي: Claude وChatGPT وCursor وHermes وClaude Code وVS Code | https://helpy.ai/api/mcp |
| REST API v1 | أنظمتك وسكربتاتك وn8n وMake وتطبيقاتك | https://helpy.ai/api/v1 |
| Webhooks | استقبال أحداث لحظية (عميل جديد أو اتعدّل) | من Helpy ← التطبيقات ← Zapier/Webhooks |
وصف OpenAPI 3.1 الكامل للـ REST API (لـ Postman وSwagger ومولّدات SDK):
https://helpy.ai/api/v1/openapi.json
اربط تطبيق ذكاء اصطناعي في دقيقتين
الرابط واحد لكل التطبيقات. التطبيق بيكتشف تسجيل الدخول لوحده (OAuth)، فبتسجّل دخولك في Helpy مرة وتوافق — من غير ما تنسخ أي مفتاح. الإعداد خطوة بخطوة جوه Helpy في الإعدادات ← ربط الذكاء الاصطناعي.
رابط الخادم
https://helpy.ai/api/mcp
| التطبيق | الإعداد |
|---|---|
| Claude | الإعدادات ← Connectors ← Add custom connector ← الصق الرابط ← Connect ووافق. على Team/Enterprise المالك يضيفه للمؤسسة مرة واحدة. |
| ChatGPT | Settings ← Apps & Connectors ← Advanced ← فعّل Developer mode ← Create: الرابط ومصادقة OAuth ← وافق. |
| Cursor | زر «أضف لـ Cursor» في Helpy، أو ~/.cursor/mcp.json ثم Login من إعدادات MCP. |
| Hermes | ~/.hermes/config.yaml ثم hermes mcp login helpy — أو مفتاح API للتشغيل الآلي. |
| Claude Code | الأمر تحت، ثم /mcp ← helpy ← Authenticate. |
| VS Code | .vscode/mcp.json ثم وضع Agent في Copilot Chat. |
Cursor — ~/.cursor/mcp.json
{
"mcpServers": {
"helpy": {
"url": "https://helpy.ai/api/mcp"
}
}
}Hermes — ~/.hermes/config.yaml
mcp_servers:
helpy:
url: "https://helpy.ai/api/mcp"
auth: oauth
# then run: hermes mcp login helpyClaude Code
claude mcp add --transport http helpy https://helpy.ai/api/mcp
VS Code — .vscode/mcp.json
{
"servers": {
"helpy": {
"type": "http",
"url": "https://helpy.ai/api/mcp"
}
}
}بمفتاح API بدل تسجيل الدخول (Hermes على سيرفر، n8n، أي عميل MCP مبيدعمش OAuth): ابعت الترويسة Authorization: Bearer <المفتاح>.
Hermes بمفتاح API (متغيّر البيئة HELPY_API_KEY)
mcp_servers:
helpy:
url: "https://helpy.ai/api/mcp"
headers:
Authorization: "Bearer ${HELPY_API_KEY}"إزاي خادم MCP بيشتغل
- النقل: Streamable HTTP بدون جلسة (POST بـ JSON-RPC) — يدعم إصدارات البروتوكول 2025-11-25 و2025-06-18 و2025-03-26 و2024-11-05.
- الأدوات: نفس أدوات مساعد Helpy (حوالي 90 أداة) — التطبيق بيشوف بس اللي المستخدم مسموح له بيه في شركته وباقته وتطبيقاته المركّبة.
- القراءة فورية. أي تغيير بيرجع معاينة فيها action_id ومبيتنفّذش؛ بعد موافقة المستخدم في المحادثة التطبيق يستدعي helpy_confirm_action. فيه كمان helpy_cancel_action وhelpy_undo_action (للتغييرات القابلة للعكس خلال دقايق).
- التغييرات اللي بتمسّ عدد كبير من العملاء محتاجة acknowledge_bulk=true بعد ما المستخدم يأكد العدد.
- search وfetch: بحث موحّد في العملاء والمحادثات ومركز المساعدة (متوافق مع Deep Research في ChatGPT).
- أوامر جاهزة (prompts) بتظهر كاختصارات في Claude وCursor:
| الأمر | بيعمل إيه |
|---|---|
| daily_briefing | أرقام اليوم، المحادثات المنتظرة، المهام والحجوزات — وخطة بالأولويات. |
| inbox_triage | المحادثات اللي مستنية رد: ملخص كل واحدة واقتراح رد. |
| follow_up_leads | العملاء الجدد أو اللي محدش كلمهم — مين نتابع وإزاي. |
| customer_360 | كل حاجة عن عميل: بياناته، محادثاته، مهامه وحجوزاته، والخطوة الجاية. |
| weekly_report | أداء آخر 7 أيام مقارنة بالأسبوع اللي قبله، وتوصيات. |
| launch_campaign | خطة حملة كاملة (صفحة، رسائل، متابعة) وتنفيذها خطوة بخطوة بموافقتك. |
قصر الأدوات على مجموعات: ضيف أسماء المجموعات للرابط مفصولة بفاصلة، مثلاً /api/mcp/crm,inbox,tasks. أدوات الحساب والمساعدة والموافقة موجودة دايماً.
| المجموعة | فيها |
|---|---|
| crm | العملاء والمراحل والملاحظات والجماهير |
| inbox | البحث في المحادثات وقراءتها والرد وتغيير حالتها |
| tasks | المهام وأعضاء الفريق |
| bookings | الحجوزات والأوقات المتاحة |
| pages | صفحات الهبوط وأكواد QR والكتالوجات والهوية |
| outreach | التسلسلات وقوالب واتساب والبث |
| automations | الأتمتة ووصفاتها |
| agents | الوكلاء الأذكياء وحملاتهم |
| calls | المكالمات وطلبات الاتصال ومسارات المكالمات |
| prospects | البحث عن عملاء محتملين وأبحاث الشركات |
| workspace | التقارير وتشخيص التطبيقات والفريق والإعدادات |
المصادقة
OAuth 2.1 (للتطبيقات اللي المستخدم بيربطها بنفسه):
| البند | القيمة |
|---|---|
| اكتشاف المورد (RFC 9728) | https://helpy.ai/.well-known/oauth-protected-resource/api/mcp |
| اكتشاف خادم التفويض (RFC 8414) | https://helpy.ai/.well-known/oauth-authorization-server |
| صفحة الموافقة | https://helpy.ai/oauth/authorize |
| التوكن | https://helpy.ai/api/oauth/token |
| تسجيل عميل ديناميكي (RFC 7591) | https://helpy.ai/api/oauth/register |
| الإلغاء (RFC 7009) | https://helpy.ai/api/oauth/revoke |
| الصلاحيات (scopes) | helpy:read للقراءة، وhelpy:write للتغييرات — والمستخدم يقدر يشيل التغييرات في شاشة الموافقة |
| الأمان | PKCE (S256) إلزامي، توكن الوصول ساعة، وتوكن التجديد 90 يوم بيتجدّد مع كل استخدام (ولو اتسرق واتستخدم تاني الاتصال بيتقفل)، وCIMD مدعوم |
مفاتيح API (للأنظمة والتشغيل الآلي): من Helpy ← الإعدادات ← ربط الذكاء الاصطناعي ← مفاتيح API. المفتاح بيظهر مرة واحدة، وبيشتغل مع خادم MCP والـ REST API. «اسمح بالتغييرات» تديله helpy:write.
Authorization: Bearer hlp_sk_YOUR_KEY
REST API v1
- العنوان الأساسي: https://helpy.ai/api/v1
- الرد دايماً { "data": ..., "meta"?: ... } والخطأ { "error": { "code", "message" } }.
- الصفحات بمؤشّر: meta.nextCursor ابعته كـ ?cursor= في الطلب التالي.
- النصوص المترجمة (أسماء المراحل والخدمات) بالعربي افتراضياً — ?locale=en أو Accept-Language: en للإنجليزي.
- كل حاجة خارج نطاق بيانات المستخدم بترجع 404 كأنها مش موجودة.
| الطلب | الصلاحية | الوصف |
|---|---|---|
| GET /me | — | المستخدم والشركة والصلاحيات الفعلية ونوع الاتصال |
| GET /leads | leads.view | العملاء: ?search= ?status= ?cursor= |
| POST /leads | leads.create | إضافة عميل (هاتف أو إيميل) بنفس تحقق الشاشة ومنع التكرار |
| GET /leads/{id} | leads.view | ملف العميل كامل |
| PATCH /leads/{id} | leads.status / pipeline.move / leads.assign | الحالة أو المرحلة أو قيمة الصفقة أو المسؤول |
| GET|POST /leads/{id}/notes | leads.view / leads.notes | الملاحظات |
| GET /leads/{id}/timeline | leads.view | سجل النشاط كامل |
| GET /pipeline/stages | pipeline.view | مراحل القمع |
| GET|POST /tasks | tasks.view / tasks.create | المهام: ?status=open|done ?scope=mine|all |
| GET|PATCH|DELETE /tasks/{id} | tasks.view / tasks.edit / tasks.delete | مهمة — done:true تنهيها |
| GET /conversations | inbox.view | المحادثات: ?scope= ?state= ?channel= ?q= |
| GET /conversations/{id} | inbox.view | المحادثة برسائلها |
| POST /conversations/{id}/messages | inbox.reply + صلاحية القناة | إرسال رد نصي (واتساب داخل نافذة 24 ساعة) |
| POST /conversations/{id}/state | inbox.state | فتح أو تأجيل أو إغلاق |
| GET|POST /bookings | bookings.view / bookings.create | حجوزات يوم ?date= أو حجز جديد |
| GET /bookings/options · /bookings/slots | bookings.view | الموارد والخدمات والأوقات المتاحة |
| POST /bookings/{id}/status | bookings.edit | confirm أو complete أو no_show |
| GET /team | team.view | أعضاء الفريق والأقسام |
إضافة عميل
curl -X POST https://helpy.ai/api/v1/leads \
-H "Authorization: Bearer hlp_sk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Sara Ahmed","phone":"+966501112233","email":"sara@example.com","tags":["expo"]}'مهمة متابعة على العميل
curl -X POST https://helpy.ai/api/v1/tasks \
-H "Authorization: Bearer hlp_sk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Call Sara","leadId":"LEAD_ID","dueAt":"2026-11-01T09:00:00Z","priority":"HIGH"}'الرد على محادثة
curl -X POST https://helpy.ai/api/v1/conversations/CONVERSATION_ID/messages \
-H "Authorization: Bearer hlp_sk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"body":"أهلاً سارة، عرض السعر في الطريق 👋"}'JavaScript
const res = await fetch("https://helpy.ai/api/v1/leads?search=Sara", {
headers: { Authorization: `Bearer ${process.env.HELPY_API_KEY}` },
});
const { data, error } = await res.json();Python
import os, requests
res = requests.get(
"https://helpy.ai/api/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HELPY_API_KEY']}"},
)
tasks = res.json()["data"]الأخطاء وحدود الاستخدام
| الحالة | الرمز | المعنى |
|---|---|---|
| 400 | invalid_body · invalid_* · nothing_to_update | الطلب ناقص أو قيمة غلط |
| 401 | unauthorized | توكن ناقص أو غلط أو اتلغى أو انتهى |
| 403 | forbidden · insufficient_scope · api_disabled | الصلاحية مش كفاية، أو المفتاح للقراءة بس، أو الربط مقفول للشركة |
| 404 | not_found | مش موجود أو خارج نطاق بيانات المستخدم |
| 409 | duplicate · whatsapp_window_closed · email_not_supported | بيتعارض مع الحالة الحالية |
| 422 | validation_failed | البيانات مش صالحة (هاتف أو إيميل) |
| 429 | rate_limited | طلبات كتير — استنّى Retry-After |
- REST: 240 طلب قراءة و60 طلب تغيير في الدقيقة لكل اتصال.
- MCP: 120 طلب في الدقيقة لكل اتصال.
- كل رد فيه Helpy-Api-Version وX-RateLimit-Limit.
الويبهوكات (Webhooks)
من Helpy ← التطبيقات ← Zapier/Webhooks أضف رابطك واختار الأحداث: lead.created وlead.updated. كل تسليم POST بـ JSON، وبيتعاد لحد 6 مرات لو رابطك مردّش بـ 2xx.
الجسم
{
"event": "lead.created",
"data": { "id": "…", "name": "Sara Ahmed", "phone": "+9665…", "status": "NEW", "createdAt": "…" },
"firedAt": "2026-10-28T12:00:00.000Z"
}اتأكد إن الطلب جاي من Helpy: الترويسة X-Webhook-Signature = sha256=HMAC-SHA256(الجسم الخام، سرّ الويبهوك).
Node.js
import { createHmac, timingSafeEqual } from "node:crypto";
function fromHelpy(rawBody, header, secret) {
const expected = "sha256=" + createHmac("sha256", secret).update(rawBody).digest("hex");
return header?.length === expected.length && timingSafeEqual(Buffer.from(header), Buffer.from(expected));
}الأمان والخصوصية
- كل طلب بيتحقق من المستخدم وصلاحياته ونطاق بياناته من قاعدة البيانات لحظتها — مفيش صلاحية بتتخزن في التوكن.
- التوكنات والمفاتيح بتتخزن بصمات SHA-256 بس، ومفيش أي سرّ بيتكتب في السجلات.
- المستخدم يفصل أي تطبيق أو مفتاح فوراً، والمالك يفصل اتصالات فريقه. «الخروج من كل الأجهزة» وتغيير كلمة السر بيفصلوا كل حاجة.
- الربط والفصل وإنشاء المفاتيح وكل تغيير بيتسجّل في سجل التدقيق.
- في MCP: رسايل العملاء والملاحظات بتتعامل كبيانات مش أوامر، والتغييرات محتاجة موافقة صريحة.
- فريق Helpy يقدر يقفل الربط على المنصة كلها أو لشركة واحدة فوراً.