Sync cadence and matching
Each integration refreshes on its own schedule, writes a History entry per run, and hands records to the Directory, which matches them to employees by external id or email. This reference lists the schedules and the matching rules, and the order Pyn uses to decide an employeeâs time zone.
Refresh schedules
Section titled âRefresh schedulesâ| Integration | Refreshes | Also |
|---|---|---|
| BambooHR | Every 5 minutes while active | Change notifications from BambooHR between refreshes; runs with no changes are logged as skipped |
| HiBob | Every 5 minutes while active | Runs with no changes are logged as skipped |
| Rippling | Every 5 minutes while active | |
| Workday | Every 5 minutes while active | |
| ADP Workforce Now | Every 5 minutes while active | |
| Greenhouse | Every 5 minutes while active | |
| Ashby | Every 15 minutes while active | |
| Google Workspace | Every 5 minutes while active | Calendar events; Refresh Events on a calendar pulls now |
| Microsoft 365 | Every 5 minutes while active | Calendar events; Refresh Events pulls now |
| Slack | Every 5 minutes while active | Members and channels |
| Jira | Every 12 hours while active | Projects, and issue types of projects available to steps |
| Microsoft Teams | Daily | Team members and channels |
| Email (SendGrid) | Every 5 minutes | Delivery events |
| Employee File, Sample Data | On upload or reload only |
Deactivating an integration or pausing the workspace stops its refreshes. Each run appears under the integration panelâs History tab with a green, amber or red dot for success, a temporary error or a fatal error; Last Refresh and Last Successful Refresh on the Details tab show the most recent times. A credential failure moves the integration to Needs Attention đ¨ and raises a notice.
How records become employees
Section titled âHow records become employeesâEvery source record carries external keys, in order of precedence: the sourceâs own id (such as bamboohr:employee:123 or a Slack user id), then the work email. The Directory looks for an existing employee holding any of those keys and updates it; otherwise it creates one. So:
- An HRIS record and a Slack member with the same work email become one employee with both sources attached. The employeeâs profile lists each source, with Disconnect to unlink one: âDisconnect this source? The employee will no longer take any of their details from it.â
- A hire from Greenhouse or Ashby appears as an upcoming employee; when the HRIS record arrives with the same work email it attaches to the same employee rather than creating a second.
- The Employee File matches on
employeeIdfirst, so keep ids stable between uploads; a changed id creates a new person. - Slack and Teams membership alone does not create an employee; someone has to come from an HRIS, a file or an ATS.
- One source is the employeeâs primary; HRIS fields are read-only in Pyn and change only at the source.
Managers, HRBPs, buddies and mentors are linked by the sourceâs own ids and resolved after the referenced person has been synced, so a manager who joins later is linked on the next refresh.
Lifecycle stage
Section titled âLifecycle stageâThe start date, termination date and active flag decide the stage: Joiner before the start date, Current from the start date, On leave when the source says so, and Terminated from the termination date. The seeded lifecycle groups (Upcoming, Current Active, Terminated, Inactive) and every trigger read these stages.
Time zone
Section titled âTime zoneâA step scheduled in the recipientâs time zone needs one. Pyn decides it from the source record in this order:
- The time zone the source supplies, as an IANA name (
Europe/London), a common abbreviation or a Windows time zone name. - The country plus postal code, for countries that span several zones: the United States, Canada and Australia.
- The country, when it has a single time zone.
- Otherwise the workspace Time Zone from Account Settings: âEmployees without timezone data get messages in this default timezone.â
An Employee File row for a multi-zone country without a timeZone or postalCode is rejected with âCould not determine timezone from country ⌠Add a postal code or choose a time zone.â A custom email recipient has its own Time Zone field with the same fallback.
Related
Section titled âRelatedâ- Integrations for each integrationâs guide.
- HRIS fields for which properties each source provides.
- Employees to see sources and lifecycle on a profile.
- Account Settings for the workspace time zone.