Team Management CSV Upload

Team Management CSV Upload


Overview

Allstacks supports roster and tag management through a CSV sync. You can either:

  • Upload manually: Create a CSV roster file and upload it through the Allstacks UI.

    • Pros

      • Easy to do: no coding needed.

      • Good for one-off updates or small teams.

      • You can visually check the file before uploading.

      Cons

      • Time-consuming if you need to update often.

      • Human error risk (wrong tagging, unwanted roster members).

      • Doesn’t scale well for big organizations or frequent changes.

  • Use the API: Automate the process with the CSV upload API.

    • Pros

      • Automated: updates happen on schedule or triggered by events.

      • Scales well if your roster changes often.

      • Lower risk of human error once it’s set up.

      Cons

      • Setup requires technical resources.

      • Harder to revamp due to system and/or platform changes (Allstacks or Client systems)

      • Excessive if you rarely update rosters.

Both options are designed to let you export rosters and user details from internal systems (like your HRMS/HRIS) and keep your employee information and team structures in sync with your Allstacks configuration.


Prerequisites:

Create and format CSV

The CSV should contain the required columns for your organization’s roster structure (e.g., Email, Role, Tags, etc) which both upload workflows will need.

  1. The first column's header row should always be an Email

  2. The header rows determine the categories tags will be added too. For example:

    1. Header Rows: Email, Role, Department will create tags in the Role and Department categories

  3. The data rows should include the tag within each category you want to create. For example:

    1. Data Rows: test@allstacks.com, Frontend, Engineering will create the tag frontend in the role category, and engineering in the department category.

If unsure of the format, export an existing roster to use as a template or use the example CSV below.


Important Notes & Limitations

  • Incorrect CSV formatting can cause upload failures - please check your email inbox for notices from Allstacks pointing out the error which you can use to troubleshoot and correct the file.

  • You can only make 1 request/upload per 5 min. Exceeding this threshold will result in being rate limited (429).


Option 1: Manual Roster Management

Upload Steps

Log into Allstacks > Top-right, click on your tenant name > Click Contributors

Top-right corner, click the ellipse […] > Click Upload Roaster

A Upload Roster pop-up will provide you with the following options to select from. If unsure, leave everything unchecked > Click the PaperClip icon > Find the CSV you created > Click Upload

Once completed, you will receive an email notification letting you know the job is completed and you can verify the roster changes in Allstacks.


Option 2: API Roster Management

API Endpoint

/api/v1/organization/{org_id}/service_user_tag_hierarchy/upload_employee_tags

Request Details

The upload is done via form-data with the following fields:

Field

Type

Required

Description

Function

Field

Type

Required

Description

Function

file

binary

Yes

The file must be in a CSV format

Contains a list of contributors with all the necessary information for reporting metrics in Allstacks

enable_users

boolean

No

Set to true to enable users included in the file.

Recommended

If this option is turned off, contributors not found in your CSV will not be visible in any Allstacks workspaces by default.

disable_users

boolean

No

Set to true to disable users not included in the file.

Caution

For best historic reporting in Allstacks, we recommend not disabling people for at least 90 days after departure

reconcile_tags

boolean

No

Set to true to reconcile existing tags with new data.

Caution

If someone has added useful tags that you are not aware of, this could remove those tags from contributors

delete_tags

boolean

No

Set to true to delete unused tags.

Caution

This could break some workspace or dashboard configs

delete_tag_categories

boolean

No

Set to true to delete unused tag categories.

Caution

This could break some workspace or dashboard configs


Upload Steps

  1. Prepare your CSV file with updated roster information.

  2. Send a POST request to the endpoint above with the CSV attached as file in form-data.

  3. Set the boolean flags as needed (see table above).

  4. Submit the request.

  5. Once completed, you will receive an email notification letting you know the job is completed.

  6. You can verify the roster changes in Allstacks.

Upload completion time can vary depending on the amount of data in your file.


Example Automated Process

  • Setup a nightly cron job to pull from your HRMS/HRIS or employee directory system.

  • Format the list of users to match Allstacks required CSV upload (see above example).

  • Have the cron job execute the POST to the endpoint to automate the upload and keep your roaster always up-to-date.

You must pass the username:password as Base64 in the Authorization header.

  • If your username is user123 and password is pass123, run this first to encode:

echo -n 'user123:pass123' | base64
  • Suppose that prints:

dXNlcjEyMzpwYXNzMTIz
  • Then your curl becomes:

curl -s -o /dev/null -w "%{http_code}\n" -X POST "https://app.allstacks.com/api/v1/organization/1/service_user_tag_hierarchy/upload_employee_tags" \ -H "Authorization: Basic dXNlcjEyMzpwYXNzMTIz" \ -H "Accept: application/json" \ -F "file=@/path/to/roaster_file.csv" " \ -F "reconcile_tags=true" \ -F "enable_users=true" \ -F "disable_users=true" \ -F "delete_tag_categories=true" \ -F "delete_tags=true"

Please note that the base URL in the example above will be different depending on your tenant configuration.