Integrasi POS, OMS & ERP
Hubungkan sistem yang sudah Anda jalankan — sistem point-of-sale, manajemen pesanan, dan ERP — ke dalam program loyalitas SocialHub. Konfigurasikan konektor terkelola untuk SAP, Dynamics 365, Manhattan Active Omni, IBM Sterling, atau Salesforce di dalam aplikasi — atau integrasikan sistem lain apa pun melalui v2 REST API yang sama, diautentikasi dengan kunci penyewa, dicakup per titik akhir, dan diaudit pada setiap panggilan.
Satu API, tiga jenis sistem
Setiap integrasi di bawah ini adalah v2 REST API melalui HTTPS dengan kunci penyewa Authorization: Bearer fl_live_…. Gunakan kunci hanya baca untuk rekonsiliasi dan kunci lingkup tulis hanya di tempat Anda memberikan poin atau menukarkan kupon. Untuk platform e-commerce (Shopify, Amazon, TikTok Shop) lebih disukai konektor saluran asli — panduan ini untuk sistem tanpa konektor tersebut.
Titik penjualan
Ubah pembelian di toko menjadi nilai loyalitas: berikan poin pada penjualan dan tukarkan kupon di kasir.
OMSManajemen pesanan
Biarkan pesanan online & omnichannel menghasilkan poin — dan pengembalian dana dikembalikan — yang dikaitkan dengan ID pesanan Anda.
ERPPerencanaan sumber daya perusahaan
Dorong master toko & anggota Anda (upsert berdasarkan externalId Anda) dan rekonsiliasi secara bertahap dengan sistem pencatatan Anda.
Konektor terkelola
Untuk lima sistem perusahaan, Anda tidak perlu menulis integrasi sama sekali — konfigurasikan koneksi di Data & Integrasi (endpoint + kredensial terenkripsi), verifikasi, dan jalankan uji coba. Setiap konektor menormalkan pesanan, pelanggan, dan produk vendor dan mengirimkannya melalui API yang sama seperti yang didokumentasikan di bawah ini — cakupan yang sama, idempotensi yang sama, saluran yang diatur yang sama. Masing-masing diberi label dengan seberapa jauh validasinya.
Salesforce — CRM / OMS
Divalidasi dengan data ujiPesanan / Pengembalian Pesanan / Kontak Akun / Produk2 melalui REST + SOQL; kredensial klien OAuth.
SAP S/4HANA — ERP
Divalidasi dengan data ujiPesanan penjualan / mitra bisnis / master produk melalui layanan OData A2X; BTP OAuth.
Dynamics 365 — ERP / CRM
Divalidasi dengan data ujiDataverse (CE) tervalidasi; Keuangan & Operasi terstruktur. Entra ID OAuth.
Manhattan Active Omni — OMS
Dalam validasi mitra desainPesanan / pengembalian / pelanggan; pemetaan diselesaikan terhadap Dokumen Pemetaan Antarmuka penyewa Anda.
IBM Sterling — OMS
Dalam validasi mitra desaingetOrderList / pengembalian melalui amplop REST API; kode status dikonfigurasi ke pipeline Anda.
Divalidasi dengan data uji: pemetaan telah dibuat dan diuji berdasarkan API yang diterbitkan penyedia; validasi dan konfirmasi di lingkungan nyata dilakukan saat penerapan pertama Anda. Dalam validasi bersama mitra desain: pemetaan diselesaikan selama proses awal berdasarkan dokumen integrasi tenant Anda. Sistem yang tidak tercantum di sini diintegrasikan langsung melalui API di bawah.
Pengayaan data pelanggan & pemasaran
Kemampuan terpisah dari pengambilan pesanan: hubungkan platform tempat profil pelanggan Anda sudah ada, dan Flash memperkaya setiap email pada saat pengiriman dengan karakteristik per penerima (nama, tahap siklus hidup, atribut khusus). Ini adalah pencarian hanya baca berdasarkan email — tidak pernah membuat anggota atau mengekspos PII. Konfigurasikan koneksi di Data & Integrasi, dan setiap koneksi diperiksa kesehatannya terhadap kredensial langsung Anda saat Anda menyimpannya.
CDP
Salesforce Data Cloud · Segment · Adobe Platform Pengalaman
CRM
HubSpot · Microsoft Dynamics 365
Pemasaran
Braze · Klaviyo · Dapat diulang
Otentikasi adalah skema masing-masing vendor — kunci API, kunci pribadi, atau kredensial klien OAuth2 (untuk yang OAuth, Flash mengambil token akses baru per eksekusi, sehingga tidak ada bearer yang berumur panjang yang disimpan). Kredensial dienkripsi saat disimpan dan tidak pernah ditampilkan lagi.
Integrasi titik penjualan
Mesin kasir mengubah pembelian menjadi nilai loyalitas dalam satu panggilan: posting penjualan sebagai pesanan dan SocialHub menyelesaikan anggota (berdasarkan externalId, email, atau memberId Anda) dan memberikan poin sesuai aturan perolehan program. Cari atau buat anggota dengan kunci Anda sendiri saat Anda membutuhkannya.
Penghargaan atas penjualan (setelah pesanan)
// 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).Temukan atau buat anggota
// 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)Tukarkan kupon di kasir
// 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")Baca kembali saldo, tingkatan, dan kupon anggota dengan GET /members/{id}/points, /tier dan /coupons untuk menampilkannya di kasir.
Integrasi manajemen pesanan
Untuk platform e-commerce dengan konektor bawaan (Shopify, Amazon, TikTok Shop), aktifkan dan selesai. Untuk sistem manajemen pesanan lainnya, posting peristiwa pesanan Anda ke Pesanan API — masukkan penghargaan otomatis berdasarkan aturan program, dan pengembalian dana akan mengambil kembali poin secara proporsional. OMS Anda yang mengendalikan panggilan (tidak perlu webhook masuk).
Pesanan menghasilkan keuntungan; pengembalian dana mengurangi keuntungan
// 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).Belum menjadi anggota? Ingest mengembalikan penghargaan: 0 / reason:not-a-member (tidak pernah dibuat secara otomatis). Daftarkan mereka dengan POST /members Pertama, saat Anda ingin mendapatkan penghasilan dari pesanan tersebut.
Integrasi ERP & Data Master
Jaga agar loyalitas selaras dengan sistem pencatatan Anda di kedua arah: dorong master toko dan anggota Anda (upsert idempoten berdasarkan externalId Anda), lalu rekonsiliasi secara bertahap dengan ?updatedSince= sehingga setiap sinkronisasi hanya menarik apa yang berubah.
Dorong master toko
// 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.Dorong anggota & rekonsiliasi secara bertahap
// 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.Dorong katalog produk (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 · /brandsBatch ≤100/panggilan (207 Multi-Status, hasil per item); hormati batas laju per kunci dan jalankan sinkronisasi ulang penuh di luar jam sibuk. Impor katalog dikelola secara eksternal — SocialHub tidak pernah menulis produk kembali ke ERP Anda.
Otorisasi, cakupan & keamanan
Kunci lingkup penyewa
Setiap panggilan membawa kunci fl_live_ yang terikat pada satu tim. Kunci tidak pernah melintasi penyewa; buat kunci terpisah per integrasi sehingga Anda dapat memutar satu tanpa menyentuh yang lain.
Preset baca vs tulis
Pekerjaan rekonsiliasi menggunakan kunci baca saja. Berikan cakupan tulis hanya ke jalur POS/OMS yang memberikan poin atau menukarkan kupon — hak akses paling sedikit per sistem.
Kunci Idempotensi
Kirim header Idempotency-Key pada penulisan (pesanan juga membawa externalOrderId-nya sendiri). Panggilan yang dicoba ulang akan memutar ulang hasil aslinya; kunci yang sama dengan muatan yang berbeda akan ditolak — satu penjualan tidak akan pernah memberikan hadiah dua kali.
Diaudit secara default
Setiap panggilan API dicatat dan terlihat di bawah Kunci API → aktivitas terbaru, sehingga penulisan integrasi selalu dapat dilacak ke kunci.
Referensi titik akhir lengkap: REST API · Mulai Cepat · MCP (metrik ke BI)
Mengintegrasikan sistem backend?
Bicaralah dengan seorang insinyur tentang POS/OMS/ERP Anda, identitas anggota di kasir, penanganan pengembalian, atau pekerjaan rekonsiliasi.
Bicara dengan bagian teknik