en
Language
  • en
  • cs
  • hu
  • de
  • fr
  • es
  • br
  • ru
  • kr
  • jp
AI translation
  • it
  • pl
  • tr

How to Create Quotation Templates for CRM Quotes

Introduction

This guide shows you how to create quotation templates for CRM quotes in Easy8. A quotation template is a Word (.docx) file with tokens. When you generate a quotation, Easy8 replaces the tokens with data from the opportunity, the quote and its items, lists the quote items in tables with their totals, and attaches the finished document to the opportunity.

Target Audience

Administrator

Prerequisites

Before you start, make sure you have:

  • A price book assigned to the project where your opportunities are.
  • Use CRM items enabled in the CRM settings of the project. Without it, quote items and prices do not work and quotations cannot be generated.
  • Products with a Product category. Item tables select items by product category.
  • The Manage price book quotes permission.

How to Create a Quotation Template

Step 1: Learn the token syntax

A token is a prefix and a column name inside double curly brackets, for example {{easy_price_book_quote_name}}. When the quotation is generated, the token is replaced with the value.

  • The prefix names the record the value comes from: easy_crm_case_ for the opportunity, easy_price_book_quote_ for the quote and easy_crm_case_item_ for a quote item.
  • Values of a related record use the plural name of the relation and a dot, for example easy_crm_case_main_easy_contacts.city for the customer's city.
  • Custom fields use cf_ and the custom field ID, for example easy_crm_case_cf_12. You find the ID at the end of the URL when you edit the custom field in Administration » Custom fields.
  • Tokens are case-sensitive. One space is allowed right after the opening brackets and before the closing ones.
  • The older form with percent signs, for example %easy_price_book_quote_name%, still works. Use curly brackets in new templates.

All available tokens are listed in Token Reference below.

Step 2: Add opportunity, customer and quote details

  1. Open your template in Word.
  2. Type the tokens where the values belong, for example the customer name and address, the account manager's contact details, the quote identifier and the quote dates.
  3. Add the currency token after every money value. Prices are printed as numbers without a currency.

Warning: Tokens in headers and footers are not replaced. Put them in the document body.

Step 3: Add a table of quote items

Item tokens work only inside a table marked for items. The table must have at least three rows: a header row, an item row and a total row.

  1. Insert a table with three rows. Put the column titles in the first row.
  2. Right-click the table and select Table Properties » Alt Text. In Title, enter PBPC- followed by the name of a product category, for example PBPC-Services. Use the Title field, not Description.
  3. To list several categories in one table, separate their names with a vertical bar and no spaces, for example PBPC-Implementation Services|Support Services. Items are listed category by category in this order.
  4. In the second row, put one item token in each cell, for example easy_crm_case_item_name, easy_crm_case_item_amount, easy_crm_case_item_unit, easy_crm_case_item_price_per_unit, easy_crm_case_item_discount and easy_crm_case_item_total_price, each in curly brackets.
  5. In the third row, put a label such as Services total in an earlier cell, and only a placeholder such as 0 EUR in the last cell.
  6. For another group of items, add another table with its own PBPC- title.

When the quotation is generated, the second row is repeated for every matching item. The number in the last cell is replaced with the sum of the listed items, and the letters with the currency code.

Warning: The category names in the title must match the product categories exactly, including capital letters and spaces. You find them in Administration » Enumerations » Product category.

Step 4: Add the final price and subtotals

  • Quote total – easy_price_book_quote_price followed by easy_price_book_quote_currency. With Use CRM items enabled, the quote price is the sum of all its items.
  • Total of one item table – the placeholder in the last cell of the table, filled automatically.
  • Subtotal of one product category anywhere in the document – easy_price_book_quote_price_book_product_category_ followed by the category ID. You find the ID at the end of the URL when you edit the category in Administration » Enumerations » Product category.

There is no token for VAT or a total including tax. Write VAT terms as text, or use a custom field of the opportunity.

Step 5: Upload the template

  1. Go to Administration » Price books and open the price book used by the project.
  2. Attach the .docx template as a file attachment.
  3. Click Save.

Every file attached to a price book of the project is offered as a template, so attach only .docx files there.

Step 6: Generate a quotation

  1. Open the opportunity.
  2. Right-click the quote and select Generate quotation.
  3. Choose the template and click Generate quotation.

The generated document is named after the quote and attached to the opportunity. For the active quote, Easy8 uses the items of the opportunity. For an optional quote, it uses the items of that quote.

