Agent skill
holded-invoices
Process invoice emails: download PDF attachments, extract vendor + date, generate normalized filename, and send to Holded inbox via n8n webhook.
Install this agent skill to your Project
npx add-skill https://github.com/antoniolg/agent-kit/tree/main/skills/holded-invoices
SKILL.md
Holded invoices (Gmail → PDF → n8n webhook → Holded inbox)
Goal: when an email contains an invoice PDF, upload it to Holded via an n8n webhook.
Destinations
Configure defaults in ~/.config/skills/config.json under holded_invoices:
company_emailfreelancer_emailwebhook
Example:
{
"holded_invoices": {
"company_email": "empresa@holdedbox.com",
"freelancer_email": "autonomo@holdedbox.com",
"webhook": "https://n8n.example.com/webhook/..."
}
}
Webhook fields:
email(Holded inbox) (HTTP header)nombre(base filename, without extension) (HTTP header)- Body: raw PDF (
Content-Type: application/pdf)
Filename convention:
<company>-<YYYY>-<MM>.pdf- Vendor slug: lowercased, spaces → dashes, simplified (e.g. "Google INC" →
google).
Scripts
1) Extract vendor + date from a PDF
scripts/invoice-extract.js --pdf /path/to/invoice.pdf- Outputs JSON:
{ vendor, vendorSlug, year, month }
- Outputs JSON:
2) Upload a PDF to Holded via n8n
scripts/holded-upload.sh --pdf /path/to/invoice.pdf --email <holdedbox> --nombre google-2026-01.pdf- If not configured, pass
--webhookexplicitly.
- If not configured, pass
3) End-to-end: from a Gmail message ID
Downloads the first PDF attachment, suggests a filename, and (optionally) uploads.
scripts/holded-from-gmail.sh --account <gmail-account> --message-id <id> --type empresa|autonomo- If not configured, pass
--email-empresa,--email-autonomo, and/or--webhook.
- If not configured, pass
Flags:
--yesskip confirmation and upload
Agent workflow
When reviewing an email thread with a PDF invoice:
- Ask: is it
empresaorautonomo. - Download the PDF attachment.
- Run
invoice-extract.jsto infer vendor + year/month. - Propose filename and ask for confirmation.
- Call webhook via
holded-upload.sh.
If extraction fails, ask for vendor + date and continue.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
gen-pdf
Converts a Markdown file to a styled PDF with DevExpert branding (logo in bottom-right corner). Use when asked to generate a PDF from a Markdown document, or when any DevExpert proposal/document needs to be exported as PDF.
cloudflared-tunnel
Create temporary public URLs for localhost apps using Cloudflare Quick Tunnels with tmux-based process management. Use when you need to preview a local app externally (mobile device, remote collaborator, QA), including host-allowlist fixes when a dev server blocks external hosts.
Manage inbox email. Uses the inbox script and stores metadata (ids) to open or archive messages later.
whatsapp-evo
Manage WhatsApp via Evolution API (v2.x): list chats with unread messages and reply.
create-cli
Design command-line interface parameters and UX: arguments, flags, subcommands, help text, output formats, error messages, exit codes, prompts, config/env precedence, and safe/dry-run behavior. Use when you’re designing a CLI spec (before implementation) or refactoring an existing CLI’s surface area for consistency, composability, and discoverability.
academy-enrollments
Manage academy enrollments by appending rows to a Google Sheet (used by Zapier/n8n to grant LearnWorlds access).
Didn't find tool you were looking for?