holded-invoices

Extract PDF invoice attachments from Gmail emails and send them to Holded via an n8n webhook.

97|17|Updated Dec 29, 2025
One-click install
npx skills add https://github.com/antoniolg/agent-kit --skill holded-invoices
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: holded-invoices
Source: https://github.com/antoniolg/agent-kit/tree/main/skills/holded-invoices
Command: npx skills add https://github.com/antoniolg/agent-kit --skill holded-invoices

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pdftotext, gog, python3, node, curl, and includes scripts (resource) components.

What problem does it solve?

Automatically process invoice emails by extracting the first PDF attachment and sending it to Holded via an n8n webhook.

Core Features & Use Cases

  • Extract vendor and date from attached PDFs and generate a normalized filename.
  • Route invoices to Holded via configurable webhooks for both company and freelancer invoices.
  • Archive or mark processed Gmail threads to keep inbox organized.

Quick Start

Configure your Gmail account and Holded webhook, then run the holded-from-gmail.sh workflow to process the first matching invoice.

Frequently Asked Questions about holded-invoices

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automate sending PDF invoice attachments from Gmail to Holded?

Automating Gmail invoice PDF delivery to Holded involves extracting the first PDF attachment, inferring vendor and date metadata, generating a normalized filename, and uploading it to Holded via a configurable n8n webhook. The processed Gmail thread is then archived.

How does PDF invoice metadata extraction work for accounting automation?

PDF invoice metadata extraction for accounting automation works by using scripts to parse attached invoice files, inferring the vendor and date, and generating a normalized filename. This metadata is then used to route the invoice to Holded through a configurable n8n webhook.

Can I use an n8n webhook to route both company and freelancer invoices to Holded?

Yes, you can use configurable n8n webhooks to route both company and freelancer invoices to Holded. The Skill supports separate webhook endpoints, allowing you to direct different invoice types to the appropriate destination in your accounting workflow.

Do I need specific dependencies to extract text from PDF invoices and upload them via HTTP?

Yes, extracting text from PDF invoices and uploading them via HTTP requires Python3, Node, curl, gog, and pdftotext. These dependencies enable the scripts to parse PDF metadata, generate filenames, and execute the HTTP transfer to your configured webhook.

What is the best way to keep my Gmail inbox organized after processing invoice attachments?

The best way to keep your Gmail inbox organized after processing invoice attachments is to archive or mark processed threads. This Skill automatically archives the Gmail thread after successfully extracting the PDF and transferring it to Holded via the webhook.