İçeriğe geç

Geliştiriciler

API ve SDK hızlı başlangıç

API anahtarı oluşturun, ClickFix REST API'sine ilk isteğinizi gönderin; yanıt yapısı, sayfalama, idempotency ve hız sınırları.

ClickFix REST API'si, kendi sistemlerinizden konuşma oluşturmanızı, not eklemenizi, kişileri güncellemenizi ve olaylara abone olmanızı sağlar. Tam uç nokta listesi, şemalar ve her dil için hazır istek örnekleri API başvurusunda yer alır; başvuru yalnızca herkese açık ve kararlı uç noktaları içerir. OpenAPI dosyası: public-api.yaml.

1. API anahtarı oluşturun

  1. Organizasyon → API ve otomasyonlar sayfasını açın.
  2. API anahtarları sekmesinde Yeni API anahtarı'na basın.
  3. Bir ad girin, yalnızca entegrasyonun ihtiyaç duyduğu Kapsamları seçin, isterseniz Dakikalık istek limiti ve Son geçerlilik tarihi belirleyin.
  4. Anahtar oluştur'a basın ve anahtarı hemen kopyalayın. Anahtar cf_sk_ ile başlar ve yalnızca bir kez gösterilir; ClickFix yalnızca özetini saklar.

Anahtar, onu oluşturan üyenin güncel yetkileriyle sınırlıdır. Üyenin yetkisi düşerse veya organizasyondan çıkarılırsa anahtar da aynı oranda kısıtlanır. İptal et ile bir anahtarı hemen geçersiz kılabilirsiniz.

API anahtarlarını yalnızca sunucunuzda kullanın. Tarayıcı veya mobil uygulama koduna asla koymayın.

Kapsamlar

Kapsamİzin verdiği
conversations:readKonuşmaları ve mesajları okuma
conversations:writeKonuşma oluşturma, güncelleme, mesaj ve not ekleme
contacts:readKişileri okuma
contacts:writeKişileri güncelleme
companies:readŞirketleri okuma
triggers:readTetikleyici olaylarını yoklama
webhooks:readWebhook aboneliklerini okuma
webhooks:writeWebhook aboneliği oluşturma, güncelleme ve silme
revenue:writeŞirket gelir verisi gönderme
health:writeMüşteri sağlığı (kullanım) sinyali gönderme
events:writeŞirket zaman çizelgesine ürün olayı gönderme

2. İlk isteğiniz

Temel adres:

https://api.getclickfix.com/v1/public-api

Her istekte anahtarı Authorization başlığıyla gönderin:

curl https://api.getclickfix.com/v1/public-api/contacts?limit=20 \
  -H "Authorization: Bearer cf_sk_..."

Yanıt yapısı

Tüm yanıtlar aynı zarfı kullanır:

{
  "success": true,
  "data": {},
  "meta": { "request_id": "..." }
}

Hata durumunda:

{
  "success": false,
  "error": { "code": "VALIDATION_ERROR", "message": "...", "details": [] },
  "meta": { "request_id": "..." }
}

Hata yönetimini error.code değerine göre yapın; mesaj metni değişebilir. Destek talebinde meta.request_id değerini paylaşın.

Sayfalama

Liste uç noktaları limit (varsayılan 20, en fazla 100) ve offset parametrelerini kabul eder. Kişi listesi ayrıca q ile arama destekler.

{
  "success": true,
  "data": { "items": [], "total": 0, "limit": 20, "offset": 0 }
}

Değişiklikleri sürekli izlemek için sayfalama yerine tetikleyici yoklama veya webhook'lar kullanın.

Yazma istekleri ve Idempotency-Key

GET dışındaki tüm isteklerde Idempotency-Key başlığı zorunludur. Her mantıksal işlem için benzersiz bir değer üretin ve tekrar denemede aynı değeri aynı gövdeyle gönderin. ClickFix tamamlanan yanıtı saklar ve aynı anahtarla gelen tekrar isteğe aynı yanıtı döner. Aynı anahtar farklı bir gövdeyle kullanılırsa 409 IDEMPOTENCY_CONFLICT döner.

Örnek: konuşma oluşturma

curl -X POST https://api.getclickfix.com/v1/public-api/conversations \
  -H "Authorization: Bearer cf_sk_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-42-support" \
  -d '{
    "contact_uuid": "KISI_UUID",
    "inbox_uuid": "KANAL_UUID",
    "subject": "Teslimat sorusu"
  }'

inbox_uuid etkin bir kanalınızın kimliğidir. Kişi ve kanal anahtarın organizasyonuna ait olmalıdır. Konuşma, anahtarı oluşturan üyeye atanır.

Örnek: iç not ekleme

curl -X POST https://api.getclickfix.com/v1/public-api/conversations/KONUSMA_UUID/messages \
  -H "Authorization: Bearer cf_sk_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 6f1c0e3a-note-1" \
  -d '{ "content": "Sipariş kargoya verildi.", "private": true, "client_id": "6f1c0e3a-0d0b-4a4e-9a51-3c8b7d2f1e90" }'

Uç noktalar

İşlemUç noktaKapsam
Konuşmaları listeleGET /conversationsconversations:read
Konuşma getir / güncelleGET / PATCH /conversations/{uuid}conversations:read / conversations:write
Konuşma oluşturPOST /conversationsconversations:write
Mesajları listele / mesaj veya not ekleGET / POST /conversations/{uuid}/messagesconversations:read / conversations:write
Kişileri listeleGET /contactscontacts:read
Kişiyi güncellePATCH /contacts/{uuid}contacts:write
Şirketleri listeleGET /companiescompanies:read
Tetikleyicileri yoklaGET /triggerstriggers:read
Webhook abonelikleriGET / POST /webhooks, PUT / DELETE /webhooks/{uuid}webhooks:read / webhooks:write
REST hook abone ol / ayrılPOST /subscriptions, DELETE /subscriptions/{uuid}webhooks:write
Şirket geliriPUT /company-revenuerevenue:write
Şirket kullanım sinyali (0-100)PUT /company-usagehealth:write
Şirket olayıPOST /company-eventsevents:write

Gövde alanları ve yanıt şemaları API başvurusunda yer alır.

Hız sınırları ve boyutlar

  • Her anahtarın dakikalık bir istek limiti vardır (varsayılan 120, 1-6000 arası ayarlanabilir).
  • Limit aşılırsa 429 RATE_LIMITED ve Retry-After başlığı döner; belirtilen süre kadar bekleyip tekrar deneyin.
  • İstek gövdesi en fazla 128 KB olabilir.
  • Doğrulama ve yetki hatalarında (400, 401, 403) isteği tekrar denemeyin; önce düzeltin.

SDK'lar

Go ve Node.js için sunucu SDK'ları ile React için başlıksız widget istemcisi GitHub'da kaynak olarak bulunur. SDK'lar henüz paket olarak yayımlanmadı. Yapılandırmada temel adres olarak https://api.getclickfix.com kullanın (sonuna /v1 eklemeyin).

SDK'lar kimlik doğrulama, sınırlı tekrar deneme, sayfalama ve webhook imza doğrulaması sağlar. Örneğin Node.js:

import { createClient } from "@clickfix/node";

const client = createClient({
  baseURL: "https://api.getclickfix.com",
  apiKey: process.env.CLICKFIX_API_KEY!,
});

await client.request(
  "/v1/public-api/conversations",
  "post",
  {
    contact_uuid: contactUUID,
    inbox_uuid: inboxUUID,
    subject: "Teslimat sorusu",
  },
  { idempotencyKey: "order-42-support" },
);

Sonraki adımlar