WFM Integrations – Assembled

Previously, customers that outsource to BPOs would manage schedules in two places - their BPOs’ WFM platforms and Assembled. With our WFM integrations, Assembled now serves as a unified source of truth for schedules across platforms.

This article walks through how a BPO can set up their integration to facilitate a direct, seamless synchronization of schedules from your existing scheduling tools into Assembled, eliminating the need for manual updates and the risk of discrepancies.

If you are interested in using our BPO management features but currently don’t have access, reach out to Assembled Support and we can start the conversation of getting access to these features.

Available integrations

We currently support the following WFM platforms.

❗️To connect and set up your integration you must have the manager (or above) role in Assembled.

Integration Setup

Add your BPO site(s)

Responsible for this step: Customer

  1. Navigate to BPO Management → Schedule Integrations.
  2. Click Add/Remove BPOs.
  3. Select the sites that are BPOs and click mark as BPOs. If you don't have sites on your account, you can add them in Settings → Filters.
  4. The sites will be added to the page with the option to Setup.

Set up the integration

Responsible for this step: BPO & Customer

  1. In BPO Management → Schedule Integrations, under your newly added site, click Setup.
  2. Select your BPO’s scheduling platform from the dropdown and click Connect .
  3. Once you click Connect, integration-specific instructions will populate on the right hand side.
    • You will be provided with SFTP credentials and a schedule template CSV.
    • Provide your BPO with these credentials and template file. Your BPO should set up an automated pipeline to export schedule data as a CSV from this platform in the same format as the template file and upload them to the SFTP server using the provided credentials.
    • See specific instructions for Alvaria / Aspect
    • _❗️Each file that is sent should have a unique name. This can be achieved by appending a timestamp to the end of the file name. The filename should not have any special characters. _
  4. Work with your BPO to decide on a cadence for how often to automatically send schedules and for what date range.
    • We typically recommend setting up two sync:
      • Every 15 minutes: BPO sends schedules for the next 14 days
      • Every 24 hours: BPO sends schedules for the next 60 days
      • ❗️We do not sync events that occur in the past up to the end of the current day. If you would like to sync events in the past please let Assembled know to configure this.
    • Once your BPO starts sending schedules to the server, events from the platform will be synced with Assembled.

Map events

Responsible for this step: BPO & Customer

Once the connection is verified and Assembled is able to pull in schedules, map your events from your schedules to the events in Assembled.

❗️Please coordinate with your BPOs to provide them with your specific event type definitions in Assembled.

  1. Click on the 'Edit event mapping rules' in the settings dropdown.
  2. Choose the type of matching pattern to use.
    • is exactly
    • matches the pattern
    • contains
    • starts with
  3. Provide a keyword from the schedule to match on.
  4. Select a priority for the mapping from Highest to Lowest
    • This will determine the order that we check the mapping. A higher priority means we will check it first and will be the mapping we use if there are multiple matches.
  5. Select the Assembled event that the keyword should map to.
  6. Click Save mapping.

Associate agents

Responsible for this step: BPO

❗️If your BPO does not have access to editing agents, please have the BPO send a list of platform IDs to an account admin so they can update agents.

To associate IDs from the WFM platform with Assembled agents, you must add their WFM IDs in their Assembled profiles. To do, edit agents in bulk via CSV upload in the People page or via API, or manually through the UI. You can learn more about how to do this here.

Please also make sure the agents in Assembled have the correct site assigned to them in the People page. If there is no site set for the agent, we can not ingest the schedule.

To do so via the API you can set agents' BPO IDs via the platforms field using one of the following platform values: custom_platform_sftp, injixo_sftp, alvaria_sftp, nice_iex_sftp, verint_sftp.

❗️Note: the available ID fields in the agents' profiles will depend on which integration(s) you've set up in the setup the integration section and which site the agent belongs to.

Verify the connection

Once setup is complete you'll be able to see the most recent sync status.

After the sync, events should be on the site BPOs' schedules according to the event mapping.

If there are any issues, feel free to reach out to Assembled Support to troubleshoot.

Configure the integration

Select a schedule to sync to

Once your setup is up and running, you can select which schedule you'd like to sync to by opening the schedule sync settings.

Set a synced event time threshold

Within the sync settings, you can configure a time threshold for which events get synced into Assembled from the schedule file. This is useful for allowing last-minute manual changes to a schedule.

We support two options for the event time threshold:

  1. Sync events that occur after the start of the next calendar day (relative to the current sync time). If a schedule is sent via the integration on January 1, 2025 at 2 PM PST, events that begin before January 2, 2025 12 AM PST will be ignored. The start threshold will be in the company's timezone.
  2. Sync events that start after a custom threshold. You can configure what events get included from the given schedule sync relative to a certain time threshold.

Please also note that the time format in the SFTP schedule file should be in 24-hour format (military time).

Event Conflict Resolution

Synced events can sometimes conflict with events already on the schedule. A sync can choose to either replace (overwrite) all events on the schedule or to keep manually-edited events in place.

Keep manually edited events

Conflicting events will be replaced by events from the schedule integration except for manually edited events. Manually edited events include all events added through the Staffing Timeline and approved time off requests. Manually edited events do not include events added via templates.

Replace all existing events

All conflicting events will be replaced by events from the schedule integration.

Sync History

Each integration will show the status of the last attempted sync, along with a full history of previous syncs. Each sync can be successful, partially successful, or failed.

Understanding Sync Status

✅ Success

An integration will be fully synced if all rows are successful or ignored. Reasons a row might be ignored:

⚠️ Partially Synced

An integration will be partially synced if any rows from the integration fail to sync properly. Reasons a row might not sync:

❌ Failed

An integration can fail if no rows could be processed. This usually means the file format is incorrect and could not be read.

Diagnosing why a sync failed

Open the sync history for the integration by clicking the ‘View history’ link.

Each sync will give a summary for why it didn’t fully succeed. Click the ‘Details’ link to download a report in CSV format. It contains every entry that didn’t successfully sync along with an error message.