שירותי אינטגרציה של Salesforce למובייל

שילוב Salesforce באפליקציה ניידת נתקל פעמים רבות במגבלות של SDK סטנדרטיים ובמורכבויות הגדרה. אנחנו בונים פתרונות גמישים על REST API ו-OAuth 2.0, ומבטיחים סנכרון נתונים אמין ועדכונים בזמן אמת. הצוות שלנו מספק פרויקטים סוהריים—מבדיקת היתכנות ועד תמיכה שוטפת—בהתאמה מלאה לדרישות חנות האפליקציות.

פיתוח ותמיכה בכל סוגי היישומים הניידים:

יישומים ניידים למידע ובידור
אפליקציות חדשות, משחקים, מדריכים, קטלוגים מקוונים, אפליקציות מזג אוויר, אפליקציות כושר ובריאות, אפליקציות נסיעות, אפליקציות חינוכיות, רשתות חברתיות ומסנג'רים, חידונים, בלוגים ופודקאסטים, פורומים, אגרגטורים
יישומים ניידים למסחר אלקטרוני
חנויות מקוונות, אפליקציות B2B, מרקטפלייסים, בורסות מקוונות, שירותי קאשבק, בורסות, פלטפורמות דרופשיפינג, תוכניות נאמנות, משלוחי מזון ומוצרים, מערכות תשלום.
יישומים ניידים לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, ניהול פרויקטים, כלים לצוותי מכירות, ניהול פיננסי, ניהול ייצור, ניהול לוגיסטיקה ומשלוחים, ניהול משאבי אנוש, מערכות ניטור נתונים
יישומים ניידים לשירותים אלקטרוניים
פלטפורמות מודעות מסווגות, בתי ספר מקוונים, בתי קולנוע מקוונים, פלטפורמות שירות אלקטרוניות, פלטפורמות קאשבק, אירוח וידאו, פורטלים נושאיים, פלטפורמות הזמנות ותזמון מקוונות, פלטפורמות מסחר מקוונות

אלה הם רק חלק מסוגי היישומים הניידים שאנו עובדים איתם, ולכל אחד מהם עשויים להיות מאפיינים ופונקציונליות ספציפיים משלו, המותאמים לצרכים ולמטרות הספציפיות של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
שירותי אינטגרציה של Salesforce למובייל
בינוני
~1-2 שבועות

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

שילוב Salesforce עם אפליקציית מובייל

אתה מפתח אפליקציית מובייל לצוות מכירות שצריכה לסנכרן לידים, אנשי קשר, הזדמנויות ופניות עם Salesforce. הגישה הסטנדרטית דרך Salesforce Mobile SDK מוסיפה 15+ מגה-בייט לגודל האפליקציה וקושרת אותך ל-SDK, מה שלא תמיד נוח. אנו מציעים אינטגרציה גמישה: מלקוח REST קל משקל ועד סנכרון מלא באמצעות Platform Events לעדכונים בזמן אמת. לצוות שלנו יש ניסיון של 5+ שנים בפיתוח מובייל ואינטגרציית CRM — סיפקנו 20+ פרויקטים כאלה במפתח מלא.

Salesforce היא פלטפורמת CRM בוגרת עם REST API מתועד היטב (developer.salesforce.com) וכמה SDKים למובייל. בניגוד ל-1C או Bitrix24, יש בה פחות מגבלות API בלתי צפויות, אבל יותר מושגים ללמוד: Connected App, זרימות OAuth 2.0, SOQL, SOSL, Apex REST ו-Platform Events. אנו מבטיחים שהאינטגרציה תעמוד בהנחיות App Store Connect ו-Google Play Console.

איך להגדיר Connected App ו-OAuth 2.0 לאפליקציית מובייל?

הכל מתחיל ביצירת Connected App בהגדרות Salesforce: App Manager ← New Connected App. ציין Callback URL (קישור עמוק של האפליקציה), אפשר היקפי OAuth: api, refresh_token offline_access, AppAuth.

האפליקציה למובייל משתמשת ב-OAuth 2.0 Authorization Code Flow או JWT Bearer Flow לתקשורת בין שרתים. להקשר משתמש, אנו משתמשים ב-Authorization Code. אנו מסתמכים על ספריות מוכחות: AppAuth לאנדרואיד ו-ASWebAuthenticationSession ל-iOS.

באנדרואיד עם AppAuth:

val serviceConfig = AuthorizationServiceConfiguration(
    Uri.parse("https://login.salesforce.com/services/oauth2/authorize"),
    Uri.parse("https://login.salesforce.com/services/oauth2/token")
)
val request = AuthorizationRequest.Builder(
    serviceConfig,
    clientId,
    ResponseTypeValues.CODE,
    Uri.parse("myapp://oauth/callback")
).setScope("api refresh_token offline_access").build()
authService.performAuthorizationRequest(request, pendingIntent)

לאחר החלפת הקוד בטוקן, אנו שומרים את val serviceConfig = AuthorizationServiceConfiguration( Uri.parse("https://login.salesforce.com/services/oauth2/authorize"), Uri.parse("https://login.salesforce.com/services/oauth2/token") ) val request = AuthorizationRequest.Builder( serviceConfig, clientId, ResponseTypeValues.CODE, Uri.parse("myapp://oauth/callback") ).setScope("api refresh_token offline_access").build() authService.performAuthorizationRequest(request, pendingIntent) , access_token ו-refresh_token — כתובת ה-URL הבסיסית לכל קריאות ה-API (לכל ארגון Salesforce יש תת-דומיין משלו).

REST API ו-SOQL: איך לאחזר נתונים ביעילות?

