plazbot
Version:
Official Plazbot SDK for creating AI agents for WhatsApp, portals, and developers.
53 lines (52 loc) • 1.87 kB
TypeScript
/** Tipos de evento disponibles para defineWorker */
export type PlazbotEventType = 'message.received' | 'message.image.received' | 'message.audio.received' | 'message.document.received' | 'contact.created' | 'contact.existing' | 'contact.deleted' | 'contact.blocked' | 'contact.from.ad' | 'conversation.assigned' | 'conversation.resolved' | 'conversation.reopened';
/** Plataforma de origen del mensaje */
export type MessagePlatform = 'whatsapp' | 'telegram' | 'instagram' | 'webchat';
/** Tipo de contenido del mensaje */
export type MessageContentType = 'text' | 'image' | 'audio' | 'document' | 'video' | 'location' | 'sticker';
/** Contacto dentro de un evento */
export interface EventContact {
id: string;
name?: string;
phoneNumber?: string;
email?: string;
tags?: string[];
stage?: string;
assignedAgentId?: string;
assignedAgentName?: string;
variables?: Record<string, string>;
}
/** Mensaje dentro de un evento */
export interface EventMessage {
id: string;
content?: string;
contentUrl?: string;
contentType: MessageContentType;
platform: MessagePlatform;
direction: 'incoming' | 'outgoing';
timestamp: string;
metadata?: Record<string, unknown>;
}
/** Conversacion dentro de un evento */
export interface EventConversation {
contactId: string;
isSolved: boolean;
assignedAgentId?: string;
assignedMemberId?: string;
lastMessageAt?: string;
}
/** Datos del evento */
export interface PlazbotEventData {
contact?: EventContact;
message?: EventMessage;
conversation?: EventConversation;
/** Datos adicionales segun el tipo de evento */
metadata?: Record<string, unknown>;
}
/** Evento completo de Plazbot */
export interface PlazbotEvent {
type: PlazbotEventType;
workspaceId: string;
timestamp: string;
data: PlazbotEventData;
}