Quotation Template Properties

  • A misspelled or unknown token is not an error. It stays in the document as typed.
  • Dates use the date format, and numbers the decimal and thousands separators, of the user who generates the quotation.
  • When a paragraph is processed, all its text takes the formatting of its first part. A bold word or a link inside a sentence is lost.
  • An item belongs to the category of its price book product. For a bundle, the category of the first product in the bundle is used.
  • Items added manually, without a price book product, have no category and never appear in an item table.
  • An item whose category is not named in any table is not printed, but it still counts in the quote price.
  • Only the second row of an item table is repeated. The header and the item row must each be a single row.
  • The last cell of an item table is always overwritten. Numbers become the total and words become the currency code. If the cell is empty, no total is printed.

Token Reference

Tokens are listed without curly brackets. Add the brackets in the template.

Quote

Quote tokens are filled when you generate the quotation from a quote. Quotes have no custom field tokens.

TokenValue
easy_price_book_quote_nameQuote name
easy_price_book_quote_priceTotal price of the quote
easy_price_book_quote_currencyCurrency code, for example EUR
easy_price_book_quote_price_book_product_category_ + IDSum of the quote items in the product category
easy_price_book_quote_start_date, easy_price_book_quote_due_dateStart date, due date
easy_price_book_quote_usermonths, easy_price_book_quote_userlimitNumber of months, user limit
easy_price_book_quote_guidUnique quote identifier
easy_price_book_quote_author, easy_price_book_quote_created_atAuthor, creation date and time
easy_price_book_quote_brand, easy_price_book_quote_easy_product_solution, easy_price_book_quote_easy_price_book_product_versionBrand, solution, product version
easy_price_book_quote_invoice_to_partnerInvoice to partner (Yes or No)

Opportunity

TokenValue
easy_crm_case_id, easy_crm_case_name, easy_crm_case_descriptionID, name, description
easy_crm_case_price, easy_crm_case_currencyPrice, currency
easy_crm_case_price_book_product_category_ + IDSum of the opportunity items in the product category
easy_crm_case_weighted_forecast, easy_crm_case_case_probabilityWeighted forecast, probability
easy_crm_case_easy_crm_case_status, easy_crm_case_sale_typeStatus, sale type
easy_crm_case_contract_date, easy_crm_case_next_action, easy_crm_case_paid_on, easy_crm_case_sold_on, easy_crm_case_closed_on, easy_crm_case_locked_atDates
easy_crm_case_created_at, easy_crm_case_updated_atCreation and update date and time
easy_crm_case_projectProject name
easy_crm_case_email, easy_crm_case_email_cc, easy_crm_case_telephoneContact fields of the opportunity
easy_crm_case_author, easy_crm_case_assigned_to, easy_crm_case_external_assigned_toAuthor, account manager, external account manager
easy_crm_case_easy_last_updated_by, easy_crm_case_easy_closed_byUsers who last updated and closed the opportunity
easy_crm_case_main_easy_contact, easy_crm_case_accounted_byCustomer name, partner name
easy_crm_case_easy_crm_case_payment_method, easy_crm_case_need_reactionPayment method, need reaction (Yes or No)
easy_crm_case_tags, easy_crm_case_easy_external_id, easy_crm_case_affiliate_uuid, easy_crm_case_easy_entity_activitiesTags, external ID, affiliate ID, sales activities
easy_crm_case_cf_ + IDOpportunity custom field

Customer

Customer tokens start with easy_crm_case_main_easy_contacts. (with a dot). With easy_crm_case_easy_contacts. instead, the same tokens print all related contacts, separated by commas.

TokenValue
easy_crm_case_main_easy_contacts.contact_name, .firstname, .lastnameFull name, first name, last name
easy_crm_case_main_easy_contacts.organization, .street, .city, .postal_code, .countryAddress. The country is printed as an ISO code, for example CZ.
easy_crm_case_main_easy_contacts.email, .telephone, .websiteContact details
easy_crm_case_main_easy_contacts.registration_no, .vat_no, .vat_rateCompany ID, VAT ID, VAT rate
easy_crm_case_main_easy_contacts.bank_account, .iban, .swift, .bic, .variable_symbolBank details
easy_crm_case_main_easy_contacts.billing_ + any address, contact, company or bank name above, for example .billing_streetBilling information instead of contact information
easy_crm_case_main_easy_contacts.id, .guid, .parent, .contact_groups, .easy_contact_type, .is_globalRecord data
easy_crm_case_main_easy_contacts.assigned_to, .customer_success_manager, .external_assigned_to, .authorUsers
easy_crm_case_main_easy_contacts.easy_contact_status, .easy_contact_level, .easy_contact_industry, .easy_contact_customer_left_reasonClassifications
easy_crm_case_main_easy_contacts.account_opened, .account_closed, .account_durationAccount dates, duration in days
easy_crm_case_main_easy_contacts.expected_revenues_this_year, .last_year_revenues, .lifetime_revenuesRevenues
easy_crm_case_main_easy_contacts.accounted_by, .tags, .easy_external_id, .time_zone, .referencable, .created_on, .updated_onOther data
easy_crm_case_main_easy_contacts.cf_ + IDAccount custom field

