← Blog

Using the Holded product quotations template

In this tutorial we will explain how to bridge your WordPress forms to Holded to set up a transactional form that creates product quotations. The resulting bridge will create a contact, and a new quotation linked to the former and with a product line with unit price and quantity.

This tutorial assumes you have a Holded active account with access to the REST API.

Enable the addon

The first step is to enable the Holded addon on the general tab of the settings page.

Forms Bridge settings page with Holded addon enabled

Once the addon is enabled, we can create bridges to work with the REST API. In addition Forms Bridge offers some templates to start creating our bridges, and workflow jobs.

The template wizard

To streamline the creation process, we will use the Product Quotations template from the addon. To use it, simply go to Add bridge tab on the addon’s page and click on Use a template. After that, the template wizard will be displayed. On the templates dropdown, select the option Product Quotations.

Backend and form steps

The next step on the wizard will ask us for the backend connection. The backend connection will ask us for a name and an API key (the URL is already known, same as the required HTTP headers). Leave the default backend name and set your API key and Forms Bridge will perform a ping to the backend to check the health of the connection. If all goes well, the template wizard will allow us to continue.

This step is only required if you already don’t have any backend connection. If you’ve created a backend before, you can simply reuse it and click next.

One step more, the Form step. In this step the wizard will ask us for a title for the form. You can go with the default title or edit it if you want. After that, click next to go to the last step.

The bridge step

Now we are on the bridge step. In this step the wizard will ask us for all the information he need to configure the bridge. In this case, the wizard will ask us for the bridge name (remember, it should be unique as it is the identifier), for a product, and optionally, for tags to label the quotation. The selected product will be used to create the quotation line.

The product dropdown is populated with the products from your Holded account. If the dropdown is empty, probably you have to create some products on Holded and then come back here. Take in mind that the price of the product multiplied by the quantity field value of the form will be the quotation amount.

Submit the template

Once done, click on submit and let the magic happen. Behind the curtain, Forms Bridge will create the backend connection, a new form and a new bridge that will connect the form with the backend. Go to your forms admin page and check for it! The bridge is ready for use, you can stop here or continue editing the bridge with custom configurations to fit your specific use case.

The resulting contact form 7 form injected into a page.

Additional configurations

After using the template you will have a bridge with four custom fields:

{
  "type": "client",
  "isperson": 1,
  "defaults": {
    "language": "$locale"
  },
  "date": "$timestamp",
  "items": [{
    "sku": "aaa"
  }],
  "tags": ["forms-bridge", "website"]
}

With this out of the box configuration, the bridge will add to this payload the items[0].units field to the payload as a mapping from the quantity value from the form responses and the contactId with the ID of the new contact, created on the workflow. With this setup, the resulting quotation will inherit the price of the product defined in Holded. If you want to add a custom discount for this quotation form, you can add a new custom field items[0].discount with the discount amount to your bridge.

If you need to go further with payload mutations you always can use the forms_bridge_payload filter to mangle your bridge submissions with PHP and all of its power and flexibility. Checkout the API documentation.


To conclude, its worth to mention that you can get the same bridge setup doing it manually, but with templates you can save a lot of time! We strongly recommend you to check for templates before start creating new bridges.