Primeiro, se você ainda não fez isso, configure uma conexão de API em sua conta do Klaus. Você só precisará do token da API dessa etapa para continuar.

Agora, você pode ajudar o Klaus a descobrir nossas conversas, que podem ser avaliadas no app por você e por seus colegas de equipe. Precisamos fazer uma solicitação POST para https://pub.klausapp.com/v1/tickets e configurar o token da API como um token de portador (Bearer) no cabeçalho Authorization.

Confira aqui o conteúdo inteiro

{  "id": "string",  "subject": "string",  "description": "string",  "created": "string",  "updated": "string",  "assigneeEmail": "string",  "assigneeName": "string",  "ticketFields": [    {      "id": "string",      "label": "string",      "values": [        {          "label": "string",          "value": "string"        }      ]    }  ],  "comments": [    {      "authorEmail": "string",      "authorIsNotClient": true,      "authorName": "string",      "comment": "string",      "created": "string",      "id": "string",      "updated": "string"    }  ]}

Vamos dar uma olhada nas propriedades:
- id é um identificador exclusivo, de preferência o mesmo que consta em seu sistema (posteriormente, você pode atualizar uma conversa ou um comentário usando esse identificador)
- subject, description e assigneeName são cadeias de caracteres simples exibidas para o usuário
- created é um carimbo de data e hora no formato yyyy-mm-ddThh:mm:ss
- updated é um campo opcional e pode ser preenchido posteriormente para melhorar os recursos de filtragem no Klaus (o formato esperado é o mesmo do campo created)
- assigneeEmail precisa corresponder ao e-mail de um usuário interno no Klaus para que a conversa em si possa ser avaliada. Como alternativa, a propriedade authorEmail de um comentário precisa corresponder ao e-mail de um usuário interno (para que um comentário específico possa ser avaliado)
- ticketFields também são opcionais e podem ser de grande ajuda para filtrar conversas específicas
- comments representa as respostas em uma conversa. Você pode enviá-las em Markdown ou HTML no campo comment da resposta. Se você definir authorIsNotClient como true, o authorEmail será adicionado como usuário externo (como quando você importa usuários), para que seja possível conectá-lo ou convidá-lo.
- Os comentários com authorIsNotClient também são deslocados para o lado direito do fluxo da conversa para proporcionar uma leitura melhor

Agora que já sabemos de tudo isso, vamos montar uma conversa de exemplo e enviá-la ao Klaus com curl

Nossa conversa de exemplo:

{  "data": [    {      "id": "c4t-syst3m-335",      "subject": "My fish bowl looks fishy",      "description": "Hi, I just received my fish bowl. But it is fishless, which makes the situation quite fishy",      "created": "2020-04-16T11:24:51",      "updated": "2020-04-17T13:48:26",      "assigneeEmail": "janete@exemplo.com",      "assigneeName": "Jane",      "ticketFields": [        {          "id": "channel",          "label": "Channel",          "values": [            {              "label": "Chat",              "value": "chat"            }          ]        }      ],      "comments": [        {          "authorEmail": "klaus@cat.design",          "authorIsNotClient": false,          "authorName": "Klaus",          "comment": "Hi, I just received my fish bowl. But it is fishless, which makes the situation quite fishy. Please get back to me ASAP on this.\n\nBest, Klaus",          "created": "2020-04-16T11:24:51",          "id": "c4t-syst3m-335-1",        },        {          "authorEmail": "roberto@exemplo.com",          "authorIsNotClient": true,          "authorName": "Robert",          "comment": "Hi, Klaus!\n\nI looked into your order and it seems you ordered our fishless fish bowl. I will loop in Jane who handles our orders to get this sorted out. We will get back to you shortly.\n\nBest, Robert",          "created": "2020-04-16T11:29:16",          "id": "c4t-syst3m-335-2",        },        {          "authorEmail": "klaus@cat.design",          "authorIsNotClient": false,          "authorName": "Klaus",          "comment": "Thank you Robert. If I would cover the difference in costs and ship back the fishless bowl, could you please send out the fishy fish bowl?",          "created": "2020-04-16T11:24:51",          "id": "c4t-syst3m-335-3",        },        {          "authorEmail": "janete@exemplo.com",          "authorIsNotClient": true,          "authorName": "Jane",          "comment": "Hey Klaus, Jane here\n\nIt seems that our system had not marked the fishy fish bowl as out of stock and that is why you were able to pay for one. Sorry for this mistake, we will cover the shipping costs and send out a fishy bowl. Is the address still valid?\n\nBest, Jane",          "created": "2020-04-17T10:04:29",          "id": "c4t-syst3m-335-4",        },        {          "authorEmail": "klaus@cat.design",          "authorIsNotClient": false,          "authorName": "Klaus",          "comment": "That is wonderful news, Jane! Yes, feel free to use the same address. I\'ll be eagerly waiting\n-Klaus",          "created": "2020-04-17T12:09:43",          "id": "c4t-syst3m-335-5",        },      ]    }  ]}

