Planilha de despesas colaborativa no Telegram

Planilha de despesas colaborativa no Telegram

@iluc71

Temos uma equipe de técnicos de campo que lançava num formulário as despesas com o carro, principalmente estacionamentos, grampeavam as notas fiscais e entregavam para conferência no back office (escritório). Então o funcionário do financeiro conferia e encaminhava o reembolso.

Com a ajuda do #telegram, do bot do #IFTTT e da planilha do #Google Drive conseguimos automatizar quase todo o processo (falta ainda integrar com nosso ERP) e é isso que vou falar um pouco aqui! Na verdade fiz um tutorial explicando o passo a passo para montar esse processo.

Como a equipe já usava o Telegram como comunicador padrão, criamos um grupo e conectamos o #ifttt neste grupo e criamos algumas regras:

  • despesas
  • baixar
  • rota
  • digipare

A regra despesas é a que comanda o envio do registro para a planilha do Google Drive.

As outras regras também são baseadas na integração do Google Drive com o Telegram, optei por explicar sobre as despesas pois é um assunto comum a todos, os demais são específicos do nosso negócio. Em tempo, #digipare se refere ao aplicativo de Zona Azul (estacionamento rotativo nas ruas da cidade de São Paulo administrado pela prefeitura).

O usuário tem que comandar da seguinte forma:

/ifttt despesas fornecedor|||cliente|||valor

Adicionando despesas

O resultado na planilha fica:

Planilha Google Drive

Para isso funcionar, o mais difícil foi configurar o #IFTTT, pois ele executa todo o trabalho para colocar os dados no seu devido lugar.

Se você não conhece o #IFTTT, o @julianodorneles fez um ótimo tutorial, clique no tutorial Integrando IFTTT e Telegram (não esqueça de voltar aqui... rs).


Criando o applet

Sobre a integração, vamos começar criando o seu applet. O applet é um pequeno comando que executa funções de acordo com condições específicas.

No nosso caso seria:

Quando o usuário disparasse um comando com a palavra chave "despesas" o #IFTTT coletasse essa mensagem, depois processaria a informação e acrescentaria uma linha numa planilha especifica do Google Drive.


Antes de mais nada, você tem que ser o administrador do grupo e ter conectado o bot do #IFTTT no grupo. Como faço isso? Leia o tutorial Integrando IFTTT e Telegram já falei isso lá em cima.

Pronto, bot do #IFTTT conectado no seu grupo e você já está logado no #IFTTT. Agora criamos uma nova applet em My applets, New applet.

Clique em This para selecionar o gatilho, ou seja o que disparará o #IFTTT, no nosso caso dentro do Telegram uma mensagem com a palavra específica despesas.

Para ilustrar, veja a figura a seguir:

Escolhendo o gatilho

Depois de escolher o gatilho, você vai escolher o grupo em Which Group?, a palavra específica em Key phrase e a resposta do bot em What to send as a reply?.

Configurando o gatilho

Agora vamos configurar a ação que é inserir uma linha na planilha do Google Drive, clicando em That, procurando pelo Google Drive e por fim selecionando Add row to spreadsheet.

Selecionando a ação do Google Drive (Calc)


Configurando a ação

Selecionada a ação, você vai definir o nome da planilha em Spreadsheet Name e a pasta onde vai ser salva em Driver folder path. Eu optei por fazer uma planilha única para todos os usuários e depois eu filtro o que preciso dentro da planilha, mas você pode fazer uma planilha por usuário.

Caso queira fazer dessa forma, clique no botão +Ingredients e selecione a opção desejada. Por exemplo, quero uma planilha que fique com o nome Despesas do Pedro Henrique. Você digita "Despesas do " e acrescenta o ingrediente {{AuthorName}}. Vejam que eu coloquei entre chaves duplas, você pode simplesmente escrever da seguinte forma: "Despesas do {{AuthorName}}".

Deixei o comando Formatted row por último justamente porque ele é a essência desta tarefa. É neste campo que o #IFTTT faz o trabalho árduo.

O ingrediente AuthorName vocês já sabem o que faz, coloca o nome do usuário. Text vai colocar as informações da mensagem sem a palavra específica (despesas). E as três barras verticais (|||) é o separador de campos, lembrando do #Excel, lá o separador é o ponto-e-virgula (;). Por isso que entre fornecedor-cliente e cliente-valor temos essas três barras. Lembram?

Aqui tem um ponto importante, se você combinar com o usuário, vocês poderão incluir quantos campos quiserem, pois as três barras funcionam dentro da mensagem também. Ou seja, se essas três barras fizerem parte da mensagem (como é esse o nosso caso) o #IFTTT interpretará isso e fará a separação entre as colunas.

O campo Triggered At insere a data e hora que a mensagem foi disparada no formato:

  • January 20, 2017 at 08:30PM

Infelizmente o Google Drive não consegue entender esse formato. Para resolver esse problema, tentei com o grupo de excel dentro do Telegram, saiu uma sugestão de manipular dentro do excel com fórmula e pesquisando mais a fundo no Google encontrei um usuário do #gisthub que resolve o problema usando a função Substitute, Datevalue e timevalue dentro da receita do #IFTTT.

Na minha opinião, essa foi a grande sacada dele: perceber que a planilha do #drive processa funções recebidas do #bot. Se quiser ver o trabalho do oscarmorrison, clique aqui.

A função ficará da seguinte forma:

=DATEVALUE(SUBSTITUTE("{{TriggeredAt}}"," at ", " "))

A função substitute alterará o campo Triggered At de tal forma que a planilha do Google Drive interprete o resultado como data ainda em forma de texto ("February 3, 2017 09:08PM"). E a função datevalue vai transformar em data o texto gerado pela função substitute.

No caso das horas, vale a mesma ideia, mude a função apenas para timevalue.

=TIMEVALUE(SUBSTITUTE("{{TriggeredAt}}"," at ", " "))

Caso queira data e hora, faça assim:

=TIMEVALUE(SUBSTITUTE("{{TriggeredAt}}"," at ", " ")) + DATEVALUE(SUBSTITUTE("{{TriggeredAt}}"," at ", " "))


Para funcionar, nós temos que alterar o local nas configurações da planilha. Para isso, você vai no menu Arquivo, Configurações da planilha e altere o Local para United States. No meu caso, o idioma também está em inglês, mas não é necessário. O #IFTTT funciona apenas no idioma norte-americano, se não fizer essa alteração o Google Drive fica indicando Parse error que é um erro de interpretação do dado.

Configurando a planilha do Google Drive

E selecione a coluna da data e formate para o padrão brasileiro (dd/mm/yyyy). Vá para o menu Formato, Número, Mais formato, Mais formatos de Data e Hora e selecione conforme a figura:

Formatando a data na planilha do Google Drive

Faça alguns testes e veja se está tudo funcionando. Feito esses testes você terá algumas linhas da planilha. Agora você pode inserir linhas acima que o #IFTTT entende o final da planilha, foi assim que fiz o cabeçalho e coloquei o autofiltro.

Vocês devem ter visto que o Total da planilha está em cima e não no final da planilha, fiz isso para não ter que ficar movendo cada vez que a planilha vai aumentando. A função do total é o subtotal com a opção 9, por exemplo:

=subtotal(9;E7:E107)

Fiz alguns testes tentando deixar subtotal(9;E:E) mas não funcionou, não sei se é uma limitação da planilha do Google Drive.

Ficou um pouco longo, mas espero que tenham gostado.


Luciano Canachiro

Sigam me no twitter @iluc

#timbeta

Report Page