Seguimiento
El follow-up cubre el segundo turno (y posteriores) dentro de una misma conversación: el usuario pregunta "¿por qué me recomiendas la Fox?", "¿qué diferencia hay con la otra?", y el agente responde con una explicación detallada referenciando productos concretos.
Tipos.
Cómo funciona
- El usuario hace una nueva pregunta dentro del mismo
conversationId. - El backend identifica que es un seguimiento (no una nueva búsqueda) y devuelve
followUp: FollowUpResponseenSearchResponse. - El widget renderiza con
InlineFollowUp.
Estructura
interface FollowUpResponse {
question: string // pregunta del usuario
answer: string // explicación del agente
referencedProducts: FollowUpProduct[]
recommendation: string // veredicto final
}
interface FollowUpProduct {
productId: string
name: string
price: number
salePrice?: number
currency?: string
imageUrl: string
url: string
inStock?: boolean
rating?: number
reviewCount?: number
brands?: string[]
badge?: 'BESTSELLER' | 'TRENDING' | 'TOP_RATED'
highlights: string[] // 2-3 highlights máx
verdict: string // veredicto contextual del producto
externalId?: string
}
.
- Bloque principal con
answerformateada. - Lista colapsable de
referencedProductscon cada uno mostrando highlights + verdict. - CTA final "Mostrar productos" / "Ocultar productos" (
followUp.showProducts/hideProducts). - Footer con
recommendationdestacada.
Estado de la conversación
El widget mantiene el conversationId recibido en la primera respuesta y lo reenvía en peticiones subsiguientes. Si el usuario cierra el widget y lo reabre en la misma sesión del navegador, el conversationId se preserva (en sessionStorage). En cambio, al cambiar de pestaña / SPA reload, se inicia una conversación nueva.
i18n
followUp.aiResponse, followUp.referencedProducts, followUp.recommendation, followUp.showProducts, followUp.hideProducts, followUp.viewProduct en