POS、OMS 和 ERP 集成
将您现有的系统(销售点系统、订单管理系统和企业资源计划系统)与 SocialHub 会员忠诚度系统连接起来。配置一个 管理连接器 为了 SAPDynamics 365、Manhattan Active Omni、IBM Sterling 或 Salesforce 应用内集成——或通过同一受控系统集成任何其他系统 v2 REST API使用租户密钥进行身份验证,按端点进行范围限定,并在每次调用时进行审计。
一个API,三种系统类型
以下所有集成均基于 HTTPS 协议,使用 v2 REST API 版本,并带有 Authorization: Bearer fl_live_… 租户密钥。使用只读密钥进行对账,仅在奖励积分或兑换优惠券时使用写入范围密钥。对于电子商务平台(Shopify、亚马逊、TikTok Shop),建议使用原生渠道连接器——本指南适用于没有原生渠道连接器的系统。
托管连接器
对于五个企业系统,您根本不需要编写集成 - 在数据和集成中配置连接(端点+加密凭据),对其进行验证,然后运行试运行。每个连接器都会标准化供应商的订单、客户和产品,并通过下面记录的完全相同的 API 来实现它们 — 相同的范围、相同的幂等性、相同的受管管道。每个都标有其验证程度。
Salesforce — CRM / OMS
通过测试样例验证通过 REST + SOQL 订购/退货/账户联系人/产品2;客户端凭证 OAuth。
SAP S/4HANA — ERP
通过测试样例验证通过 OData A2X 服务获取销售订单/业务伙伴/产品主数据;BTP OAuth。
Dynamics 365 — ERP / CRM
通过测试样例验证Dataverse (CE) 已验证;财务和运营搭建。 Entra ID OAuth。
Manhattan Active Omni — OMS
在设计合作伙伴验证中订单/退货/客户;映射关系根据您租户的接口映射文档最终确定。
IBM Sterling — OMS
在设计合作伙伴验证中getOrderList / 通过 REST API 信封返回;配置到您的管道的状态代码。
通过测试样例验证:已依据厂商公开的 API 构建并验证映射,首次部署时再在真实环境中验证确认。设计合作伙伴验证中:在接入期间依据你所在租户的集成文档最终确定映射。此处未列出的系统,可直接通过下方 API 集成。
客户数据与营销增强
与订单捕获不同的功能:连接已存在客户资料的平台,并且 Flash 在发送时使用每个收件人的特征(名称、生命周期阶段、自定义属性)丰富每封电子邮件。它是通过电子邮件进行的只读查找 - 它永远不会创建成员或暴露 PII。在数据和集成中配置连接,每个连接都会在您保存时根据您的实时凭据进行运行状况检查。
CDP
Salesforce 数据云 · 细分 · Adobe 体验平台
CRM
HubSpot · Microsoft Dynamics 365
市场营销
Braze · Klaviyo · 可迭代式
身份验证采用各供应商自身的方案 — 可以是 API 密钥、私钥或 OAuth2 客户端凭据(对于 OAuth 凭据,Flash 每次运行都会获取新的访问令牌,因此不会存储长期有效的持有者)。凭据在静态存储时会进行加密,并且永远不会再次显示。
销售点集成
收银机只需一次调用即可将购买转化为会员积分:将销售记录发布为订单,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),将其打开即可完成。对于任何其他订单管理系统,将您的订单事件发布到订单 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 进行幂等更新插入),然后使用 ?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 系统。
授权、范围和安全性
租户级密钥
每次通话都包含一个绑定到特定团队的 fl_live_ 密钥。密钥不会跨租户使用;请为每个集成创建单独的密钥,以便您可以轮换使用其中一个密钥而不会影响其他密钥。
读取与写入预设
调节作业使用只读密钥。仅将写入范围授予奖励积分或兑换优惠券的 POS/OMS 路径 - 每个系统的最小权限。
幂等键
写入时发送幂等键标头(订单也带有自己的 externalOrderId)。重试调用会重放原始结果;相同的键但不同的有效负载会被拒绝——一次销售绝不会获得两次奖励。
默认审核
每次 API 调用都会被记录,并可在 API 密钥 → 最近活动 下查看,因此集成的写入操作始终可追溯到密钥。
完整端点参考:REST API · 快速入门 · MCP(指标导入 BI)