The Holded connector links MyZapp to the Holded invoicing software. Once configured, it does three things:
- it records in Holded the quotes, invoices and credit notes waiting in the Documents to issue queue. Each document is then closed with its Holded number, with no operator involved;
- it creates the Holded quote of a CRM quote sent to the customer, then the Holded order when the accepted quote becomes an order;
- it keeps quote acceptance and refusal in sync both ways. A quote accepted in the CRM is accepted in Holded too. A quote accepted in Holded is accepted in the CRM too, if it is still "sent" there.
Without the connector, nothing changes: the Documents to issue queue is handled by hand. The screen is restricted to administrators.
Set up the connector
- In Holded, create an API key (Configuración › Desarrolladores).
- In the Vault, create a secret holding this key.
- Open Holded connector (
/connector/holded) and select this secret in Vault secret holding the API key. - Tick Connector enabled, then the flows you want:
- Record the requested billing documents;
- Send CRM quotes and their statuses;
- Create the Holded order of a CRM order. Unticked, the flow is quote → invoice directly: the order's invoices reach Holded with no intermediate order.
- Optional: set a Default VAT for billing lines that carry none.
- Save, then click Test the connection.
The quote status codes (pending 0, accepted 1, declined 2) are the ones Holded usually uses. Check them on your account: a quote accepted in Holded must show the "Accepted" code.
What goes to Holded
| In MyZapp | In Holded |
|---|---|
| Quote to issue (billing queue) | Quote |
| Invoice to issue (order instalment, support contract…) | Invoice |
| Paid invoice | Invoice, then payment recorded |
| Conversion of a quote into an invoice | Invoice taken from the quote |
| Credit note | Credit note |
| Sent CRM quote | Quote, with its lines, discounts and VAT |
| CRM order | Sales order, with the Holded quote number |
The customer is found in Holded by name, or created if it does not exist. If several Holded contacts share the same name, the document is set aside with the reason "Several Holded contacts have this name".
Follow the sends
The page lists the latest linked documents, with their Holded number and state:
- Created: the document exists in Holded;
- Refused: Holded refused the document. Nothing was created on its side, and the reason is shown. The billing document stays in the queue, where it can be recorded by hand;
- In progress: Holded did not answer. Before any new attempt, the connector checks in Holded that the document does not already exist there.
The log records errors, decisions brought from Holded into the CRM, and mismatches. A mismatch is, for example, a quote declined in Holded while it is already accepted in the CRM: it is never applied automatically.
Sends happen on each event: quote sent, accepted or declined, order created. They also happen every 10 minutes through the scheduled synchronization. Synchronize now runs that pass straight away.