REST API הוא הממשק הראשי. כתובת URL בסיסית: instance_url. בחר את גרסת ה-API בהתאם לגרסת ה-API המינימלית של Salesforce שהלקוח שלך תומך בה.

בקשת SOQL (Salesforce Object Query Language):

GET /services/data/v60.0/query/?
  q=SELECT+Id,Name,Amount,StageName,CloseDate,Account.Name
  +FROM+Opportunity
  +WHERE+OwnerId='{userId}'+AND+IsClosed=false
  +ORDER+BY+CloseDate+ASC+LIMIT+50

SOQL דומה ל-SQL אבל עם מגבלות: אין {instance_url}/services/data/v60.0/ במובן הרגיל; אובייקטים קשורים דרך שאילתות יחסים (GET /services/data/v60.0/query/? q=SELECT+Id,Name,Amount,StageName,CloseDate,Account.Name +FROM+Opportunity +WHERE+OwnerId='{userId}'+AND+IsClosed=false +ORDER+BY+CloseDate+ASC+LIMIT+50 ). המקסימום של JOIN הוא 2000. עבור מערכי נתונים גדולים, השתמש ב-Account.Name עם LIMIT מהתשובה.

יצירת רשומה: queryMore עם גוף JSON. עדכון: nextRecordsUrl. שים לב: Salesforce משתמשת ב-POST /services/data/v60.0/sobjects/Opportunity/, לא ב-PATCH /services/data/v60.0/sobjects/Opportunity/{id} לעדכונים.

למה להשתמש ב-Platform Events לעדכונים בזמן אמת?

Salesforce Platform Events הוא מנגנון פרסום/הרשמה. השרת מפרסם אירוע (PATCH), לקוחות מקבלים אותו דרך CometD (פרוטוקול Bayeux, polling ארוך).

מידע נוסף על CometD ויישום

במובייל — Salesforce Mobile SDK או יישום CometD מותאם אישית. ה-Mobile SDK כולל לקוח PUT ו-OpportunityUpdated__e מוכן, אבל ה-SDK כבד — 15+ מגה-בייט, מה שיכול להיות קריטי לחלק מהפרויקטים.

חלופה קלה יותר: לקוח CometD מותאם אישית על OkHttp:

val cometdClient = BayeuxClient(
    "${instanceUrl}/cometd/60.0",
    LongPollingTransport.create(null, okHttpClient)
)
cometdClient.handshake()
cometdClient.getChannel("/event/OpportunityUpdated__e")
    .subscribe { message ->
        val payload = message.dataAsMap
        handleOpportunityUpdate(payload)
    }

כאשר הזדמנות מתעדכנת ב-Salesforce → Platform Event → CometD → לקוח המובייל מעדכן את המסך. זמן השהיה: 1-3 שניות.

עבור לקוח אחד, הפחתנו את זמן השהיית הסנכרון מ-5 שניות לפחות משנייה אחת באמצעות Platform Events ולקוח CometD מותאם אישית, תוך שמירה על גודל APK מינימלי.

השוואת גישות אינטגרציה

קריטריון Salesforce Mobile SDK אינטגרציה מותאמת אישית
OAuth מובנה AppAuth / מותאם אישית
לא מקוון SmartStore (SQLCipher) Room / Core Data
Push מובנה FCM/APNs ישירות
גודל +15 מגה-בייט מינימלי
גמישות מוגבל על ידי SDK מלא
זרימת OAuth מקרה שימוש נתמך במובייל
Authorization Code הקשר משתמש, דורש דפדפן כן (AppAuth, ASWebAuthenticationSession)
JWT Bearer בין שרתים (ללא משתמש) לא
Client Credentials סנכרון רקע לא מומלץ

איך להעלות קבצים ל-Salesforce מאפליקציית מובייל?

קבצים ב-Salesforce הם SFRestAPI ו-StreamingAPI. העלאת קובץ מאפליקציית מובייל:

POST /services/data/v60.0/sobjects/ContentVersion/
Content-Type: multipart/form-data

{
  "Title": "Фото клиента",
  "PathOnClient": "photo.jpg",
  "FirstPublishLocationId": "{opportunityId}"
}
+ binary data

val cometdClient = BayeuxClient( "${instanceUrl}/cometd/60.0", LongPollingTransport.create(null, okHttpClient) ) cometdClient.handshake() cometdClient.getChannel("/event/OpportunityUpdated__e") .subscribe { message -> val payload = message.dataAsMap handleOpportunityUpdate(payload) } הוא האובייקט שאליו הקובץ מצורף. מגבלה: קובץ אחד לכל בקשה. עבור קבצים מרובים, השתמש בבקשות רציפות או ב-Salesforce Bulk API.

מה כלול בעבודת האינטגרציה

  1. ניתוח מבנה ה-CRM הנוכחי ודרישות הסנכרון.
  2. הגדרת Connected App וזרימות OAuth (Authorization Code / JWT Bearer).
  3. פיתוח לקוח REST עם מטמון וטיפול בשגיאות.
  4. שילוב Platform Events להודעות בזמן אמת.
  5. בדיקות על ארגוני Salesforce בסביבת sandbox וייצור.
  6. תיעוד API והוראות פריסה.
  7. תמיכה לאחר השקה (חודש אחד).

לוחות זמנים ותמחור

אינטגרציה בסיסית (OAuth, שאילתות SOQL, CRUD עבור Opportunity/Contact): 1-2 שבועות. Platform Events, מטמון לא מקוון, הודעות push: תוספת של 1-2 שבועות. אפליקציה מלאה עם Salesforce Mobile SDK, SmartStore וסנכרון: 1.5-2 חודשים. העלות מחושבת באופן אישי. שלח לנו בקשה להערכת מחיר.