E, quando inserimos isso em nosso conteúdo, obtemos nosso comando de solicitação final:

curl 'https://pub.klausapp.com/v1/tickets' \-H 'accept: application/json' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer <api_token>' \--request POST \--data '{ "data": [ { "id": "c4t-syst3m-335", "subject": "My fish bowl looks fishy", "description": "Hi, I just received my fish bowl. But it is fishless, which makes the situation quite fishy", "created": "2020-04-16T11:24:51", "updated": "2020-04-17T13:48:26", "assigneeEmail": "janete@exemplo.com", "assigneeName": "Jane", "ticketFields": [ { "id": "channel", "label": "Channel", "values": [ { "label": "Chat", "value": "chat" } ] } ], "comments": [ { "authorEmail": "klaus@cat.design", "authorIsNotClient": false, "authorName": "Klaus", "comment": "Hi, I just received my fish bowl. But it is fishless, which makes the situation quite fishy. Please get back to me ASAP on this.\n\nBest, Klaus", "created": "2020-04-16T11:24:51", "id": "c4t-syst3m-335-1" }, { "authorEmail": "roberto@exemplo.com", "authorIsNotClient": true, "authorName": "Robert", "comment": "Hi, Klaus!\n\nI looked into your order and it seems you ordered our fishless fish bowl. I will loop in Jane who handles our orders to get this sorted out. We will get back to you shortly.\n\nBest, Robert", "created": "2020-04-16T11:29:16", "id": "c4t-syst3m-335-2" }, { "authorEmail": "klaus@cat.design", "authorIsNotClient": false, "authorName": "Klaus", "comment": "Thank you Robert. If I would cover the difference in costs and ship back the fishless bowl, could you please send out the fishy fish bowl?", "created": "2020-04-16T11:24:51", "id": "c4t-syst3m-335-3" }, { "authorEmail": "janete@exemplo.com", "authorIsNotClient": true, "authorName": "Jane", "comment": "Hey Klaus, Jane here\n\nIt seems that our system had not marked the fishy fish bowl as out of stock and that is why you were able to pay for one. Sorry for this mistake, we will cover the shipping costs and send out a fishy bowl. Is the address still valid?\n\nBest, Jane", "created": "2020-04-17T10:04:29", "id": "c4t-syst3m-335-4" }, { "authorEmail": "klaus@cat.design", "authorIsNotClient": false, "authorName": "Klaus", "comment": "That is wonderful news, Jane! Yes, feel free to use the same address. I will be eagerly waiting\n-Klaus", "created": "2020-04-17T13:48:26", "id": "c4t-syst3m-335-5" } ] } ] }'

Pronto! Agora, você já pode ver sua conversa no Klaus e avaliá-la!

Encontrou sua resposta?