MyBusiness CRM
תיעוד API
v1.0 · Parse REST

ממשק API לניהול תיירות

תיעוד מלא לאינטגרציה עם מערכת MyBusiness CRM. כל הנקודות קצה מבוססות Parse REST API. ניתן להשתמש בממשק זה לאוטומציה של קבלת לידים, יצירת הזמנות, ניהול טיולים ומעקב אחר קמפיינים.

Parse REST API HTTPS בלבד JSON Request & Response UTF-8 Encoding Rate Limit: 1000 req/min
מבוא
סקירה כללית
כל הקריאות מבוצעות כנגד שרת Parse ייעודי לחברת התיירות. כל בקשה חייבת לכלול שני כותרות אימות. כל הנתונים מוחזרים בפורמט JSON. תאריכים בפורמט ISO 8601. מחירים במטבע שקל ישראלי.
i
סביבת Sandbox: לבדיקות ניתן להשתמש ב Application-Id לסביבת הפיתוח. לא יעדכן נתונים ראשיים. כל שאר ה headers זהים.
!
Master Key: מפתח ה Master Key מעניק גישה מלאה לכל הנתונים ללא הגבלה. אל תחשפו אותו בצד הלקוח, בלוגים, או ב version control.
אימות
Authentication
כל בקשת API דורשת שני headers חובה. ה Application-Id מזהה את הטנאנט שלכם. ה Master-Key מעניק הרשאות כתיבה מלאות.
Base URL https://api-3.mbapps.co.il/parse/
Application ID Header
X-Parse-Application-Id
מזהה ייחודי של הטנאנט. חובה בכל בקשה.
Master Key Header
X-Parse-Master-Key
מפתח גישה מלאה. שמרו בצד השרת בלבד.
# All requests require both headers
curl -X GET \
  'https://api-3.mbapps.co.il/parse/classes/Trips' \
  -H 'X-Parse-Application-Id: YOUR_APP_ID' \
  -H 'X-Parse-Master-Key: YOUR_MASTER_KEY' \
  -H 'Content-Type: application/json'
const BASE_URL = 'https://api-3.mbapps.co.il/parse';

const headers = {
  'X-Parse-Application-Id': 'YOUR_APP_ID',
  'X-Parse-Master-Key': 'YOUR_MASTER_KEY',
  'Content-Type': 'application/json'
};

// Reuse headers object in all requests below
רשימה מהירה
כל נקודות הקצה

Endpoints Reference

5 endpoints · 3 webhooks
שיטה נתיב תיאור
POST /parse/classes/Accounts הכנסת ליד חדש
POST /parse/classes/Bookings יצירת הזמנה
GET /parse/classes/Trips רשימת טיולים עם סינון
POST /parse/classes/CampaignCosts תיעוד עלות קמפיין
GET /parse/classes/Trips/:objectId פרטי טיול בודד
לידים ולקוחות
הכנסת ליד חדש
יוצר רשומת Account חדשה במערכת. ניתן להשתמש בנקודת קצה זו מטפסי פנייה, פייסבוק Lead Ads, Google Ads, ואתר החברה. לאחר יצירה מוצלחת ה CRM מפעיל אוטומטית את זרימת הטיפול בלידים.
POST /parse/classes/Accounts יצירת ליד חדש
פרמטרים חובה
שדה סוג חובה תיאור
FirstName String חובה שם פרטי של הליד
LastName String חובה שם משפחה
Phone String חובה מספר טלפון, פורמט ישראלי: 05XXXXXXXX
Email String אופציונלי כתובת דוא"ל
Source String אופציונלי מקור הליד: facebook, google, website, referral, organic
InterestedTrip String אופציונלי שם הטיול שהליד ביקש מידע עליו
TravelerCount Number אופציונלי מספר הנוסעים המתוכנן
curl -X POST \
  'https://api-3.mbapps.co.il/parse/classes/Accounts' \
  -H 'X-Parse-Application-Id: YOUR_APP_ID' \
  -H 'X-Parse-Master-Key: YOUR_MASTER_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "FirstName": "דנה",
    "LastName": "לוי",
    "Phone": "0521234567",
    "Email": "dana.levi@gmail.com",
    "Source": "facebook",
    "InterestedTrip": "חופשה באיים היוונים",
    "TravelerCount": 4
  }'
const response = await fetch(
  `${BASE_URL}/classes/Accounts`,
  {
    method: 'POST',
    headers,
    body: JSON.stringify({
      FirstName: 'דנה',
      LastName: 'לוי',
      Phone: '0521234567',
      Email: 'dana.levi@gmail.com',
      Source: 'facebook',
      InterestedTrip: 'חופשה באיים היוונים',
      TravelerCount: 4
    })
  }
);

