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.
The first column's header row should always be an Email
The header rows determine the categories tags will be added too. For example:
Header Rows:
Email, Role, Departmentwill create tags in the Role and Department categories
The data rows should include the tag within each category you want to create. For example:
Data Rows:
test@allstacks.com, Frontend, Engineeringwill 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_tagsRequest Details
The upload is done via form-data with the following fields:
Field | Type | Required | Description | Function |
|---|---|---|---|---|
| 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 |
| boolean | No | Set to | Recommended If this option is turned off, contributors not found in your CSV will not be visible in any Allstacks workspaces by default. |
| boolean | No | Set to | Caution For best historic reporting in Allstacks, we recommend not disabling people for at least 90 days after departure |
| boolean | No | Set to | Caution If someone has added useful tags that you are not aware of, this could remove those tags from contributors |
| boolean | No | Set to | Caution This could break some workspace or dashboard configs |
| boolean | No | Set to | Caution This could break some workspace or dashboard configs |
Upload Steps
Prepare your CSV file with updated roster information.
Send a
POSTrequest to the endpoint above with the CSV attached asfilein form-data.Set the boolean flags as needed (see table above).
Submit the request.
Once completed, you will receive an email notification letting you know the job is completed.
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
user123and password ispass123, run this first to encode:
echo -n 'user123:pass123' | base64Suppose that prints:
dXNlcjEyMzpwYXNzMTIzThen your
curlbecomes:
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.