Send link to download PDF of Paid Invoice for Recurring Payments

I am dealing with Accounting Departments at various companies. And while they appreciate being emailed the Receipts for their Recurring Payments, they also want a PDF-downloadable Paid Invoice. As it stands, they are sent as part of the Receipt a link that says “View Quote.” But the Quote isn’t what they’d want to see, and the link is broken because the Quote has expired.

The link should say “View Invoice” and it should link to the Paid Invoice, which they can then Download (there is a Download button on that page).
Many Accounting Departments expect these PDFs to serve as their record of a Paid Invoice, not an email, which they don’t quite know what to do with.

Any help on this much appreciated.

Hi @DBerger,
Thank you for reaching out to the Community!
I’d like to thank you for sharing your valuable feedback and your use case! This means a lot to us.
I have shared it internally to bring more visibility to it.
I’d like to invite a couple of subject matter experts to this conversation: Hi @Jnix284, @jonchim and @HFisher7 do you have suggestions on how to achieve this, to help @DBerger, please?
Also, if anybody else has anything to add and/or share, please feel free to join in the conversation :slightly_smiling_face:
Thanks a lot and have a great day!
Best,
Bérangère

Thank you @BérangèreL for your help here. Will look out for a response :slightly_smiling_face:

Hi Dan,

I was browsing this topic and saw that you did not have an answer for 2 weeks. Sorry for the delay. I will weigh in, in case you haven’t solved it already, and for others who might want to solve it too.

HubSpot Invoice Objects have a property called “PDF download link”

The internal name if you use API access is: hs_pdf_download_link

“name”: “hs_pdf_download_link”,

“label”: “PDF download link”,

Create an Invoice-Based HubSpot workflow to trigger when this property is “Known”

Have the workflow email it to whomever you need to, personalised with other Invoice properties.

If it is triggering before payment was made, you might need to include checking this property in your trigger:

“name”: “hs_status”,

“label”: “External Invoice Status”,

“type”: “enumeration”,

“fieldType”: “radio”,

“description”: “The external status of the current invoice. This value is retrieved from a third party and may not be modified”,

“groupName”: “invoiceinformation”,

“options”: [

{

“label”: “Waiting to be sent”,

“value”: “INVOICE_WAITING_TO_BE_SENT”,

“description”: “Invoice has been created and is waiting to be sent.”,

“displayOrder”: 0,

“hidden”: false

},

{

“label”: “Sent to customer”,

“value”: “INVOICE_SENT”,

“description”: “Invoice has been sent to customer.”,

“displayOrder”: 1,

“hidden”: false

},

{

“label”: “Partial payment made”,

“value”: “INVOICE_PAYMENT_MADE”,

“description”: “Partial payment has been made for invoice.”,

“displayOrder”: 2,

“hidden”: false

},

{

“label”: “Fully paid”,

“value”: “INVOICE_FULLY_PAID”,

“description”: “Invoice is fully paid and closed.”,

“displayOrder”: 3,

“hidden”: false

},

{

“label”: “Overdue”,

“value”: “INVOICE_OVERDUE”,

“description”: “Invoice is overdue.”,

“displayOrder”: 4,

“hidden”: false

},

{

“label”: “Voided”,

“value”: “INVOICE_VOIDED”,

“description”: “Invoice has been voided.”,

“displayOrder”: 5,

“hidden”: false

}

]

If you are accepting some Quote payments, quotes have similar properties:

“name”: “hs_pdf_download_link”,

“label”: “Quote PDF download link”,

And you could check for this property too: Triggering when the Quote paid date is known:

“name”: “hs_payment_date”,

“label”: “Payment date”,

“type”: “datetime”,

“fieldType”: “date”,

“description”: “The date the quote was paid by the customer”,

“groupName”: “quoteinformation”,

or this one:

“name”: “hs_amount_paid”,

“label”: “Amount paid”,

“type”: “number”,

“fieldType”: “calculation_equation”,

“description”: “The total value of non-failed payments associated to the invoice.”

or this one:

“name”: “hs_payment_status”,

“label”: “Payment Status”,

“type”: “enumeration”,

“fieldType”: “calculation_equation”,

“description”: “Payment status for the quote”,

“groupName”: “quoteinformation”,

“options”: [

{

“label”: “Pending”,

“value”: “PENDING”,

“description”: “Waiting for payment”,

“displayOrder”: 1,

“hidden”: false

},

{

“label”: “Processing”,

“value”: “PROCESSING”,

“description”: “Processing payment”,

“displayOrder”: 2,

“hidden”: false

},

{

“label”: “Paid”,

“value”: “PAID”,

“description”: “Paid”,

“displayOrder”: 3,

“hidden”: false

},

{

“label”: “No payment options”,

“value”: “PAYMENT_NOT_ENABLED”,

“description”: “No payment options”,

“displayOrder”: 4,

“hidden”: false

}

]

There are many properties you can trigger and filter on, to create the automation you need, not just for payments, but also for chasing up failed payments.

I got the details above via the HubSpot API to get properties on Invoice and Quote objects.

If you are not an API user, you can see a lot of the same information by checking out the properties available to choose in your workflow triggers and choosing what works for you.

Reply again here and tag me if you have any problems.

Happy Automating!

best

Pete

Thanks @HubDoPete ! I will see if our developers have time to implement this, though I still think it would be worthwhile as a feature in the web version of Hubspot so those without API access can use it as well. It could be just a checkmark as an option for clients with recurring subscriptions.
Best,

Dan

Jumping in a bit late but this was super helpful! Didn’t know those tokens exist. Thank you @HubDoPete!

For anyone unsure how to do this, here are the steps without api coding:

1. Create a marketing email. In your email, you can add a button or hyperlink that’s personalised using Invoice object properties. To do this, click Personalize in the email editor, then select the Invoice object, and choose one of the following properties:

  • Invoice Link – shows the hosted invoice page with a download button
  • PDF Download Link – allows the contact to download the invoice PDF directly

Alternatively, you can insert the personalisation tokens in any button or text as hyperlink manually using:

  • Invoice Link: {{ personalization_token(‘invoice.hs_invoice_link’) }}
  • PDF Downlod Link: {{ personalization_token(‘invoice.hs_pdf_download_link’) }}

2. Create an Invoice-based workflow.

  • For example, set the trigger to something like: Invoice status is Paid
  • Add your email to the workflow.

Test, test, test! You’re all set! :rocket:

Thank you @BérangèreL. for your help here. Will look out for a response