Part 5 · People and team
Labour relations
Certification, collective agreement, seniority, grievances and dues, on the employer side and the union side alike, in one file both parties read.
Odoo knows who works for you. It does not know which collective agreement covers that person, how much seniority they hold in their bargaining unit, or which clock is running on the grievance filed last week. The Labour relations application adds that half. It is for whoever handles labour relations on the employer side, for union representatives, and for managers who have to live inside a negotiated text. It replaces nothing in the employee file: it describes what certification adds on top of it.
Overview#
A syndicat (union) is the association you write to and remit dues to. A unité de négociation (bargaining unit) is what the certification covers: a group of employees, within one given company. It is the structural piece of the application, because a group where each site is a separate company has as many units as it has sites, each with its own agreement and its own expiry.
A convention collective (collective agreement) belongs to a unit. A unit stacks several of them over time: an agreement is not rewritten, it is superseded, and the old one stays readable because a grievance from two years ago is judged against the text of its day. Each article (clause) of the agreement carries a standardised subject (pay, hours, leave, seniority, job posting, discipline, grievance, dues, insurance), and it is that subject which lets a clause be found rather than hunted for.
An appartenance (membership record) links a person to a unit. It carries two states that must not be run together: Couverte par l'unité (covered by the unit) and Membre du syndicat (union member). Section 47 of the Quebec Labour Code requires the dues deduction from every employee in the unit, member or not. Coverage therefore decides the deduction, the card decides the vote, and a covered person who never signed pays dues all the same. The membership record also carries la date d'ancienneté (the seniority date) that the agreement recognises, which is not the date of the first employment contract.
A grief (grievance) is the file of a disagreement over how the agreement is applied. It belongs to the unit, never to one of the two parties: employer and union read the same record, each with their own fields. Its étapes (steps) each carry the delay the agreement allows and the deadline that follows from it.
Cotisations (dues) are described by a règle (rule) attached to the agreement, declared in a remise (remittance) per period on the employer side, and reconciled in a relevé de cotisations perçues (statement of dues received) on the union side.
Two companion modules sit on that base. The employer side adds obligations with their reminder, the liste d'ancienneté affichée (posted seniority list), affichages de poste (job postings) and workforce movements, and the comité de relations de travail (labour-management committee). The union side adds adhésions (cards), assemblées (meetings) and their votes, délégués (stewards) and their time off, and the reconciliation of dues.
On the demonstration, the unit covers the technical and support staff of Boréal Services-conseils: five people covered, of whom only three have signed a card. The advisors, compliance and management sit outside the unit, and their employee file crosses every screen without showing anything in particular. An organization with no certification behaves in exactly the same way.
People and positions are shared with Employees. Job postings read alongside those of Recruitment, but they do not depend on them: a unit posting obeys the agreement, a recruitment posting obeys the market.
This chapter is documented without screenshots: the application has only just been installed on the demonstration, and the set of figures will follow.
Configuration#
Access and rights#
The application adds no rights group of its own. It reuses the two Symbifox already puts in place for people.
| Role | What it opens |
|---|---|
| All staff | Their own membership record, the posted seniority list, the agreement and its clauses, the grievances that name them. Nothing else. |
| People management | Every file of their company: memberships, grievances, obligations, postings, dues. Never another company's. |
| People direction | Full control, including deleting a file. |
Three boundaries are worth knowing before granting access. A grievance is read only by the people it names and by people management, and its steps follow the same boundary, because the calendar of a disciplinary file already says a great deal. The posted seniority list is readable by all staff, which is the whole point of posting it, but a list still in draft is not. Finally, remittances, dues statements and obligations are not open to staff at all.
Settings#
The application has no setting. Everything that varies from one organization to the next is written in the agreement and is entered with it.
Master data#
Three things have to be created before any work, in this order.
- The syndicat (union), under Configuration.
- The unité de négociation (bargaining unit), under Configuration, attached to a company and to that union.
- The convention collective (collective agreement), its articles (clauses) and its règle de cotisation (dues rule), under Conventions.
Membership records come next, and everything else hangs off them.
Getting started#
On day one the application is empty, and it has to be filled in order, because each object hangs off the one before it.
- Create the syndicat under Configuration, with its central body and its local.
- Create the unité de négociation, attached to a company and to that union, and copy the wording of the certificate into Groupe visé (group covered).
- Enter the convention in force, its clauses filed by subject, and its dues rule.
- Attach people to the unit, keeping those who are covered apart from those who have signed a card.
- Compose and post a first liste d'ancienneté (seniority list), which will be the reference for every job posting.
- Record the recurring obligations of the agreement, with their reminder.
From there, grievances, postings, meetings and remittances are entered as they come. An old agreement is worth entering too: it is the one that will apply to a grievance about facts from its day.
Common tasks#
Record a certification#
The starting point for everything else. The unit describes the group the certificate covers.
- Open Relations de travail > Configuration > Unités de négociation, then Nouveau (new).
- Give it a name that is used day to day.
- Choose the union and the company.
- Enter the certification number and date.
- Copy the wording of the certificate into Groupe visé: who is covered, and who is not.
- Move the state to Accréditée (certified).
The unit appears with its counters at zero. The certification date is required as soon as the state becomes Accréditée: it is what starts the clocks on the first agreement.
Enter an agreement and its clauses#
An agreement is entered once and serves for years. The time spent filing clauses by subject is the time that will not be spent looking for them.
- Open Relations de travail > Conventions > Conventions collectives, then Nouveau.
- Choose the unit, the effective date and the expiry.
- In the Articles tab, add one line per clause: its number as written, its title, its subject, and its text.
- In the Cotisations tab, add the dues rule the text provides for.
- Use the Mettre en vigueur (bring into force) button.
The agreement moves to En vigueur (in force), and the one that was in force becomes Remplacée (superseded), pointing at the new one. An expired agreement stays in force until it is superseded: its conditions keep applying, and it is the expiry date, not the state, that says it is time to bargain.
Attach a person to the unit#
This is where what they pay and what they vote on is decided.
- Open Relations de travail > Dossiers > Liste d'ancienneté, then Nouveau.
- Choose the person and the unit.
- Enter the entry into the unit. The seniority date is proposed at the same value.
- Tick or untick Couverte par l'unité and Membre du syndicat, separately.
- If the seniority date differs from the entry into the unit, write the reason.
The reason is required in that case, and it is not a formality: a person challenging their rank has to be able to hear why their date is the one it is. A membership record does not cross companies: a transfer ends on one side and opens on the other, and it is the agreement that says whether seniority follows.
Post a seniority list#
The posted list is a dated photograph, not a view that recomputes. It is what ranks are challenged against.
- Open Relations de travail > Côté employeur > Listes affichées, then Nouveau.
- Choose the unit and the date at which seniority is struck.
- Enter the end of the challenge period the agreement provides for.
- Use the Composer les rangs (compose the ranks) button.
- Check the ordering, then use the Afficher (post) button.
Ranks freeze at the moment of posting. A seniority correction made the following month does not rewrite the list: every line carries its own date, copied. An error is corrected by posting a corrected, dated list, which leaves the trace of the correction. Only the Contesté (challenged) flag stays editable on a posted list, because challenging is not correcting.
Post a position and award it#
Three doors lead to the same position, and they do not obey the same rules: the ordinary posting, the bump, and the recall.
- Open Relations de travail > Côté employeur > Affichages et mouvements, then Nouveau.
- Name the position, choose the unit and the nature of the movement.
- Choose the posted seniority list that governs, then the posting and closing dates.
- Use the Ouvrir (open) button.
- In the Candidatures (bids) tab, add one line per bid. The rank is proposed from the reference list.
- In the Octroi (award) tab, choose the successful bid, then use the Octroyer (award) button.
If the successful bid is not the most senior, the award is refused until the reason is written. This is not a prohibition: an employer is entitled to pass over the most senior person, they are not entitled to do it without a reason, and that reason is what will be read back at the grievance. A withdrawn or ineligible bid does not count in that comparison, and setting a bid aside likewise calls for a written reason.
File a grievance and follow its clocks#
A grievance is rarely lost on the merits. It is lost on the calendar.
- Open Relations de travail > Dossiers > Griefs, then Nouveau.
- Choose the unit. The agreement covering the date of the facts is proposed on its own.
- Fill in the subject, the nature, the date of the facts and the filing date.
- Name the people concerned, except for a union or employer grievance that names nobody in particular.
- Write the statement and the remedy sought, then use the Déposer (file) button.
- In the Étapes et délais (steps and delays) tab, add one line per step the agreement provides for, with its start date and its delay in days.
Each step's deadline is computed and searchable. The grievance shows the first one still open and flags itself in red once it has passed. A completed step hands over to the next. A delay of zero means the agreement imposes none, not that the deadline is today.
Prepare and remit dues#
The agreement's rule is applied to a base you enter. The module does not guess salaries.
- Open Relations de travail > Cotisations > Remises, then Nouveau.
- Choose the unit and the period.
- Use the Poser une ligne par personne couverte (one line per covered person) button.
- Enter the base for each line, taken from your payroll system.
- Use the Appliquer la règle sur l'assiette (apply the rule to the base) button.
- Use the Déclarer (declare) button, then Marquer remise (mark remitted) once payment is made.
The button takes covered people, never members: it is coverage that creates the deduction. The gap between the amount entered and what the rule gives stays visible until it is corrected or explained. A declared remittance no longer recomputes, because the declared amount is what the employer states it withheld.
Reconcile dues received#
On the union side, the figure that matters is not the amount received, it is the gap.
- Open Relations de travail > Côté syndical > Cotisations perçues, then Nouveau.
- Choose the unit and the period.
- Enter the amount received and the number of people on the statement.
- Link the remittance the employer declared for the same period.
The amount gap, the headcount gap and the unit's covered headcount appear side by side. A statement with no remittance linked is never marked reconciled, because the absence of a comparison must not read as a successful one. A gap is not an accusation: a period offset, or a person attached late, produces one too.
Hold a meeting and record a vote#
The right to vote follows the card, never coverage.
- Open Relations de travail > Côté syndical > Assemblées et votes, then Nouveau.
- Name the meeting, choose the unit, the date and the nature.
- Enter the quorum required, as a number of members present.
- In the Présences (attendance) tab, tick the people present.
- Use the Marquer tenue (mark held) button.
- In the Votes tab, add one line per question, with the method, the majority threshold and the counts.
Quorum is measured on the members present, not on the covered headcount. The share in favour is computed on the votes cast: abstentions stay out of the base, failing which votes the meeting carried would be counted as lost. The module refuses to count more votes than there are people present entitled to vote.
Follow an obligation and its reminder#
An obligation nobody is warned about is a missed obligation.
- Open Relations de travail > Côté employeur > Obligations, then Nouveau.
- Describe the obligation, choose the unit, the agreement and the clause that imposes it.
- Enter the due date, the recurrence and the number of reminder days.
- Choose the person responsible.
A task is placed on that person when the reminder window opens. A reminder of zero days means no reminder, not a reminder on the day itself. When you mark the obligation done, a recurring obligation creates the next one at the right date, and the one just completed stays on file with its date: that compliance history is what a union brings out.
Follow a steward and their time off#
What gets challenged is not the principle of union leave, it is the balance on the day of a refusal.
- Open Relations de travail > Côté syndical > Délégués et libérations, then Nouveau.
- Choose the person's membership record and their office.
- Enter the dates of the mandate and the hours the agreement grants.
- Add one line per release, with its date, its hours, its reason and its state.
Only hours taken are deducted. A refused release counts as zero hours but stays on file, and its refusal calls for a written reason. Going over the bank is flagged, not blocked.
The menus, one by one#
Relations de travail gathers six entries. The menu appears only for people who have people management.
- Relations de travail > Dossiers (files): a grouping, with no screen of its own.
- Relations de travail > Dossiers > Griefs: the list of grievances, filtered by default on open files. Columns give the number, the filing date, the unit, the subject, the nature, the next deadline and the days left. A red line has a deadline past, a grey line is settled, withdrawn or dismissed. The useful filters are Ouverts (open), Échéance dépassée (deadline passed) and En arbitrage (at arbitration); groupings by unit, by nature and by state.
- Relations de travail > Dossiers > Liste d'ancienneté: the membership records, filtered by default on current ones, ordered by ascending seniority date. Columns give the seniority date, the person, the unit, the years, and the two states Couverte and Membre. The Couvertes sans avoir adhéré (covered without a card) filter is the one that answers the dues question fastest.
- Relations de travail > Conventions: a grouping, with no screen of its own.
- Relations de travail > Conventions > Conventions collectives: the list of agreements, most recent first. A yellow line has expired, a grey line has been superseded. The Jours avant échéance (days to expiry) column turns negative once the date has passed. The En vigueur and Échéance dans l'année filters serve to prepare a bargaining round.
- Relations de travail > Conventions > Articles: every clause of every agreement. This is the text search screen: the search covers the title, the number and the content, and grouping by subject answers "what does the agreement say about leave".
- Relations de travail > Conventions > Règles de cotisation: the rules, with their percentage, their flat amount, their base and their period. An agreement carries several when the rate changed partway through: each rule is dated and the right one applies to each period.
- Relations de travail > Cotisations: a grouping, with no screen of its own.
- Relations de travail > Cotisations > Remises: the remittances the employer declared, most recent first, with the headcount, the total and the state. It is the same object the union side reconciles.
- Relations de travail > Côté employeur (employer side): a grouping, with no screen of its own.
- Relations de travail > Côté employeur > Obligations: the obligations, filtered by default on those still to do, by ascending due date. A red line is overdue. The Les miennes (mine) filter is for the person responsible.
- Relations de travail > Côté employeur > Listes affichées: the seniority lists, most recent first, with their reference date, their posting date, the end of the challenge period and their headcount. A grey line has been superseded.
- Relations de travail > Côté employeur > Affichages et mouvements: the job postings, most recent first, with their nature, their dates and the number of bids. The Affichages, Supplantations (bumps) and Rappels (recalls) filters separate the three doors.
- Relations de travail > Côté employeur > Rencontres du comité: the committee meetings, most recent first, with their date and their state. The agenda and the minutes are entered in two tabs.
- Relations de travail > Côté syndical (union side): a grouping, with no screen of its own.
- Relations de travail > Côté syndical > Adhésions: the membership cards, with their signing date, the person, the number and the state. A grey line has been withdrawn. A person who leaves and comes back carries two lines: the history is what answers "since when have they been a member".
- Relations de travail > Côté syndical > Assemblées et votes: the meetings, most recent first, with the number present entitled to vote, the number of members and whether quorum was met.
- Relations de travail > Côté syndical > Délégués et libérations: the stewards, with their hours granted, taken and left. A yellow line has gone over its bank, a grey line has a finished mandate.
- Relations de travail > Côté syndical > Cotisations perçues: the statements, with the amount received, the amount declared and the gap. A yellow line is not reconciled.
- Relations de travail > Configuration: a grouping, reserved to people direction.
- Relations de travail > Configuration > Syndicats: the list of unions, with their central body, their local and their number of units. A direct link leads to the union's units.
- Relations de travail > Configuration > Unités de négociation: the units, ordered by company, with their certification, their covered headcount, their member headcount and their number of open grievances.
- Relations de travail > Configuration > Comités: the labour-management committees, with their cadence, their last meeting held and the next one expected. A yellow line flags a cadence that is no longer being kept.
Reference#
Fields of the Unité de négociation form#
| Field | Description | Required or default |
|---|---|---|
| Nom (name) | How the unit is named day to day | Required |
| Société (company) | The company the certification covers | Required, current company |
| Syndicat (union) | The certified association | Required |
| Numéro d'accréditation (certification number) | The number on the certificate | Optional, unique per company |
| Date d'accréditation (certification date) | The date of the certificate | Required from the Accréditée state on |
| Groupe visé (group covered) | The wording of the certificate, which settles the borderline cases | Optional |
| État (state) | En demande (applied for), Accréditée (certified) or Révoquée (revoked) | En demande |
Fields of the Appartenance form#
| Field | Description | Required or default |
|---|---|---|
| Personne (person) | The person attached | Required |
| Unité de négociation | The unit covering them | Required |
| Entrée dans l'unité (entry into the unit) | The day of attachment | Required, today |
| Sortie de l'unité (exit from the unit) | Empty while they are attached | Optional |
| Date d'ancienneté (seniority date) | The one the agreement recognises | Required |
| Heures d'ancienneté (seniority hours) | For agreements that count in hours | Optional |
| Motif de la date retenue (reason for the date held) | Why this date | Required if it differs from the entry |
| Couverte par l'unité (covered by the unit) | Decides the dues deduction | Ticked |
| Membre du syndicat (union member) | Decides the right to vote | Ticked |
Fields of the Grief form#
| Field | Description | Required or default |
|---|---|---|
| Numéro (number) | Assigned automatically | Automatic |
| Unité de négociation | The unit of the file | Required |
| Objet (subject) | What the grievance disputes | Required |
| Nature | Individual, group, union or employer | Individual |
| Convention invoquée (agreement relied on) | The one in force at the date of the facts | Proposed |
| Article invoqué (clause relied on) | The clause of that agreement | Optional |
| Personnes visées (people concerned) | Empty for a union or employer grievance | Optional |
| Date des faits (date of the facts) | The one that starts the filing clock | Optional |
| Date de dépôt (filing date) | Never earlier than the date of the facts | Today |
| État (state) | From Brouillon (draft) to Réglé (settled), Retiré (withdrawn) or Rejeté (dismissed) | Brouillon |
Fields of the Règle de cotisation form#
| Field | Description | Required or default |
|---|---|---|
| Convention | The agreement providing for it | Required |
| En vigueur depuis (in force since) | A rule is dated, never overwritten | Required, today |
| Pourcentage (percentage) | Applied to the base | At least one of the two |
| Montant fixe (flat amount) | Per period, additive to the percentage | At least one of the two |
| Assiette (base) | Gross pay, regular pay excluding overtime, or hours | Gross pay |
| Période (period) | Per pay or per month | Per pay |
| Plancher et plafond (floor and ceiling) | Zero means no bound | Optional |
| Droit d'entrée (initiation fee) | Taken once on joining | Optional |
| Cotisation spéciale (special assessment) | A levy voted at a meeting | Optional |
Reports and exports#
The application produces no printed report. Lists go out through the standard export, which is enough to pass on a seniority list or a dues statement.
Automations#
A daily pass places the reminder task on the person responsible for an obligation, when the reminder window opens. It never re-places a task that was cancelled by hand, failing which the reminder would become noise people stop reading.
Three computations happen on their own, with no setting: a grievance step's deadline from its delay, a grievance's next deadline from its open steps, and the dues amount from the base entered and the rule for the period.
Public pages and portal#
The application exposes no public page and no portal access. Everything is read in the interface, within the boundaries described above.
Modules that extend this application#
| Module | What it adds |
|---|---|
| Labour relations: employer side | Obligations with their reminder, the posted seniority list, job postings and movements, preparing the remittance, the committee and its cadence. |
| Labour relations: union side | Cards and their history, meetings and their votes, stewards and their time off, the reconciliation of dues received, and the union mandate on the grievance. |
Both sit on the same base and add fields and screens to the same files. There are never two grievances for one disagreement: the day the two parties stop reading the same record, the tool stops serving what it exists for.
Understanding#
Why two states rather than one on the membership record. Because they do not answer the same question. Section 47 of the Quebec Labour Code requires the dues deduction from every employee in the unit, union member or not. Coverage therefore decides the deduction, the card decides the right to vote at a meeting. A single indicator for both would be wrong from the first pay run.
Why the posted list does not recompute. Because a rank is challenged against what was posted on a date, not against today's state. A list that recomputed would retroactively vindicate the employer in every rank grievance: the correction made afterwards would erase the very error being disputed. Every line therefore carries its own date, copied at the moment of composition.
Why seniority is not the contract's. The employee file already carries a first-contract date, which the Employee experience application uses to open benefits. It is not the same seniority: one grants an insurance, the other decides a layoff. The two diverge as soon as there has been an interruption, a transfer or a negotiated recognition, and it is the agreement that says which one counts.
Why the clock matters more than the merits. A grievance is rarely lost on its merits. It is lost when a filing, answer or referral-to-arbitration delay runs out without anyone seeing it go by. That is why every step carries its agreed delay and its computed deadline, and why the file flags itself before rather than after.
Why the guards ask for a reason instead of blocking. Awarding a position to a less senior person, recognising a different seniority date, refusing a release, not carrying a grievance: these are legitimate decisions. What is not legitimate is taking them in silence. The application forbids none of them; it only refuses to let them be taken without a text explaining them.
Why there is no payroll calculation. No payroll is installed in Symbifox, and the application assumes none. The pay clause is read, not computed. Dues are declared and remitted, not withheld. The standardised subject carried by every clause is what will make it possible to feed a payroll the day there is one.
Troubleshooting#
The Relations de travail menu does not appear. It is reserved to people who have people management. An ordinary employee does not see it, and that is intended: they reach their membership record and their agreement through their employee file.
A unit cannot be moved to Accréditée. The certification date is required in that state, because it is what starts the clocks on the first agreement. Enter it first.
A membership record cannot be saved. Two causes. Either the seniority date differs from the entry into the unit with no written reason. Or the person belongs to a different company from the unit: a membership record does not cross companies, a transfer ends on one side and opens on the other.
A posted list refuses to recompose. That is the expected behaviour: a posted list is frozen. Create a new one, dated, and post it. The old one becomes Remplacée and stays readable.
Awarding a position is refused. The successful bid is less senior than the most senior bid still standing. Write the reason in the Octroi tab, then try again.
A declared remittance refuses to apply the rule. A declared remittance no longer recomputes: the declared amount is what the employer states it withheld. Create a corrective remittance rather than editing that one.
A dues statement stays marked unreconciled although the amounts agree. It is linked to no remittance. With no comparison there is no reconciliation, and the application refuses to call it successful.
A meeting never reaches quorum. It is measured on the members present, not on the covered headcount. In a unit where many people pay dues without having signed a card, those two numbers differ markedly.
See also#
- Employees: the person's file, the positions and the departments, which remain the reference.
- Recruitment: postings open to the market, distinct from unit postings.
- Letters: to draft correspondence attached to a file.