API למפתחים
ה-API הציבורי של oToK מאפשר לחבר כל מערכת לסביבת העבודה: ניהול אנשי קשר, תגיות, קבוצות, קמפיינים ושליחת תבניות WhatsApp. בנוסף, Webhooks נכנסים מפעילים אוטומציות, ופיקסל המעקב מזרים פעילות מהאתר שלכם.
ערכות SDK, רפרנס מלא וקוד מקור
תיעוד המפתחים המלא מתארח בכתובת https://slikkdev.github.io/otok-api/ — כולל רפרנס Redoc מלא לכל נקודות הקצה בכתובת https://slikkdev.github.io/otok-api/reference/ — והקוד פתוח ב-GitHub: https://github.com/slikkdev/otok-api. מעדיפים ספרייה מוכנה? יש ערכות SDK רשמיות:
- Node.js — מתקינים עם npm install @otok/node (דורש Node 18 ומעלה, כולל טיפוסי TypeScript, אפס תלויות).
- Python — מתקינים עם pip install otok (דורש Python 3.9 ומעלה, עם טיפוסים מלאים, אפס תלויות).
אימות (Authentication)
יוצרים מפתח API בהגדרות ← מפתחים. המפתח מתחיל ב-otok_live_ ומוצג פעם אחת בלבד — שומרים אותו במקום בטוח. כל בקשה נשלחת עם כותרת Authorization:
curl https://app.otok.io/api/v1/contacts \
-H "Authorization: Bearer otok_live_XXXXXXXXXXXX" \
-H "Content-Type: application/json"💡 כתובת הבסיס: https://app.otok.io/api — וכל המפתחות תחומים לסביבת העבודה שבה נוצרו. תיעוד אינטראקטיבי מלא (Swagger) זמין בכתובת /api/v1/docs.
כל נקודות הקצה
| שיטה | נתיב | תיאור |
|---|---|---|
| GET | /v1/contacts | רשימת אנשי קשר (סינון, מיון, חיפוש, עימוד) |
| GET | /v1/contacts/:id | שליפת איש קשר |
| POST | /v1/contacts | יצירה או עדכון של איש קשר (Upsert לפי טלפון/אימייל) |
| PATCH | /v1/contacts/:id | עדכון איש קשר |
| GET | /v1/tags · /v1/tags/:id | רשימת תגיות / שליפת תגית |
| POST | /v1/tags | יצירת תגית |
| PATCH | /v1/tags/:id | עדכון תגית |
| GET | /v1/contact-groups · /v1/contact-groups/:id | רשימת קבוצות / שליפת קבוצה |
| POST | /v1/contact-groups | יצירת קבוצה |
| PATCH | /v1/contact-groups/:id | עדכון קבוצה |
| GET | /v1/campaigns · /v1/campaigns/:id | רשימת קמפיינים / שליפת קמפיין |
| POST | /v1/campaigns | יצירת קמפיין |
| PATCH | /v1/campaigns/:id | עדכון קמפיין |
| POST | /v1/campaigns/:id/execute | הפעלת קמפיין מתוזמן |
| GET | /v1/templates · /v1/templates/:id | רשימת תבניות / שליפת תבנית |
| POST | /v1/templates/:id/send | שליחת תבנית למספר טלפון |
רשימות: סינון, מיון ועימוד
כל נקודות הקצה מסוג רשימה תומכות באותם פרמטרים: filter (אובייקט JSON), sort (שם שדה, מקף בתחילתו ליורד), limit (ברירת מחדל 50), offset ו-search.
GET /api/v1/contacts?filter={"lifecycle_stage":"customer"}&sort=-created_date&limit=50&offset=0יצירת איש קשר (Upsert)
POST /v1/contacts מבצע Upsert: אם קיים איש קשר עם אותו טלפון (מנורמל ל-E.164) — או אותו אימייל כשאין טלפון — הוא מתעדכן; אחרת נוצר חדש. תגיות וקבוצות נשלחות לפי שם, וחסרות נוצרות אוטומטית.
curl -X POST https://app.otok.io/api/v1/contacts \
-H "Authorization: Bearer otok_live_XXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-d '{
"phone": "+972501234567",
"name": "Dana Levi",
"email": "[email protected]",
"tags": ["vip"],
"groups": ["Newsletter"]
}'שליחת תבנית WhatsApp
POST /v1/templates/:id/send שולח תבנית מאושרת למספר טלפון. איש הקשר והשיחה נוצרים אוטומטית אם אינם קיימים, וההודעה מתועדת בתיבת ההודעות.
curl -X POST https://app.otok.io/api/v1/templates/TEMPLATE_ID/send \
-H "Authorization: Bearer otok_live_XXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-d '{ "to": "+972501234567", "body_variables": ["Dana"] }'Webhooks נכנסים — הפעלת אוטומציות
כל אוטומציה עם טריגר Webhook מקבלת כתובת ייחודית. שולחים אליה POST עם JSON מכל מערכת — טופס, חנות, CRM — והזרימה רצה עם הנתונים שנשלחו, זמינים כמשתנים.
- הכתובת מוצגת בעורך האוטומציה על צומת הטריגר.
- אפשר לשלוח בקשת בדיקה (Test) ולראות את התוצאה ביומן האוטומציות.
פיקסל מעקב לאתר
מטמיעים את קטע הפיקסל באתר שלכם (הקוד והטוקן בהגדרות המעקב) — ופעילות הגולשים מקושרת לאנשי הקשר וזמינה כטריגרים ותנאים באוטומציות.