const data = await response.json();
console.log('Lead created:', data.objectId);
תגובה לדוגמה
201 Created
{
  "objectId": "aX9kTmPq72",
  "createdAt": "2026-03-25T09:14:22.441Z"
}
הזמנות
יצירת הזמנה
יוצר הזמנה חדשה ומקשר אותה לליד קיים ולטיול. מעדכן אוטומטית את מונה ה CurrentBookings בטיול הרלוונטי. לאחר יצירה מוצלחת נשלחת הודעת WhatsApp אישור ללקוח.
i
Pointer objects: שדות AccountId ו TripId הם Pointer לאובייקטים ב Parse. יש להשתמש בפורמט {"__type":"Pointer","className":"Accounts","objectId":"..."}
POST /parse/classes/Bookings יצירת הזמנה חדשה
פרמטרים
שדה סוג חובה תיאור
AccountId Pointer חובה מצביע לרשומת Accounts (ה objectId של הליד)
TripId Pointer חובה מצביע לרשומת Trips (ה objectId של הטיול)
Status String חובה סטטוס: pending, confirmed, cancelled, completed
Adults Number חובה מספר מבוגרים
Children Number אופציונלי מספר ילדים, ברירת מחדל 0
TotalPrice Number חובה סכום כולל בשקלים
Notes String אופציונלי הערות חופשיות: בקשות מיוחדות, דיאטה, נגישות
curl -X POST \
  'https://api-3.mbapps.co.il/parse/classes/Bookings' \
  -H 'X-Parse-Application-Id: YOUR_APP_ID' \
  -H 'X-Parse-Master-Key: YOUR_MASTER_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "AccountId": {
      "__type": "Pointer",
      "className": "Accounts",
      "objectId": "aX9kTmPq72"
    },
    "TripId": {
      "__type": "Pointer",
      "className": "Trips",
      "objectId": "tYr3WxQm19"
    },
    "Status": "confirmed",
    "Adults": 2,
    "Children": 2,
    "TotalPrice": 35600,
    "Notes": "ילד אחד דורש עריסה"
  }'
const response = await fetch(
  `${BASE_URL}/classes/Bookings`,
  {
    method: 'POST',
    headers,
    body: JSON.stringify({
      AccountId: {
        __type: 'Pointer',
        className: 'Accounts',
        objectId: 'aX9kTmPq72'
      },
      TripId: {
        __type: 'Pointer',
        className: 'Trips',
        objectId: 'tYr3WxQm19'
      },
      Status: 'confirmed',
      Adults: 2,
      Children: 2,
      TotalPrice: 35600,
      Notes: 'ילד אחד דורש עריסה'
    })
  }
);

const booking = await response.json();
console.log('Booking ref:', booking.objectId);
תגובה לדוגמה
201 Created
{
  "objectId": "bK2mNpLr44",
  "createdAt": "2026-03-25T10:05:18.113Z"
}
טיולים
רשימת טיולים
מחזיר את רשימת הטיולים הזמינים. תומך בסינון לפי סטטוס, מותג וסוג. ניתן לשלב מספר תנאים ב where object. שימושי לאכלוס דרופדאון בטפסים, בניית קטלוג באתר, ובדיקת תפוסה בזמן אמת.
GET /parse/classes/Trips קבלת טיולים עם סינון
Query Parameters
פרמטר סוג חובה תיאור
where JSON אופציונלי אובייקט סינון JSON בפורמט URL-encoded
limit Number אופציונלי מספר תוצאות מקסימלי, ברירת מחדל 100
skip Number אופציונלי דילוג על N תוצאות ראשונות לצורך pagination
order String אופציונלי מיון: DepartureDate, PricePerPerson. הוסף - לסדר יורד
ערכי Where Filter
שדה ערכים אפשריים דוגמה
Status טיוטה, פעיל, מלא, סגור, בוטל {"Status":"פעיל"}
Brand Dreams, Solo {"Brand":"Dreams"}
Type משפחות, זוגות, סולו, קבוצות, עסקי, הרפתקאות {"Type":"משפחות"}
# Get all active Dreams-brand trips sorted by departure date
curl -X GET \
  'https://api-3.mbapps.co.il/parse/classes/Trips?where=%7B%22Status%22%3A%22%D7%A4%D7%A2%D7%99%D7%9C%22%2C%22Brand%22%3A%22Dreams%22%7D&order=DepartureDate' \
  -H 'X-Parse-Application-Id: YOUR_APP_ID' \
  -H 'X-Parse-Master-Key: YOUR_MASTER_KEY'

# Decoded where: {"Status":"פעיל","Brand":"Dreams"}
const where = encodeURIComponent(JSON.stringify({
  Status: 'פעיל',
  Brand: 'Dreams'
}));

const response = await fetch(
  `${BASE_URL}/classes/Trips?where=${where}&order=DepartureDate&limit=20`,
  { headers }
);

const { results } = await response.json();
console.log(`Found ${results.length} trips`);

