B2B Worker
B2B Worker Docs

testcrm ↔ app konuşması

Bu sayfa, örnek CRM (testcrm) ile B2B Worker paneli/API’sinin nasıl konuştuğunu anlatır. Kendi CRM’iniz aynı sözleşmeyi uygular.

Paket seçerek minimum uğraşla bağlanmak için: CRM Integration App (bind-kit → project → validate → fire).

Akış özeti

CRM                         app.b2bworker.com                    CRM
 |                                  |                             |
 |  POST /api/v1/events/            |                             |
 |  Authorization: Bearer b2b_…     |                             |
 |  Idempotency-Key                 |                             |
 |  { event, workflow, payload }    |                             |
 |--------------------------------->|                             |
 |  201 + execution_id (varsa)      |                             |
 |<---------------------------------|                             |
 |                                  |  workflow çalışır           |
 |                                  |  WhatsApp / partner         |
 |                                  |  push_event / outbound      |
 |                                  |---------------------------->|
 |                                  |  POST /api/hooks/b2b        |
 |                                  |  X-Signature: sha256=…      |
 |                                  |  { event, data }            |

1) CRM → app: event tetikleme

  • URL: POST /api/v1/events/
  • Auth: API key — Auth & API Keys
  • Body alanları:
    • event — örn. FLIGHT_CHANGED (katalogda tanımlı inbound event)
    • workflow — workflow key (isim değil). Panelde Akışlar listesinde mono satır, örn. flight-change
    • payload — şablon/akışın beklediği yollar (örn. patient.phone)

Önemli: 201 Created yalnızca event kaydının kabul edildiğini gösterir. WhatsApp’ın telefona düşmesi ayrı bir adımdır (execution + Meta delivery).

Yanlış workflow key (ör. var olmayan medical-tourism) → event kaydı oluşur, execution başlamaz, mesaj gitmez.

2) app içinde: workflow

Aktif (status=active) workflow, workflow alanındaki key ile eşleşirse execution açılır.

Örnek flight-change:

  1. send_template → flight_changed_notify, alıcı patient.phone
  2. push_event → örn. EXECUTION_SUCCESS (CRM’e outbound)
  3. finish

Akıllı şablon (send_smart_template) partner yanıtı bekler; zaman aşımı varsayılan 15 dk (timeout_seconds=900). Partner kaydındaki süre önceliklidir — Akışlar.

3) app → CRM: webhook

Panel Webhooks (veya API) ile abonelik:

AlanÖrnek
urlhttps://crm.b2bworker.com/api/hooks/b2b
secretCRM ile paylaşılmış whsec_…
event_types["EXECUTION_SUCCESS"] veya boş = hepsi

İmza ve gövde: Webhooks.

testcrm’de secret üst seviye webhookSecret alanına yazılmalıdır (yalnızca settings altında olursa 401 alınır).

Yaygın hatalar

BelirtiMuhtemel neden
201 ama WhatsApp yokYanlış workflow key; execution yok
Execution completed, telefonda yokMeta delivery failed (ör. 131047 — 24s pencere dışı serbest metin)
CRM inbound 401Webhook secret uyuşmuyor / yanlış yerde
Graph …/v23.0//messagesWABA phone_number_id boş

Meta 24 saat kuralı (kısa)

send_template node’u şu an serbest text gönderebilir. Alıcı son 24 saatte yazmadıysa Meta teslimatı düşürebilir. Partner’a günler sonra iş bildirmek için Meta’da onaylı template gerekir.

testcrm checklist

  1. Ayarlar: baseUrl = https://app.b2bworker.com, API key dolu
  2. Events: event=FLIGHT_CHANGED, workflow=flight-change, payload’da patient.phone
  3. app Webhooks: testcrm URL + aynı secret
  4. app Akışlar: flight-change aktif; Connectors WABA bağlı