Skip to main content

BPO schedule integrations

BPO management add-on, billed separately · Admin or Manager role, depending on the task
Add-on
BPO management, billed separately. To add it, contact our team.
Mark a site as a BPO site
Admin role
Or a custom role with Configure team attributes set to Can view, create, edit, and delete all team attributes on the Configure tab
Create a schedule sync
Admin role
Or a custom role with BPO management set to Can manage BPOs and allocations on the Data & integrations tab
Manage sync settings, event mappings, and sync history
Admin or Manager role
Or a custom role with BPO management set to Can manage BPOs and allocations on the Data & integrations tab
Add team members' platform IDs
Admin or Manager role
Or a custom role with Manage team set to Create, edit, or delete any person or Create, edit, or delete certain people

Only the Admin role, or a custom role with the Admin base role, can create a schedule sync, even if another role has BPO management.

People with restricted sites can manage only their own sites' integrations.

Admins set roles and permissions in Manage team > Roles and permissions.

Use BPO schedule integrations to sync your BPOs’ schedules from their workforce management (WFM) platforms into Assembled, so every schedule is in one place. Your BPO exports schedules from its platform as CSV files and uploads them to a secure SFTP server, and Assembled adds the events to your schedule.

To open it, go to Configure > BPO schedule integrations.

The BPO schedule integrations page with a Connected section of site cards, each showing its schedule, auto-sync status, and event mapping, with a Manage button

How BPO schedule integrations work

  • Each BPO site has its own integration, with its own SFTP credentials, event mappings, and settings.
  • Your BPO uploads CSV files to the SFTP server in the format of the platform’s template. Files can have extra columns.
  • Event mapping rules turn the event names in your BPO’s schedule into your Assembled event types.
  • Assembled matches each row to a team member by their ID in the BPO’s platform, among the people in that BPO site.
  • Synced events go to the schedule you choose. By default, events before the start of the next calendar day aren’t synced. See Synced event threshold.

Supported platforms

  • Aspect: see Aspect schedule integration for the report settings.
  • Injixo
  • NiCE IEX
  • Verint
  • Custom BPO Platform: for any other scheduling tool that can export a CSV in the template format.

Set up an integration

Setting up an integration takes a few steps, some done by you and some by your BPO.

Step 1: Mark the site as a BPO site (you)

  1. Go to Configure > Attributes and select the Sites tab. If the BPO doesn’t have a site yet, add one. See Team member attributes.
  2. Open the site and turn on BPO site.
  3. Save your changes.

Step 2: Connect the platform (you and your BPO)

  1. Go to Configure > BPO schedule integrations.
  2. Start a schedule sync for the site:
    • If no sites are set up yet, select Create schedule sync, choose the BPO site and Platform, and select Create schedule sync.
    • Otherwise, under Available, select Set up on your BPO’s platform, choose the BPO site, and select Continue.
  3. On the Platform connection tab, if asked, choose your BPO’s scheduling platform and select Connect. For Aspect, also choose the Timezone of Aspect export.
  4. Copy the SFTP credentials: Hostname, Port, Directory, Protocol variant, Username, and Password. To see the password, select Show.
  5. Download the template CSV from Instructions for your platform.
  6. Send your BPO the credentials and the template. Your BPO sets up an automated export from its platform, in the template’s format, to the SFTP server.
  7. Agree with your BPO how often to send schedules, and for what date range. We usually recommend two exports: every 15 minutes for the next 14 days, and every 24 hours for the next 60 days.

Once your BPO starts uploading files, events are synced to Assembled.

Keep in mind:

  • Give each file a unique name, for example by adding a timestamp, with no special characters.
  • Dates and times in the file must follow the template’s format.

The Available section of BPO schedule integrations with platform cards for Aspect, Injixo, and NiCE IEX, each with a Set up button

The Platform connection tab for a BPO site, with an SFTP credentials table listing the scheduling platform, hostname, port, directory, protocol, a blurred username, and a masked password, a Disconnect button, and instructions for NiCE IEX

Step 3: Map events (you and your BPO)

Map the event names in your BPO’s schedules to your Assembled event types. Share your event type definitions with your BPO, so you agree on which events match.

  1. Select Manage on the site’s card, and select the Event mapping rules tab.
  2. Select Add new event mapping.
  3. Enter a Keyword from the BPO’s schedule, such as Lunch.
  4. Choose the Matching method: is exactly, matches wildcard (*), contains, does not contain, starts with, is not, is empty, or is not empty.
  5. Choose a Priority, from Highest to Lowest. If an event matches more than one mapping, the one with the higher priority is used.
  6. Choose the Assembled Event to map it to.
  7. Select Save.

