Automatización y scripting¶
alegra está hecho para automatizarse: JSON de entrada/salida, códigos de salida
que significan algo, --dry-run en todas partes, y un limitador de velocidad
integrado (se adapta a los encabezados X-Rate-Limit-*) para que los bucles se
mantengan bajo el tope por minuto de tu plan.
Usa un perfil + entorno para corridas no interactivas¶
En CI o cron no hay prompt del keyring — usa variables de entorno:
export ALEGRA_EMAIL="you@biz.com"
export ALEGRA_TOKEN="$ALEGRA_API_TOKEN" # desde tu almacén de secretos
export ALEGRA_OUTPUT=json # salida por defecto apta para máquinas
alegra auth status
Importa contactos en masa desde un CSV¶
Usa el importador integrado. Dado un clients.csv con un encabezado Name,NIT:
alegra contacts import -f clients.csv \
--map 'Name=name,NIT=identification.number' \
--set 'identification.type=NIT' --set 'type=["client"]' --set kindOfPerson=LEGAL_ENTITY
--maprenombra columnas del CSV a campos de la API; las rutas con punto construyen objetos anidados.--setaplica campos constantes a cada fila.- Las filas son independientes — las fallas se reportan y no detienen la corrida.
- Agrega
--dry-runpara previsualizar los cuerpos JSON sin enviarlos.
Todo recurso que admita creación tiene import.
Exporta cualquier cosa a una hoja de cálculo¶
alegra items export > items.csv # CSV, todas las páginas
alegra invoices export --param status=open --format json # JSON
alegra contacts export --out contacts.csv
export pagina automáticamente y usa CSV por defecto; reduce columnas con
--columns.
Instantánea diaria vía cron¶
# 8am cada día hábil: envíate por correo una instantánea tipo P&L en una línea
0 8 * * 1-5 ALEGRA_EMAIL=you@biz.com ALEGRA_TOKEN=xxx /usr/local/bin/alegra invoices list --status open --count | mail -s "Open invoices" you@biz.com
Empuja en vez de sondear: suscripciones a webhooks¶
El sondeo con cron es simple, pero para flujos orientados a eventos suscríbete a los webhooks de Alegra para que él te llame a ti cuando algo cambie:
alegra webhook-subscriptions create -f hook.json # { event, url, ... }
alegra webhook-subscriptions list
Previsualiza en CI, nunca emitas por accidente¶
--dry-run imprime la petición exacta (y un curl) y no envía nada — perfecto
para validaciones de pull request que verifican payloads:
alegra invoices create -f invoice.json --dry-run
Manéjalo desde un agente de IA (MCP)¶
El CLI completo se expone como un servidor Model Context Protocol:
claude mcp add alegra -- alegra mcp start # o: alegra mcp claude enable
Luego pídele a tu agente cosas como "lista las facturas abiertas de este mes en
Alegra y suma los saldos." Cada comando se convierte en una herramienta
(alegra_invoices_list, …). Apúntalo a un perfil de sandbox/prueba mientras
experimentas. Ver Servidor MCP.
Códigos de salida y errores¶
alegra sale con un código distinto de cero al fallar e imprime una sola línea
Error: … a stderr. Para el significado de los estados HTTP (p. ej., 402 =
restringido por plan, 429 = límite de velocidad), ver la
Referencia de errores.
if ! alegra auth status >/dev/null 2>&1; then
echo "Alegra auth is broken" >&2; exit 1
fi
Sé un buen ciudadano de la API¶
- Prefiere
--countantes que--all | wc -lcuando solo necesitas un número. - Usa
--columns/-o csvpara traer solo lo que necesitas. - Backfills largos: el limitador te mantiene bajo 150/min, pero considera correrlos fuera de las horas pico.