SocialHub.AI
资源 · 开发者中心

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 每次运行都会获取新的访问令牌,因此不会存储长期有效的持有者)。凭据在静态存储时会进行加密,并且永远不会再次显示。

POS

销售点集成

收银机只需一次调用即可将购买转化为会员积分:将销售记录发布为订单,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 读取会员的余额、级别和优惠券,以便在结账时显示。

OMS

订单管理集成

对于具有本机连接器的电子商务平台(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

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)

集成后端系统?

与工程师探讨您的POS/OMS/ERP系统、收银台会员身份验证、退货处理或对账工作。

与工程交谈