Como essa ferramenta está na nuvem, não tenho como conectar via banco de dados e extrair o que eu preciso.
Também não existe uma API pra isso.
O melhor que tem é o KQL (que é um tipo de Kayako SQL). Só que é bem fraco!
Consegui solucionar meu problema da seguinte forma:
1. Criei um REPORT dentro do Kayako com as colunas que eu precisava exportar diariamente.
Algo do tipo:
SELECT 'Users.User Organization',
'Users.Fullname',
'Tickets.Ticket Mask ID',
'Tickets.Status',
'Tickets.Priority',
'Tickets.Subject',
'Tickets.Ticket ID',
'Tickets.Department',
'Tickets.Last Activity',
'Ticket Posts.Ticket Post ID',
'Ticket Posts.Creation Date',
'Ticket Posts.Response Time',
'Ticket Posts.Email'
FROM 'Tickets','Ticket Posts', 'Users'
WHERE 'Tickets.Last Activity' = Last7Days()
2. Criei um SHELL no linux que passa meu login e senha pro Kayako e faz o request do meu report:
Esse script recebe nos parametros 1 e 2 o login e senha.
O report do Kayako é report 144, com saída CSV.
LOGIN_URL="https://aaaaaaa.kayako.com/staff/Core/Default/Login"
REPORT_URL="https://aaaaaaa.kayako.com/staff/Reports/Report/Export/144/CSV"
COOKIE="/tmp/cookie_kayako.txt"
OUTFILE="/tmp/kayako.csv"
LOGINUSER="${1}"
LOGINPASSWORD="${2}"
echo "**************************************************************************"
echo "******************* Login using Parameter 1 and 2 and saves the cookie"
echo "**************************************************************************"
curl --data "username=$LOGINUSER&password=$LOGINPASSWORD" -c $COOKIE $LOGIN_URL
echo
echo "**************************************************************************"
echo "******************* Request for the report (using cookie)"
echo "**************************************************************************"
curl --data "" -b $COOKIE $REPORT_URL >$OUTFILE
echo
4. Criei um EXTERNAL TABLE pra ler os dados dos CSV exportado.
create table xxtg.xxtg_ext_kayako_csv (
user_organization varchar2(50)
, full_name varchar2(100)
, ticket_mask_id varchar2(50)
, status varchar2(50)
, priority varchar2(255)
, subject varchar2(255)
, ticket_id number
, department varchar2(50)
, last_activity varchar2(50)
, ticket_post_id number
, creation_date varchar2(50)
, response_time varchar2(50)
, email varchar2(255)
)
Organization external
(type oracle_loader
default directory tmp
access parameters (records delimited by newline
fields terminated by ','
OPTIONALLY ENCLOSED BY '"' and '"'
LTRIM
)
location ('kayako.csv'))
reject limit 1000;
Pronto! Dessa forma posso ter dados atualizados do Kayako de forma automática.