Ana içeriğe atla
Connect360 konuşma işlemleri için SDK’yi kullanın.

Bir Konuşma Alın veya Oluşturun

const conversation = await plato.v1.connect.getOrCreateConversation.mutate({
  type: "DIRECT",
  customer: {
    externalId: "website_user_123",
    name: "Jane Customer",
    email: "[email protected]",
  },
  channelIdentifier: "example.com",
  metadata: {
    source: "website-chat",
  },
});
Bunlardan en az birinin sağlanması gerekir:
  • customerId
  • customer
  • memberIds

Giriş

{
  name?: string | null;
  type?: "DIRECT" | "GROUP";
  customerId?: string | null;
  customer?: {
    id?: string | null;
    externalId?: string | null;
    name?: string | null;
    email?: string | null;
    phone?: string | null;
    image?: string | null;
    metadata?: Record<string, unknown> | null;
  } | null;
  memberIds?: string[] | null;
  channelIds?: string[] | null;
  channelIdentifier?: string | null;
  metadata?: Record<string, unknown> | null;
}

Davranışı Yeniden Kullanma

Eşleşen bir müşterinin zaten üst düzey bir görüşmesi varsa, Plato mevcut konuşmayı döndürür. Eşleşen bir konuşma olmadığında Plato bir konuşma oluşturur. API anahtarının çalışma alanı üyesi otomatik olarak katılımcı olarak dahil edilir.

Alt Konuşma Oluştur

const thread = await plato.v1.connect.createSubConversation.mutate({
  parentId: conversation.id,
  name: "Order #1042",
  type: "GROUP",
  customer: {
    externalId: "website_user_123",
  },
  channelIdentifier: "example.com",
});
channelIds ve channelIdentifier atlandığında alt konuşmalar üst kanalları devralır.

Bir Konuşmayı Güncelle

const updated = await plato.v1.connect.updateConversation.mutate({
  id: conversation.id,
  name: "VIP customer support",
  metadata: {
    priority: "high",
  },
});
Şunları güncelleyebilirsiniz:
  • name
  • metadata
  • parentId
Meta veriler mevcut meta veri nesnesiyle birleştirilir.

Bir Konuşmayı Sil

await plato.v1.connect.deleteConversation.mutate({
  id: conversation.id,
});
API anahtarının connect360:conversation:delete’ye ihtiyacı var. Yalnızca entegrasyon konuşma yaşam döngüsünün sahibi olduğunda silin.

Alt Konuşmaları Listeleme

const page = await plato.v1.connect.listSubConversations.query({
  parentId: conversation.id,
  limit: 30,
});
Cevap:
{
  items: [
    {
      id: "conversation_child_1",
      name: "Order #1042",
      parentId: "conversation_parent_1",
      messages: [],
      participants: [],
      _count: {
        children: 0,
        messages: 3
      }
    }
  ],
  nextCursor: 30
}
Sonraki sayfayı getirmek için:
const nextPage = await plato.v1.connect.listSubConversations.query({
  parentId: conversation.id,
  cursor: page.nextCursor,
  limit: 30,
});