Tags Sync Execution Model
Tags Sync is a deterministic reconciliation process executed by the integration. On each sync run, the integration:- retrieves selected Dimensions and Dimension Values from the Accounting System
- retrieves the current state of Tag Groups and Tags from Pleo
- reconciles Pleo to match the Accounting System state
- applies the required create, update, unarchive, and archive operations via the Pleo API
High-Level Process
Sync Steps
Tags Sync runs in three steps. Step 1 runs once on first connection to configure which Dimensions to synchronise. Steps 2 and 3 run on a recurring schedule to keep Pleo aligned with the Accounting System.Step 1: Select Dimensions
The integration retrieves active Dimensions from the Accounting System and selects which ones to synchronise. On first connection, Dimensions whose code matches an existing active Tag Group in Pleo are automatically pre-selected. The selection is stored in the integration’s configuration and used as input to every subsequent sync cycle. Up to 5 Dimensions may be selected at any time. If a selected Dimension becomes inactive in the Accounting System, it is automatically deselected and its corresponding Tag Group is archived in Pleo. For the full selection rules, auto-selection logic, and deselection behaviour, see Dimension Selection.Step 2: Sync Tag Groups with Dimensions
The integration reconciles selected Accounting Dimensions with Tag Groups in Pleo.Outcomes
| Condition | Result |
|---|---|
| Matching active Tag Group exists | Preserve existing Tag Group |
| Matching archived Tag Group exists | Unarchive existing Tag Group |
| No matching Tag Group exists | Create new Tag Group |
Step 3: Sync Tags with Dimension Values
For each synchronised Dimension–Tag Group pair, the integration reconciles Dimension Values with Tags.Outcomes
| Condition | Result |
|---|---|
| Matching active Tag exists | Preserve Tag and update name if required |
| Matching archived Tag exists | Unarchive Tag and update name if required |
| No matching Tag exists | Create new Tag |
Duplicate Handling
If multiple Tags share the same code:- retain a single Tag
- archive duplicate Tags
- ensure the retained Tag has the correct current name
Matching Model
All reconciliation logic follows these rules:| Rule | Description |
|---|---|
| Code-Based Identity | Matching is performed using codes, never names |
| Case-Insensitive Matching | Codes must be compared case-insensitively |
| Mutable Names | Names may change over time and must not be treated as stable identifiers |
| Stable Identity | Codes represent long-term entity identity across sync runs |
Scheduling and Execution
The integration is responsible for all sync scheduling and execution behaviour.Execution Requirements
| Requirement | Description |
|---|---|
| Scheduling Ownership | The integration defines sync timing and execution frequency |
| Full Reconciliation | Every sync execution reconciles against full Accounting System state |
| Non-Overlapping Execution | Sync executions must not overlap |
| API Ownership | All changes are applied through the Pleo Tags API. See the how-to articles for step-by-step implementation instructions. |
| Rate Limit Handling | Scheduling must respect Accounting System API rate limits. See Pleo API rate limits. |
Scheduled Execution
Most integrations execute Tags Sync periodically (commonly every 60 minutes). Each scheduled run:- retrieves Accounting System state
- reconciles Pleo against that state
- applies all required updates via the API
Manual Execution (Optional)
Integrations may optionally support manual sync triggers. Manual execution must follow the same reconciliation rules and execution model as scheduled runs.Processing Principles
All implementations must follow these architectural principles.| Principle | Description |
|---|---|
| Unidirectional Sync | Data only flows from the Accounting System into Pleo |
| Idempotent Execution | Re-running the same sync with unchanged data produces the same final state |
| Deterministic Reconciliation | Identical inputs must produce identical outputs |
| Non-Destructive Updates | Entities are archived instead of deleted |
| Consistent Identity Resolution | Matching logic must behave consistently across executions |
| Stateless Execution | Each sync run must independently reconcile against current source state |
Expected Outcome
After implementation:- Pleo accurately reflects selected Accounting Dimensions
- Tag Groups and Tags remain stable across repeated sync runs
- outdated entities are archived automatically
- duplicate entities are eliminated through reconciliation
- bookkeepers always work with current Tags aligned to the Accounting System
What Comes Next?
- Dimension Selection
- Sync Tag Groups with Dimensions
- Sync Tags with Dimension Values
- Data Mapping
- Sync Periodicity and Scheduling
Related Reading
- Platform Capabilities — Tags Sync Overview
- Tags Sync Workflow Guide
- Connection and Authorisation Overview