Dá para manter uma planilha do Google sempre igual ao seu cadastro de clientes e de serviços com uma chave de API e um script de cerca de 20 linhas. Sem exportar arquivo, sem copiar e colar, e sem o risco de a planilha ficar com o telefone antigo de alguém.
Muito MEI já tem uma planilha: lista de clientes para mandar mensagem no fim do ano, tabela de preços para consulta, controle de serviços do mês. Tirar isso da planilha é trabalhoso e nem sempre necessário. O que faz sentido é ligar as duas coisas. Este texto mostra como.
O que a API do Sysbee já entrega
A API do Sysbee é a mesma que o próprio painel usa. Isso significa que o que você vê na tela está disponível para outras ferramentas, dentro das permissões que você der. Hoje, com a chave certa, você consulta:
- Clientes (
contacts:read), com nome, e-mail, telefone e a empresa ligada a cada pessoa. - Empresas dos clientes (
companies:read). - Itens do catálogo (
items:read), com nome, tipo, unidade e preço em centavos.
As chaves hoje só leem. Nenhuma ferramenta conectada consegue alterar ou apagar nada, o que torna seguro testar. A leitura de propostas e os avisos automáticos (webhooks) estão a caminho, e falamos deles no fim.
Passo 1: criar a chave
No painel, abra Configurações > Integrações e crie uma chave. Dê um nome que diga para que ela serve (por exemplo, "Planilha de clientes") e marque só os escopos necessários. A chave começa com pk_live_ e aparece inteira uma única vez, então copie na hora. O Sysbee guarda apenas uma impressão digital dela, e não consegue mostrá-la de novo.
Se a chave vazar ou o prestador de serviço que montou a planilha sair, revogue na mesma tela. Ela deixa de funcionar na hora.
Passo 2: testar com uma chamada
Antes de montar qualquer coisa, confirme que a chave funciona:
curl "https://app.sysbee.com.br/api/v1/contacts?per_page=100" \
-H "Authorization: Bearer pk_live_SUA_CHAVE"A resposta é um JSON com os clientes da sua empresa, sempre os seus e de mais ninguém:
{
"data": [
{
"id": 42,
"name": "Ana Souza",
"email": "ana@exemplo.com.br",
"phone": "11999990000",
"company_id": 7,
"company_name": "Padaria Estrela",
"created_at": "2026-10-01T14:03:22Z"
}
],
"meta": { "page": 1, "per_page": 100, "total": 1, "pages": 1 }
}A lista vem paginada, com até 100 registros por página. O bloco meta diz quantas páginas existem, e é com ele que o script do próximo passo sabe quando parar.
Passo 3: o script na planilha
No Google Planilhas, abra Extensões > Apps Script e cole o código abaixo. Guarde a chave em Configurações do projeto > Propriedades do script, com o nome SYSBEE_KEY, em vez de escrevê-la no código. Assim, se você compartilhar a planilha, a chave não vai junto.
const CHAVE = PropertiesService.getScriptProperties().getProperty('SYSBEE_KEY')
const API = 'https://app.sysbee.com.br/api/v1'
function buscarTudo(recurso) {
const linhas = []
let pagina = 1
let paginas = 1
do {
const resposta = UrlFetchApp.fetch(`${API}/${recurso}?per_page=100&page=${pagina}`, {
headers: { Authorization: 'Bearer ' + CHAVE },
})
const corpo = JSON.parse(resposta.getContentText())
linhas.push(...corpo.data)
paginas = corpo.meta.pages
pagina += 1
} while (pagina <= paginas)
return linhas
}
function sincronizarClientes() {
const aba = SpreadsheetApp.getActive().getSheetByName('Clientes')
const clientes = buscarTudo('contacts')
aba.clearContents()
aba.appendRow(['Nome', 'Empresa', 'E-mail', 'Telefone'])
clientes.forEach((c) => aba.appendRow([c.name, c.company_name, c.email, c.phone]))
}Crie uma aba chamada Clientes, execute sincronizarClientes uma vez para autorizar o acesso e pronto. Para atualizar sozinho, use Acionadores e agende a função a cada hora, ou todo dia de manhã.
O mesmo desenho serve para os itens: troque contacts por items e ajuste as colunas. Lembre que o preço vem em centavos de real, então 15000 é R$ 150,00. Divida por 100 antes de mostrar.
Limites e cuidados
- 60 requisições por minuto por chave. Para uma planilha sobra. Cada resposta traz os cabeçalhos
X-RateLimit-Limit,X-RateLimit-RemainingeX-RateLimit-Reset, e passar do limite devolve o status 429. - Dados pessoais. Telefone e e-mail de clientes são dados pessoais. Se a planilha for compartilhada, restrinja quem pode abrir e não deixe cópias soltas.
- Uma chave por ferramenta. Se cada integração tiver a sua, dá para revogar uma sem derrubar as outras, e a lista de chamadas recentes mostra quem usou o quê.
- Compatibilidade. Tudo fica em
/api/v1. Dentro dessa versão, campos não são removidos nem renomeados, só acrescentados, então o script não quebra de um dia para o outro.
O que vem a seguir
Planilha é só o exemplo mais simples. A mesma chave serve para um script seu, para Make, Zapier ou n8n (qualquer um que chame uma URL com um cabeçalho), para um painel de gestão ou para o sistema do seu contador.
O próximo passo é a conversa na outra direção: em vez de a ferramenta perguntar, o Sysbee avisa. Os webhooks vão mandar um aviso assinado para o endereço que você escolher quando uma proposta for enviada, aberta, aceita, recusada ou vencer. Com isso, um aceite poderá virar uma linha na planilha, uma mensagem para a equipe ou uma ordem de serviço, sem ninguém digitar. Quando chegar, o texto avisando estará aqui no blog.
A documentação completa, com todos os campos e exemplos, fica na página de API do painel.