İçeriğe geç
Özel alanlarMenü

Özel alanlar

3 dk okuma

Özel alanlar, bir kez tanımladığınız ve her konuşmada ya da kişide tuttuğunuz türlü değerlerdir: sipariş numarası, plan, ürün alanı. API’de, webhook’larda ve MCP’de geri gelirler; bir konuşma alanı da konuşma kapanmadan önce zorunlu kılınabilir.

1. Alan tanımlayın

Alanları sahipler ve yöneticiler ya da fields:manage yetkisi olan bir anahtar tanımlar:

curl -X POST https://support.example.com/v1/custom-fields \
  -H "Authorization: Bearer $YUVA_API_KEY" -H "Content-Type: application/json" \
  -d '{"object": "conversation", "key": "product_area", "name": "Product area",
       "type": "select", "options": ["Billing", "Login", "Other"], "required_on_close": true}'

Yanıt alandır, 201. object, key ve type sonradan değişmez.

Tür Değer
text 1 ile 1000 karakter arasında bir dize.
number Sonlu bir JSON sayısı.
date YYYY-MM-DD biçiminde bir dize.
select Alanın options değerlerinden biri.
checkbox true veya false.

2. Konuşmada değer ayarlayın

PATCH /v1/conversations/{conversationId} ve POST /v1/conversations/bulk, anahtara göre değerlerden oluşan bir nesne olan fields alır. Adını verdiğiniz anahtarlar ayarlanır, diğerleri kalır ve null birini temizler:

curl -X PATCH https://support.example.com/v1/conversations/$CONVERSATION \
  -H "Authorization: Bearer $YUVA_API_KEY" -H "Content-Type: application/json" \
  -d '{"fields": {"product_area": "Billing", "order_id": null}}'

Her anahtar bir konuşma alanı olmalı ve her değer türüne uymalıdır; aksi halde çağrı 400 field_invalid döner ve field anahtarı belirtir. Toplu istek, hiçbir şey değişmeden önce bütün olarak denetlenir. Bir konuşmayı okumak, konuşmaları listelemek, webhook’lar ve olay akışı fields gösterir (hiçbiri ayarlı değilse {}). Yalnızca fields değişirse conversation.updated gönderilir. Anahtarın conversations:write yetkisi olmalı.

Listeyi field.<key>=<value> ile filtreleyin:

curl -G https://support.example.com/v1/conversations \
  -H "Authorization: Bearer $YUVA_API_KEY" \
  --data-urlencode "field.product_area=Billing" --data-urlencode "field.seats=5"

Sayı sayı olarak karşılaştırılır, onay kutusu true veya false alır, geri kalanı metinle tam eşleşir. Birden çok anahtarın hepsi eşleşmelidir. Konuşma alanı olmayan bir anahtar, tekrarlanan bir anahtar ya da türe uymayan bir değer 400 field_invalid döner.

3. Kişiler

Bir kişi değerlerini attributes içinde tutar. Kişi alanı olan bir anahtar alana göre denetlenir; diğer anahtarlar serbest biçimli kalır.

Nerede Uymayan bir değer
/v1 (kişi oluşturma veya güncelleme, abonelik ekleme) 400 field_invalid, field anahtarı belirtir. null serbesttir ve değeri ayarsız bırakır.
Kimlik belirteci attrs Atılır; belirtecin geri kalanı kullanılır.
Liste içe aktarma sütunları CSV metni alanın türüne göre okunur (12, true); uymuyorsa atılır.

4. Kapatmak için alanı zorunlu kılın

required_on_close ile (yalnızca konuşma alanları), bir konuşmayı alanın değeri olmadan kapatmak 409 field_required döner ve field, position sırasına göre eksik olan ilkini belirtir. Aynı istekte ayarlanan değerler sayılır. Bu, PATCH ile kapatmada, toplu güncellemenin her konuşmasında (failed içinde field ile listelenir), makrolarda ve bir mesajın then değerinde, MCP’de set_status ve bulk_update için ve kapalı bir konuşmayı spam’den çıkarırken geçerlidir. Spam bu denetim olmadan kapatılır, zaten kapalı bir konuşma yeniden denetlenmez. Onay kutusu true veya false ile ayarlı sayılır.

5. Alanı değiştirin ya da silin

PATCH /v1/custom-fields/{customFieldId} name, options (liste değiştirilir), required_on_close ve position değerlerini değiştirir. DELETE alanı kaldırır.

Bir konuşma alanını silmek ya da bir select seçeneğini kaldırmak, bu değerleri konuşmalardan arka planda temizler ve değişen her konuşma conversation.updated gönderir. Temizlik bitene kadar aynı anahtarla alan oluşturmak 409 field_clearing döner; biraz sonra yeniden deneyin. Anahtarı ya da seçeneği yeniden tanımlamak temizliği durdurur. Bir kişi alanı silindiğinde kişi öznitelikleri korunur.

Başvuru

Uç nokta Kullanım
GET /v1/custom-fields Alanları listeler, isteğe bağlı ?object=conversation veya contact. {"items": [...]}; nesneye, position değerine ve oluşturma zamanına göre sıralı.
POST /v1/custom-fields Bir alan oluşturur.
GET, PATCH, DELETE /v1/custom-fields/{customFieldId} Bir alanı okur, değiştirir ya da siler.

Bir alanda id, object, key, name, type, options, required_on_close, position, created_at ve updated_at bulunur.

Öğe Sınır
key ^[a-z][a-z0-9_]{0,39}$, nesne başına benzersiz (409 field_taken).
name 1 ile 100 karakter.
options Yalnızca select: 1 ile 100 karakterlik 1 ile 100 farklı dize.
position 0 ile 10000.
Nesne başına alan 50 (403 field_limit).
Bir fields içindeki anahtar 50.
Yetki İzin verir
conversations:read veya contacts:read Alanları listeler ve okur.
fields:manage Alanları oluşturur, değiştirir ve siler. Yalnızca sahipler ve yöneticiler; gelen kutularıyla sınırlı anahtarlar bunu taşıyamaz ve başka yetkiye dahil değildir: adıyla verin. Temsilciler 403 forbidden alır.
conversations:write, contacts:write Değer yazar.

Bu sayfayı GitHub'da düzenleyin →