Account Manager

For the external account manager, use easy_crm_case_external_assigned_tos. instead of easy_crm_case_assigned_tos.

TokenValue
easy_crm_case_assigned_tos.firstname, .lastname, .loginName, login
easy_crm_case_assigned_tos.mail, .phoneEmail, phone
easy_crm_case_assigned_tos.easy_user_type, .roles, .groups_namesUser type, roles, groups
easy_crm_case_assigned_tos.id, .status, .admin, .last_login_on, .created_on, .updated_onAccount data
easy_crm_case_assigned_tos.cf_ + IDUser custom field, for example a direct phone number

Partner

Partner tokens start with easy_crm_case_accounted_bies. (with a dot). The spelling accounted_bies is correct.

TokenValue
easy_crm_case_accounted_bies.id, .name, .website, .region, .description, .valid_untilPartner data
easy_crm_case_accounted_bies.channel_manager, .external_channel_manager, .author, .easy_partner_levelUsers, partner level
easy_crm_case_accounted_bies. + any address, contact, company, bank or billing name listed for the customerPartner address and billing details
easy_crm_case_accounted_bies.cf_ + IDPartner custom field

Quote Item

Item tokens work only in the second row of a PBPC- table. The item description has no token.

TokenValue
easy_crm_case_item_name, easy_crm_case_item_amount, easy_crm_case_item_unitItem name, quantity, unit
easy_crm_case_item_price_per_unit, easy_crm_case_item_total_priceUnit price, line total after discount
easy_crm_case_item_discountDiscount in percent, without the percent sign
easy_crm_case_item_product_code, easy_crm_case_item_easy_external_idProduct code, external ID
easy_crm_case_item_easy_crm_cases. + an opportunity column, for example easy_crm_case_item_easy_crm_cases.nameOpportunity values. Customer and user values are not available here.
easy_crm_case_item_easy_price_book_quotes. + a quote column, for example easy_crm_case_item_easy_price_book_quotes.currencyQuote values

General Tokens

TokenValue
today_date, today, dateToday's date
nowCurrent date and time
year, this_month_number, this_month_name, last_month_number, last_month_nameCalendar values
user_name, user_first_name, user_last_name, user_signatureThe user who generates the quotation

Our Recommendations

  • Start from a working template and change it step by step. Generate a test quotation after each change.
  • Copy the product category names from Administration » Enumerations » Product category into the PBPC- titles, so they match exactly.
  • Keep each token, and any text that needs its own formatting, in a separate paragraph or table cell.
  • Add items to quotes from the price book, not manually, so they appear in the item tables.
  • Attach only .docx templates to price books.

Troubleshooting

ProblemSolution
A token appears unchanged in the generated documentCheck the spelling against Token Reference. Move tokens from the header or footer into the body. For quote tokens, generate the quotation from the quote.
Item tokens appear unchangedMove them to the second row of a table whose alt text Title starts with PBPC-.
An item table is empty or items are missingCheck that PBPC- is in the Title field, that the category names match exactly, and that the items were added from a price book.
Items appear above the table headerAdd a total row. The table needs at least three rows.
The total shows only the currency, or the label is replaced by the currencyPut the label in an earlier cell and only a placeholder such as 0 EUR in the last cell.
Prices appear without a currencyAdd easy_price_book_quote_currency after each price.
The template is not offeredAttach it to a price book assigned to the project.

Conclusion

You have created a quotation template in Easy8. With tokens and item tables, your quotations are generated with current customer data, quote items and totals, ready to send to the client.

Related Topics and Further Reading

Try Easy8 in 30 days free trial

  • Access all features
  • SSL protected
  • No credit card required