Agreement Template
An agreement template is the whole document in one place: the wording that prints, the details the document asks somebody to fill in, and the list of people who have to sign. All three are set up here, so a new kind of agreement is a new template rather than a change to the software.
What it is for
A client will ask for a change to an agreement every few months. A new allowance on the bond. A second witness. The validity changed from a year to two. If any of that needed a developer, the engine would be useless.
So nothing about the document is built into the software. The template carries it:
- The letter is wording you type on the Letter tab. The parts that differ from one agreement to the next are placeholders, and each placeholder is bound to a value when the document is produced.
- The inputs are the details the document asks for, grouped for readability. Each input has a label the reader sees, a data type, and optionally a value that is filled in automatically.
- The signers are roles, not people. One line per signature: the authorized signatory, and a witness. Each line becomes one signature slot on every agreement made from this template, with its own link and its own one time code.
This is the answer to "can you change the agreement for us". You change the template. A different arrangement, a different counterparty type, a different set of terms is a different template, not a code change.
Placeholders
A placeholder in the letter body is bound to a value when the document is produced. Five are always available:
party the counterparty name
company your company name
agreementno the agreement number
validfrom the date the agreement starts
validto the date it ends
Every input you define on this template is also available as a placeholder, under the input code that is derived from its label. A placeholder that has nothing bound to it comes out empty, so check a produced document before the client does.
The editor offers the five standard placeholders from its toolbar, and shows a sample letter you can start from while the body is still blank.
Every field, in plain words
Header
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Template No | Your short code for the template. | EMP-UNDERTAKING | Required. Type a new one when creating. It cannot be changed afterwards. |
| Name | What the user and the consultant read when picking this template. | Employment undertaking | Required. |
| Notes | A note to yourself or to the next consultant about what this template is for. | Signed by every permanent factory hire on joining | |
| Validity | How the end date of the agreement is worked out. | By Days | Required. Pick from the list. See the values below. |
| Validity (Days) | How many days an agreement from this template is valid for. | 365 | Shown only when Validity is By Days. Type 0 if the agreement has no expiry. |
| Expiry Date | The fixed date on which every agreement from this template expires. | 30-06-2027 | Shown only when Validity is By Expiry Date. |
Validity takes one of three values:
BDBy Days - the agreement runs for a number of days from when it starts. Use this for anything that follows the person, such as a bond or an undertaking. This is what a new template starts on.BEBy Expiry Date - every agreement from this template expires on the same fixed date, whenever it was signed. Use this for something tied to a financial year or to a scheme that ends.NENo Expiry - the agreement does not expire. Use this for a confidentiality undertaking.
Only the field the chosen mode uses is shown, and the other is cleared, so a stale number cannot be left behind by changing your mind.
Inputs
The Inputs tab holds the groups. Each group opens its own list of inputs from the link on its line.
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Group Name | The heading the reader sees above this set of inputs. | Salary and allowances | Required. Each group name must be used only once in a template. |
| Sort Order | Where this group sits relative to the others. | 10, 20, 30 | Leave gaps so a group can be inserted later. |
| Inputs | Opens the inputs that belong to this group. | Click it | A group with no inputs is refused on save. |
The inputs inside a group
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Input Label | What the reader of the document is asked for. | Monthly gross salary | Required. This is the one thing the signer actually reads, so write it as a question they can answer. |
| Input Code | The short name the letter uses for this input as a placeholder. | Fills itself from the label. Leave it. | Not shown to the signer. It is derived once from the label and then left alone, so renaming a label does not break a letter already written. |
| Data Type | What kind of value this input takes. | Amount | Required. See the values below. |
| Group | Which group the input belongs to. | Fills itself from the group you opened. Leave it. | |
| Default Value | The value the input starts with if nothing fills it. | 0 | |
| Value SQL | A stored lookup that fills this input in automatically when the document is produced, rather than asking for it. | Leave it blank to have the input filled in by hand. Fill it when the value is already recorded elsewhere in the system. | This is how an agreement comes out already carrying the employee's salary and joining date. Ask a senior consultant to write it. |
| Minimum | The lowest value accepted. | 25000 | Leave 0 for no minimum. The minimum cannot be greater than the maximum. |
| Maximum | The highest value accepted. | 500000 | Leave 0 for no maximum. |
| Mandatory | Whether the document can be signed without this input filled. | Tick it for anything the agreement would be meaningless without. | |
| Sort Order | Where the input sits inside its group. | 10, 20, 30 |
Data Type takes one of six values:
TXTText - free wording, such as a job title.NUMNumber - a plain count, such as a notice period in months.AMTAmount - money. Use this for a salary, a bond value or an allowance, so it prints as rupees.PCTPercentage - a rate, such as a share of a bonus.DTEDate - a single date, such as a joining date.YSNYes / No - a switch, such as whether transport is provided.
Signatories
One line per signature the document needs.
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Signer Role | What this signature is. Picked from the list. | Authorized Signatory | Required. Each role may be used only once in a template, so a template has at most one signatory line and one witness line. SIGNATORY Authorized Signatory, for the person the agreement binds or the person signing for the company. WITNESS Witness, for anybody attesting it. |
| Role Description | The wording that appears beside the signature slot. | Witness, parent or guardian | Use it to say in the client's own words who this signature belongs to. |
| Pick From | Where the signer's details come from. | Employee, for a company signatory | Leave it blank and the signer is typed in by hand. Pick EMPLOYEE or USER and the panel offers a picker that fills the name, email, designation and mobile. |
| Value SQL | A stored lookup that proposes the signer automatically. | Leave it blank unless a senior consultant has written one for you. | |
| Sequence | The order the signature slots are listed in. | 1 for the employee, 2 and 3 for the witnesses | Required. It is the order they are shown in. They can still sign in any order. |
| Weightage | How much this signature counts for. | Leave it at the default unless the client has asked for partial signing rules. | |
| Mandatory | Whether the document is complete without this signature. | Tick it for the signatory, and for a witness if the client insists on one. | |
| CNIC Required | Whether this signer must give their identity card number. | Tick it. Recommended for witnesses. | |
| Address Required | Whether this signer must give their address. | Tick it for witnesses on a bond. | |
| Designation Required | Whether this signer must give their job title. | Tick it for a company signatory. | |
| Attachments Allowed | Whether this signer may attach a file, for example a copy of their identity card. | Tick it where the client wants proof on file. | |
| Attachment Mandatory | Whether the signature is incomplete without that attachment. | Tick it only when the client really will refuse unsigned documents over a missing scan. |
Letter
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Letter Body | The wording the agreement prints, with placeholders where the details go. | The client's own wording, with the counterparty name, the dates and the amounts put in as placeholders | While the body is empty the editor offers a sample letter to start from. |
How to configure it
- Get the final wording from the client, and the list of who signs. Both belong to the client, not to you.
- Open Agreement Template and create a new record. Type the code and the name. The code cannot be changed later, so get it right now.
- Pick the Validity. By Days with
365covers most undertakings. No Expiry covers a confidentiality agreement. - Go to Inputs and add a group, for example Salary and allowances. Give it a sort order.
- Open that group and add the inputs. For each one, write the label as a question the signer can answer, pick the data type, and tick Mandatory where the agreement needs it.
- Add further groups for the other sections of the document. Every group must have at least one input or the save is refused.
- Go to Signatories and add one line per signature. Put the authorized signatory at sequence
1, and the witness, if the client wants one, at sequence2. Tick CNIC Required on the witness. - Go to Letter. Use the sample letter as a starting point if the body is blank, then paste or type the client's wording over it.
- Put the placeholders where the details belong: the counterparty name, the two dates, and each input you defined.
- Save. Then name this template on Agreement Configuration so a screen actually produces it.
- Produce one agreement on a test record and read the printed document end to end. A placeholder with nothing bound to it comes out empty and only a read will catch it.
Scenarios
"Can you add the transport allowance to the bond"
No, and nobody needs to. Open the template, open the group the allowances are in, add an input called Monthly transport allowance with data type Amount, and put its placeholder in the letter where it should print. Save. The next bond carries it.
"The agreement should already know the salary rather than asking for it"
That is what Value SQL on the input is for. An input with a stored lookup fills itself when the document is produced, and the signer is handed a document that already carries the figure. An input with nothing there is filled in by hand instead. Ask a senior consultant to write the lookup; the rest of the template is yours.
"The apprentice bond needs a witness but the staff undertaking does not"
Two templates. The apprentice bond carries a signatory line and a witness line, the staff undertaking carries the signatory line only. Changing one does not touch the other, and Agreement Configuration decides which screen produces which.
Note the limit while you are planning this with the client. There are two signer roles to choose from, authorized signatory and witness, and each may be used only once on a template. A template therefore supports one signatory and one witness. A client who wants two witnesses attesting the same document cannot have both as signature slots on one template.
"Our bond runs for two years from joining, but the pay for performance letter always ends on 30 June"
| Apprentice bond | Pay for performance letter | |
|---|---|---|
| Validity | By Days | By Expiry Date |
| Validity (Days) | 730 | not shown |
| Expiry Date | not shown | 30-06-2027 |
"The printed agreement has a blank where the salary should be"
The placeholder in the letter does not match an input on the template, or the input is there and nothing filled it. A placeholder with nothing bound to it prints as nothing rather than as an error.
What it is connected to
- Read by Agreement Configuration, which is what attaches a template to a screen. A template nobody has named there produces nothing.
- A template must be active before a configuration line can name it. A line pointing at an inactive template is refused.
- The signer roles here are what the signature slots on every agreement are created from. Changing a role on the template does not change agreements already created.
- Validity here is what sets the end date on each agreement produced.
If something looks wrong
- "The save says the template needs at least one input group" - the inputs are the document. A template with none would produce an empty letter.
- "The save says a group has no inputs" - an empty group was added and left. Either fill it or delete it.
- "The save says the input code is used more than once in this template" - two inputs have labels that reduce to the same short name, even in different groups. Inputs are stored flat against the document, so a duplicate would overwrite the other one. Reword one label.
- "The save says the template needs at least one signer role" - with no roles, there is nobody to send the document to.
- "The save says the signer role is used more than once" - two lines carry the same role, usually because the client asked for two witnesses. Only one line per role is allowed, so one of the two has to go.
- "The save says minimum cannot be greater than maximum" - the two limits on an input are the wrong way round.
- "The agreement prints with gaps" - a placeholder has nothing bound to it. Check the placeholder name against the input labels on this template.