Pergunta
Por que meu carrossel dinâmico para meu agente de IA avançada não carrega?
Resposta
Esse erro pode ocorrer mesmo quando tudo estiver configurado corretamente. Se o carrossel dinâmico não carregar intermitentemente, isso pode ser devido à integração da API não retornando uma matriz formatada adequadamente que o carrossel pode ler.
Este bloco espera um parâmetro do tipo "matriz". No entanto, alguns pontos de extremidade da API nem sempre retornam uma matriz, especialmente quando apenas um produto é encontrado. Em vez de envolver um único item em uma matriz, a resposta pode retornar apenas o próprio item. Sem uma matriz na carga, o carrossel não carregará.
Estes são os sintomas desse comportamento:
Uma resposta de erro técnico é observada dos registros de conversas, embora não haja muitas dicas sobre qual é o erro.
Inspecionar a aba Rede nas Ferramentas do desenvolvedor do navegador revela que a matriz de carrossel é retornada vazia:
Para corrigir esse problema, atualize a consulta JSONata na integração da API para lidar com respostas que não são de matriz e retornar uma estrutura que o carrossel pode processar.
Para ilustrar, veja um exemplo de caso:
data.payload.items.{
"title": title,
"description": description,
"imageURL": imageURL
}Para evitar esse problema, aplique a solução a seguir, encerrando o objeto data.payload:
($items := data.payload.items; $exists($items[0]) ? $items : [$items])
Isso garante que o carrossel funcione corretamente, mesmo quando apenas um único resultado é retornado.
Quando um ponto de extremidade retorna apenas um produto em vez de uma matriz, o parâmetro "produtos" não é exibido na resposta:
O objeto data não está retornando uma matriz, e das configurações de integração da API, podemos ver que o teste não consegue recuperar dados porque espera um parâmetro de products, que não é retornado quando apenas um item é encontrado.
O objeto data não retorna uma matriz e o teste de integração da API falha porque espera um parameter de products que não é incluído quando apenas um único item é retornado.
Para resolver esse problema, use o exemplo a seguir:
($data := data; $exists($data.products) ? $data.products[[0..2]] : [$data]).{
"title": title,
"description": $length(description) 128 ? $substring(description, 0, 125) & "..." : description,
"thumbnail": thumbnail,
"id": id
}
Para mais informações, consulte os seguintes artigos:
Aviso sobre a tradução: este artigo foi traduzido por um software de tradução automática para oferecer a você uma compreensão básica do conteúdo. Medidas razoáveis foram tomadas para fornecer uma tradução precisa, no entanto, a Zendesk não garante a precisão da tradução.
Em caso de dúvidas relacionadas à precisão das informações contidas no artigo traduzido, consulte a versão oficial do artigo em inglês.