To map every event that doesn’t match a rule, select Set fallback event mapping, choose an event type, and select Save.

The Event mapping rules tab for a BPO site, with a table of keywords, matching methods, priorities, and events, and the Set fallback event mapping and Add new event mapping buttons

Step 4: Add team members’ platform IDs (your BPO)

Each team member needs their ID from the BPO’s platform on their Assembled profile, and must belong to the BPO site. Assembled can’t sync a row for a team member without both.

  1. Go to Manage team > People management and select the person’s name to open Edit person.
  2. Under Filters, in Site, choose the BPO site.
  3. Under Optional IDs, enter the team member’s ID in the field for the BPO’s platform.
  4. Select Save changes.

To update many people at once, upload a CSV on People management (see People management), or use the API. In the API, set each person’s platforms field with one of these platform values: custom_platform_sftp, injixo_sftp, alvaria_sftp (for Aspect), nice_iex_sftp, or verint_sftp.

If your BPO can’t edit people in Assembled, ask them to send a list of team members and platform IDs to your admin.

Step 5: Check the connection

On Configure > BPO schedule integrations, each site’s card shows its Schedule auto-sync status:

Status What it means
Awaiting verification… No file has been synced yet.
Schedule is up to date The latest file synced.
Schedule partially synced Some rows in the latest file didn’t sync. See Sync history.
Schedule failed to sync The latest file couldn’t be read. See Sync history.

After a sync, the BPO site’s team members have events on the schedule, based on your event mapping rules.

Sync settings

To change an integration’s settings, select Manage on the site’s card. The dialog opens on Sync settings. After you make changes, select Save changes.

Schedule

Choose the schedule that receives the synced events. To review your BPO’s schedules before your team sees them, sync to a test schedule, then publish it to your primary schedule.

The Sync settings tab for a BPO site with the Schedule list open, showing the default schedule and test schedules

Synced event threshold

The threshold decides which events in each file are synced, so last-minute changes made in Assembled aren’t overwritten.

Option What it does
Sync events that occur after the start of the next calendar day (default) Events before 12:00 AM the next day, in your company’s time zone, are ignored. For example, for a file sent at 2:00 PM on January 1, events before 12:00 AM on January 2 are ignored.
Sync events that occur after a custom threshold Events starting from a number of hours, days, or weeks before or after the sync time are included. For example, 2 hours after the sync time, or 1 day before it to include recent events.

The Sync settings tab with the Synced event threshold options and the start of Event conflict resolution

Event conflict resolution

Synced events can overlap events already on the schedule.

Option What it does
Keep manually edited events Conflicting events are replaced by synced events, except manually edited ones: events added on the Staffing timeline, and approved time off requests. Events added from templates aren’t manually edited, so they’re replaced.
Replace all existing events All conflicting events are replaced by synced events.

Sync history

Each integration keeps a history of its syncs. To open it, select Manage on the site’s card, then the Sync history tab.

The Sync history tab for a BPO site, listing one failed sync

Sync statuses

Status What it means Common reasons
Success Every row synced or was ignored. Rows are ignored when the event starts before the synced event threshold, or when a row is a duplicate.
Partially Synced Some rows didn’t sync. The team member wasn’t found: they aren’t in Assembled, have no platform ID, or aren’t in the BPO site. Or the event has no mapping rule, or a row is missing a value.
Failed No rows could be read. Usually the file’s format doesn’t match the template.

A sync history row with a Failed badge and the message There were errors parsing the CSV: Not enough rows in the CSV file

Find out why rows didn’t sync

  1. Open the integration’s Sync history tab.
  2. Expand the sync to see how many rows failed, were ignored, or fully synced, and why.
  3. To see every row that didn’t sync, with an error message for each, select Ignored row details, Failed row details, or Failed/ignored row details. A CSV downloads.
  4. To check the file your BPO sent, select the Original File link.

Fix the cause, such as adding a missing platform ID or event mapping. The next file your BPO sends syncs with the fix.

Rows from a sync details CSV, each with an error message explaining why it didn’t sync

An expanded sync history row showing the schedule and a download link for the original file

Still have questions?