// Filter trips with available spots
const available = results.filter(
  t => t.CurrentBookings < t.MaxCapacity
);
תגובה לדוגמה
200 OK
{
  "results": [
    {
      "objectId": "tYr3WxQm19",
      "Name": "חופשה באיים היוונים",
      "Destination": "יוון, סנטוריני וקרפאטוס",
      "DepartureDate": "2026-06-15T00:00:00.000Z",
      "PricePerPerson": 8900,
      "MaxCapacity": 40,
      "CurrentBookings": 28,
      "Status": "פעיל",
      "Brand": "Dreams",
      "Type": "משפחות",
      "TripCode": "GR-FAM-0615",
      "createdAt": "2026-02-01T08:00:00.000Z"
    }
  ]
}
קמפיינים
תיעוד עלות קמפיין
מוסיף רשומת הוצאה לקמפיין פרסומי. המערכת מחשבת אוטומטית CPL ו ROI על בסיס ההוצאות ומספר הלידים שהגיעו מאותו קמפיין. ניתן לייבא נתוני הוצאות מ Meta Ads ו Google Ads באמצעות API זה.
POST /parse/classes/CampaignCosts הוספת עלות לקמפיין
פרמטרים
שדה סוג חובה תיאור
CampaignId Pointer חובה מצביע לרשומת Campaigns
Amount Number חובה סכום ההוצאה בשקלים
Date Date חובה תאריך ההוצאה בפורמט ISO 8601
Channel String חובה ערוץ: facebook, google, instagram, tiktok, email, sms
curl -X POST \
  'https://api-3.mbapps.co.il/parse/classes/CampaignCosts' \
  -H 'X-Parse-Application-Id: YOUR_APP_ID' \
  -H 'X-Parse-Master-Key: YOUR_MASTER_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "CampaignId": {
      "__type": "Pointer",
      "className": "Campaigns",
      "objectId": "cMp7RwVz31"
    },
    "Amount": 1850,
    "Date": {
      "__type": "Date",
      "iso": "2026-03-25T00:00:00.000Z"
    },
    "Channel": "facebook"
  }'
const response = await fetch(
  `${BASE_URL}/classes/CampaignCosts`,
  {
    method: 'POST',
    headers,
    body: JSON.stringify({
      CampaignId: {
        __type: 'Pointer',
        className: 'Campaigns',
        objectId: 'cMp7RwVz31'
      },
      Amount: 1850,
      Date: {
        __type: 'Date',
        iso: new Date().toISOString()
      },
      Channel: 'facebook'
    })
  }
);

const cost = await response.json();
console.log('Cost recorded:', cost.objectId);
תגובה לדוגמה
201 Created
{
  "objectId": "cCt5XpMn08",
  "createdAt": "2026-03-25T11:42:07.882Z"
}
Webhooks
אירועים ו Webhook Payloads
המערכת שולחת HTTP POST לכתובת ה webhook שלכם בזמן אמת עם התרחשות אירועים. כל payload כולל את שם האירוע, חותמת זמן, ונתוני האובייקט הרלוונטי. יש לאשר קבלת ה webhook עם תגובת 200 OK תוך 5 שניות.
i
אימות Webhook: כל בקשה נחתמת עם header X-MB-Signature המכיל HMAC-SHA256 של ה payload. בדקו את החתימה לפני עיבוד הבקשה.
new_lead WEBHOOK ליד חדש נוצר במערכת
{
  "event": "new_lead",
  "timestamp": "2026-03-25T09:14:22.441Z",
  "data": {
    "objectId": "aX9kTmPq72",
    "FirstName": "דנה",
    "LastName": "לוי",
    "Phone": "0521234567",
    "Email": "dana.levi@gmail.com",
    "Source": "facebook",
    "InterestedTrip": "חופשה באיים היוונים",
    "TravelerCount": 4,
    "createdAt": "2026-03-25T09:14:22.441Z"
  }
}
booking_confirmed WEBHOOK הזמנה אושרה ושולמה
{
  "event": "booking_confirmed",
  "timestamp": "2026-03-25T10:05:18.113Z",
  "data": {
    "objectId": "bK2mNpLr44",
    "Status": "confirmed",
    "Adults": 2,
    "Children": 2,
    "TotalPrice": 35600,
    "Notes": "ילד אחד דורש עריסה",
    "Account": {
      "objectId": "aX9kTmPq72",
      "FirstName": "דנה",
      "LastName": "לוי",
      "Phone": "0521234567"
    },
    "Trip": {
      "objectId": "tYr3WxQm19",
      "Name": "חופשה באיים היוונים",
      "DepartureDate": "2026-06-15T00:00:00.000Z"
    },
    "createdAt": "2026-03-25T10:05:18.113Z"
  }
}
trip_full WEBHOOK טיול הגיע לתפוסה מקסימלית
{
  "event": "trip_full",
  "timestamp": "2026-03-25T14:31:55.007Z",
  "data": {
    "objectId": "tYr3WxQm19",
    "Name": "חופשה באיים היוונים",
    "Destination": "יוון, סנטוריני וקרפאטוס",
    "DepartureDate": "2026-06-15T00:00:00.000Z",
    "MaxCapacity": 40,
    "CurrentBookings": 40,
    "Status": "מלא",
    "Brand": "Dreams",
    "waitlist_count": 0
  }
}