POS、OMS、ERPの統合
すでに実行しているシステム (POS、注文管理、ERP) を SocialHub ロイヤルティに接続します。 SAP、Dynamics 365、Manhattan Active Omni、IBM Sterling、またはアプリ内 Salesforce 用の マネージド コネクタ を構成します。または、同じ管理対象の v2 REST API を介して他のシステムを統合し、テナント キーで認証され、エンドポイントごとにスコープ設定され、呼び出しごとに監査されます。
1 つの API、3 つのシステム タイプ
以下のすべての統合は、Authorization: Bearer fl_live_… テナント キーを使用した HTTPS 経由の v2 REST API です。照合には読み取り専用キーを使用し、ポイントを付与したりクーポンを引き換えたりする場合にのみ書き込みスコープのキーを使用します。電子商取引プラットフォーム (Shopify、Amazon、TikTok Shop) の場合は、ネイティブ チャネル コネクタを優先します。このガイドは、ネイティブ チャネル コネクタを持たないシステム向けです。
管理されたコネクタ
5 つのエンタープライズ システムでは、統合をまったく作成しません。データと統合 で接続 (エンドポイント + 暗号化された認証情報) を構成し、検証して、予行演習を実行します。各コネクタは、ベンダーの注文、顧客、製品を正規化し、以下に記載されているのとまったく同じ API (同じスコープ、同じ冪等性、同じ管理されたパイプ) を介してそれらを配信します。それぞれに、どこまで検証されたかがラベル付けされています。
Salesforce — CRM / OMS
テストデータで検証済みREST + SOQL 経由の注文 / 返品注文 / アカウント連絡先 / 製品 2;クライアント認証情報 OAuth。
SAP S/4HANA — ERP
テストデータで検証済みOData A2X サービスを介した販売注文/ビジネス パートナー/製品マスター。 BTP OAuth。
Dynamics 365 — ERP / CRM
テストデータで検証済みデータバース (CE) 検証済み。財務と運営は足場を固められました。エントラ ID OAuth。
マンハッタン アクティブ オムニ — OMS
デザインパートナーの検証中注文/返品/顧客;テナントのインターフェイス マッピング ドキュメントに対して最終的なマッピング。
IBM スターリング — OMS
デザインパートナーの検証中getOrderList / REST API エンベロープを介して返されます。パイプラインに設定されたステータス コード。
テストデータで検証済み:ベンダーが公開した API に基づいてマッピングを構築・検証しており、初回導入時に実環境で検証・確認します。設計パートナーによる検証中:導入時に、お客様のテナントの連携ドキュメントに基づいてマッピングを確定します。ここに記載のないシステムは、以下の API を通じて直接連携します。
顧客データとマーケティングの強化
注文キャプチャとは別の機能: 顧客プロファイルがすでに存在するプラットフォームに接続し、Flash は送信時に各メールを受信者ごとの特性 (名前、ライフサイクル ステージ、カスタム属性) で強化します。これは電子メールによる読み取り専用の検索であり、メンバーを作成したり、PII を公開したりすることはありません。 [データと統合] で接続を設定すると、保存した瞬間に各接続がライブ認証情報に基づいてヘルスチェックされます。
CDP
Salesforce データ クラウド · セグメント · Adobe エクスペリエンス プラットフォーム
CRM
HubSpot · Microsoft Dynamics 365
マーケティング
Braze · Klaviyo · 反復可能
認証は各ベンダー独自のスキームです。API キー、秘密キー、または OAuth2 クライアント認証情報です (OAuth の場合、Flash は実行ごとに新しいアクセス トークンを取得するため、長期有効なベアラーは保存されません)。資格情報は保存時に暗号化され、再度表示されることはありません。
POS の統合
レジスターは 1 回の呼び出しで購入をロイヤルティ値に変換します。販売を注文として投稿すると、SocialHub が (externalId、電子メール、または memberId によって) メンバーを解決し、プログラム独自の獲得ルールに従ってポイントを付与します。必要に応じて、独自のキーでメンバーを検索または作成します。
販売時の特典(注文後)
// One call: post the sale as an order. SocialHub resolves the member, applies the
// program's earn rules (tier multiplier + daily cap) and records the order — you
// don't compute points. The member is resolved by memberId > externalId > email.
POST https://flash.socialhub.ai/api/v2/orders
Authorization: Bearer fl_live_…
Idempotency-Key: pos-90871 // safe retries — one sale never awards twice
Content-Type: application/json
{
"externalOrderId": "90871",
"customer": { "externalId": "POS-CUST-5512" }, // or { "email": "…" } / { "memberId": "…" }
"totalAmount": 120.00,
"storeId": "st_…"
}
// → 200 { "data": { "awarded": 6, "balance": 1820, "memberId": "mem_…" } }
// Not a member yet → { "awarded": 0, "reason": "not-a-member" } (never auto-created).メンバーを検索または作成する
// Look up a member by your own key or email (exact match), or create one:
GET https://flash.socialhub.ai/api/v2/members?externalId=POS-CUST-5512 // or ?email=ada@acme.com
// → 200 { "data": [ { "id": "mem_…", "externalId": "POS-CUST-5512", … } ], "total": 1 }
POST https://flash.socialhub.ai/api/v2/members // create/upsert (marketing consent stays OFF)
{ "email": "ada@acme.com", "fullName": "Ada Lovelace", "externalId": "POS-CUST-5512" }
// → 201 created / 200 existing (idempotent on externalId)レジでクーポンを引き換える
// Cashier scans the member's coupon code → mark it redeemed at the register.
POST https://flash.socialhub.ai/api/v2/coupons/{couponId}/redeem
Authorization: Bearer fl_live_…
// → 200 redeemed
// → 404 coupon not found / already redeemed (treat as "do not honor")GET /members/{id}/points、/tier、および /coupons を使用してメンバーの残高、ティア、クーポンを読み取り、レジで提示します。
注文管理の統合
ネイティブ コネクタ (Shopify、Amazon、TikTok Shop) を備えた e コマース プラットフォームの場合は、コネクタをオンにすると完了です。他の注文管理システムの場合は、注文イベントを注文 API に投稿します。プログラム ルールに従って自動特典を取り込み、比例してクロー ポイントを返金します。 OMS が呼び出しを実行します (受信 Webhook は必要ありません)。
注文は獲得します。返金クローバック
// On Shopify / Amazon / TikTok Shop? Use the NATIVE channel connectors (Settings →
// Channels). For any OTHER OMS, your system calls these on its own order events.
//
// order paid / fulfilled → ingest (auto-awards by the program's earn rules):
POST https://flash.socialhub.ai/api/v2/orders
Idempotency-Key: SO-44821
{ "externalOrderId": "SO-44821", "customer": { "email": "ada@acme.com" }, "totalAmount": 240.00 }
// → 200 { "data": { "awarded": 12, "memberId": "mem_…" } }
// Same id + a DIFFERENT amount → 409 ORDER_CONFLICT (orders are immutable).
// order returned / refunded → proportional points claw-back, idempotent per refund:
POST https://flash.socialhub.ai/api/v2/orders/SO-44821/refund
{ "refundId": "re_1", "reason": "returned 1 item", "amount": 80.00 } // omit amount = full
// → 200 { "data": { "clawedBack": 4, "balance": 1816 } }
// Backfill / bulk: POST /orders/batch (≤100, 207 Multi-Status, per-item results).まだ会員ではありませんか? 摂取による報酬獲得数:0 / reason:not-a-member(自動作成はされません)。POSTで登録してください。 /members まず、注文を収益化したいとき。
ERPとマスターデータの統合
ロイヤルティを記録システムと両方向で一致させます。ストアとメンバーのマスターをプッシュし (externalId による冪等 upsert)、その後、?updatedSince= で段階的に調整するため、各同期は変更されたもののみをプルします。
ストアマスターをプッシュします
// Push your store master to SocialHub (upsert by your ERP store code):
POST https://flash.socialhub.ai/api/v2/stores
{ "name": "Downtown Flagship", "externalId": "ERP-STORE-018", "city": "New York" }
// → 201 created / 200 updated (idempotent on externalId)
// PUT /api/v2/stores/{id} updates a known store. GET to reconcile / pull ids.メンバーをプッシュし、段階的に調整する
// Push the member master (idempotent upsert by your externalId; consent OFF unless
// you explicitly opt in). Nightly full re-push is safe — existing members update.
POST https://flash.socialhub.ai/api/v2/members/batch // ≤100 per call, 207 Multi-Status
{ "members": [ { "email": "ada@acme.com", "fullName": "Ada Lovelace", "externalId": "ERP-7741" } ] }
// Incremental reconcile — only what changed since your last sync:
GET https://flash.socialhub.ai/api/v2/members?updatedSince=2026-06-26T00:00:00Z&limit=200
GET https://flash.socialhub.ai/api/v2/orders?updatedSince=2026-06-26T00:00:00Z // orders too
// For governed business metrics (GMV, redemption, active members) into BI, query the
// semantic layer over MCP (metrics:read) instead of aggregating raw rows yourself.製品カタログをプッシュする (PIM)
// Push your product catalog (idempotent upsert by your own external_id). One
// endpoint takes brands, categories, products, variants and inventory together.
POST https://flash.socialhub.ai/api/v2/catalog/import
{ "source": "erp",
"brands": [ { "externalId": "B-AURELIA", "name": "Aurelia" } ],
"categories": [ { "externalId": "C-RINGS", "name": "Rings" } ],
"products": [ { "externalId": "P-9001", "title": "Solitaire Ring",
"brandExternalId": "B-AURELIA", "categoryExternalId": "C-RINGS",
"descriptionHtml": "<p>18k…</p>",
"content": [ { "externalId": "P-9001-spec", "contentType": "spec",
"body": "1.0ct, 18k white gold, GIA" } ] } ],
"variants": [ { "externalId": "V-9001-7", "productExternalId": "P-9001",
"sku": "AUR-RING-7", "price": 4200 } ],
"inventory": [ { "variantSku": "AUR-RING-7", "locationRef": "WH-1", "available": 12 } ] }
// → 200 with per-entity {inserted,updated} + errors[] (a bad row never aborts the batch).
// On Shopify? Products map in automatically — images + rich descriptions included.
// Read back: GET /api/v2/products · /products/{id} · /categories · /brandsバッチ ≤100/コール (207 マルチステータス、項目ごとの結果)。キーごとのレート制限を尊重し、オフピーク時に完全な再同期を実行します。カタログのインポートは外部マスターで行われます。SocialHub が製品を ERP に書き戻すことはありません。
認証、スコープ、安全性
テナントスコープのキー
すべての呼び出しには、1 つのチームにバインドされた fl_live_ キーが含まれます。キーがテナントを越えることはありません。統合ごとに個別のキーを作成して、他のキーに触れずに 1 つのキーを回転できるようにします。
プリセットの読み取りと書き込み
調整ジョブは読み取り専用キーを使用します。ポイントを付与したりクーポンを引き換えたりする POS/OMS パスにのみ書き込みスコープを与えます (システムごとの最小権限)。
冪等性キー
書き込み時に Idempotency-Key ヘッダーを送信します (注文には独自の externalOrderId も含まれます)。呼び出しを再試行すると、元の結果が再生されます。ペイロードが異なる同じキーは拒否されます。1 つの販売で 2 回獲得されることはありません。
デフォルトで監査される
すべての API 呼び出しはログに記録され、API キー → 最近のアクティビティに表示されるため、統合の書き込みは常にキーまで追跡できます。
完全なエンドポイント リファレンス: REST API · クイック スタート · MCP (BI へのメトリクス)