capivara-agiota

Bot para cobrar as pessoas no telegram

Notion para Telegram

Recebe dados do notion para mandar as mensagens no telegram com as informações da tarefa a ser cobrada e marca as pessoas responsáveis pela tarefa

Exemplo dela funcionando

Toda vez que você rodar o código a capivara-agiota vai pegar as tarefas do dia do seu notion e vai mandar uma mensagem no grupo do telegram cobrando os responsáveis.

  • tabela no notion: podemos ver que temos uma tarefa para hoje e a stefany é a responsável

image

  • Depois de rodar o programa a capivara-agiota vai mandar uma mensagem no grupo dessa forma:

image

Como eu uso a capivara-agiota?

Configure seu bot no telegram

  1. Crie um bot no telegram (tutorial aqui)

  2. Copie o token de acesso do seu bot

  3. Substitua telegram_token em config.py pelo token que você acabou de copiar:

     notion_token = "YOUR_NOTION_TOKEN"
     telegram_token = "YOUR_TELEGRAM_TOKEN"
     chat_id = "TELEGRAM_CHAT_ID"
  4. Crie um grupo no telegram e adicione o bot nele, de permissões de adm para o bot

  5. Entre no link https://api.telegram.org/bot<YourBOTToken>/getUpdates . Não se esqueça de trocar YourBOTToken pelo token do seu bot

  6. Procure por chat_id. Copie ele

  7. Substitua chat_id em config.py pelo chat_id que você acabou de copiar

Configure seu notion

  1. Crie um notion: https://www.notion.so
  • não se esqueça de selecionar o teste gratuito do plano de time
  1. Crie uma página

image

  1. Adicione um database (tutorial aqui):

image

  1. Adicione as pessoas no seu workspace
  • na barra lateral esquerda do notion, clique em Settings & Members
  • clique em Membres
  • copie o link de convite e envie para os membros de seu time (ou adicione o email deles direto):

image

  1. Agora, você consegue adicionar as pessoas na coluna de Responsáveis no seu database:

image

Crie um token de acesso no Notion

  1. CLique em Settings & Members
  2. Clique em Integration
  3. Clique em Develop your own Integrations

image

  1. Clique em New Integration
  2. Dê um nome para ela e clique em Submit
  3. Copie o token de acesso

image

  1. Volte para o seu database no notion. No canto superior direito clique em Share
  2. Clique em Invite
  3. Adicione sua integração que você acabou de criar
  4. Agora você pode substituir o token_notion no config.py pelo token do notion que você copiou

Conecte o database do seu notion com o bot

  1. na página de seu database selecione o id do seu database. Ele fica na url dessa forma:

https://www.notion.so/<long_hash_1>?v=<long_hash_2>

<long_hash_1> é o id do database. Copi ele

  1. Em bot.py, substitua:
  • database_tarefas_id pelo id do database que você acaboou de copiar
  • nome_coluna_tarefa pelo nome da coluna no seu database com o nome que descreve sua tarefa
  • nome_coluna_prazo pelo nome da coluna no seu database com o prazo da tarefa (lembre de colocar o tipo da coluna como o de data mesmo, se for somente texto, o bot quebra)
  • nome_coluna_responsaveis pelo nome da coluna no seu database com os responsáveis pela tarefa (preferencialmente do tipo pessoa, não testei com outros tipos pra saber se funciona)
# ids dos databbases usados
database_tarefas_id = "TAREFAS_DATABASE_ID"
database_grupos_id = "GRUPO_DATABASE_ID" # caso vc use uma tabela separada com grupos de pessoas responsáveis

# nome das colunas do seu ddatabase
nome_coluna_tarefa = "Tarefa"
nome_coluna_prazo = "Data"
nome_coluna_responsaveis = "Responsáveis"
  • Ignore o database_grupos_id por enquanto

Como a capivara agiota marca as pessoas no telegram?

  1. Vá em config.py e coloque o nome dos membros no notion e seus respectivos usuários no telegram.
membros = {
    "nome da pessoa no notion": "@ do telegram da pessoa ",
    "Fulano da Silva": "@fulano", # exemplo
    "": "" # não retire essa linha, se vc tirar ela, quando uma tarefa não tiver ninguem como responsavel o bot vai quebrar
}

Deploy

Agora, você precisa rodar seu programa uma vez por dia para que a capivara-agiota envie as mensagens no telegram cobrando as pessoas. Para isso, eu usei uma máquina EC2 na aws no teste grátis e usei um crontab para rodar o programa todo dia às 12h30. Passo a passo disso em breve