The SysAid connector imports tickets, users, companies, groups, assets, knowledge base articles, service catalog templates, and CMDB classifications into DevRev. It supports both initial full synchronization and incremental updates, so your DevRev data stays current without re-ingesting records that have not changed.
Imports service requests from SysAid with full field coverage (title, description, status, priority, category, sub-category, requester, assignee, company, and assigned group)
Syncs users including administrators, with an is_administrator flag instead of duplicate admin accounts
Captures company records with their location and contact details
Brings in groups and memberships so tickets land with the correct group ownership
Imports hardware assets with owner, company, manufacturer, serial number, and operational fields
Syncs knowledge base articles with author attribution resolved against your SysAid user list
Imports service catalog templates offered in the SysAid self-service portal
Captures the CMDB backbone — configuration item types, subtypes, and relation type definitions
Supports incremental sync to minimize API calls and stay efficient between runs
The connector extracts the following entity types from SysAid:
Entity | Description | Incremental Sync |
|---|---|---|
Service Requests | Tickets, incidents, problems, and change requests | ✓ Yes (server-side) |
Users | Every person in SysAid, including administrators | Full sync only |
User Details | Extended per-user custom object (department, location, mobile phone) | Full sync only |
Companies | Customer or internal company records with full address data | Full sync only |
Service Requests Incremental Filter: The connector uses SysAid's update_time> query parameter on /api/v1/sr to fetch only tickets modified since the previous successful sync. On the first run this returns the full ticket history.
User Deduplication: SysAid exposes administrators inside the regular /users endpoint. The connector brings them across as normal user records with is_administrator = true. There are no duplicate "admin" objects.
Entity | Description | Incremental Sync |
|---|---|---|
Groups | Admin and general groups that own tickets | Full sync only |
Group Members | Many-to-many mapping between users and groups | Full sync only |
Group Description Fallback: If a SysAid group has no description, the connector uses the group type (for example, administrators or general) as the description so downstream systems always see non-empty content.
Entity | Description | Incremental Sync |
|---|---|---|
Assets | Hardware inventory — workstations, laptops, servers, printers, network devices | ✓ Yes (client-side) |
Assets Incremental Filter: SysAid's Connect API /assets endpoint does not accept a "modified since" parameter, but every asset in the response carries an updateTime. On incremental runs the connector fetches the list, then pushes only assets whose updateTime is strictly after the previous sync timestamp. The sync log reports Fetched N, pushed M (filtered out K unchanged) so you can see the savings.
Entity | Description | Incremental Sync |
|---|---|---|
Knowledge Base Articles | FAQ articles with title, body, author, category, and publish state | ✓ Yes (client-side) |
Service Catalog Items | SR templates exposed in the self-service portal | Full sync only |
Article Incremental Filter: Same strategy as assets — the connector reads updateTime (falling back to createdOn) and pushes only changed articles on incremental runs.
Article Authorship: Authors are resolved by matching the SysAid username field against your imported user list. A user who exists in SysAid shows up as a linked DevRev user on their articles. If the author is not in your imported user list, the raw SysAid username is kept as a text field.
Entity | Description | Incremental Sync |
|---|---|---|
CI Types | Top-level configuration item classes (Asset, Application, …) | Full sync only |
CI Subtypes | Subclassifications (Server, Laptop, Router, …) | Full sync only |
CI Relation Types | Relationship definitions (Hosts / Hosted on, Consists / Part of) | Full sync only |
Mechanism | Entities |
|---|---|
Server-side filter | Service Requests |
Client-side timestamp | Assets, Knowledge Base Articles |
Full fetch + idempotent upsert | Users, User Details, Companies, Groups, Group Members, Service Catalog Items, CI Types, CI Subtypes, CI Relation Types |
For entities without a "modified since" mechanism, the connector always performs a full fetch but DevRev de-duplicates by the stable SysAid ID, so you never see duplicate records.
Before installing the connector, ensure you have:
SysAid Administrator Account: You need a SysAid administrator username and password. A standard end-user account does not have API access.
DevRev Account: An active DevRev organization with AirSync enabled.
DevRev Admin Role Permissions:
Grant full privileges for all custom objects in DevRev, including subtypes.
Navigate to Settings → Roles & Permissions → Admin Role.
Enable read, write, and manage permissions for all custom object types that will store SysAid data.
This ensures the connector can create and update records for companies, user details, assets, service catalog items, and CMDB entities.
SysAid Subdomain: The part of your SysAid URL before .sysaidit.com. For example, if you log in at https://acme.sysaidit.com, your subdomain is acme.
API Access: The SysAid administrator account must have read access to:
Service Requests
Users
Companies
Groups and Group Members
Assets
Knowledge Base (FAQ)
Templates (Service Catalog)
CMDB types
Before connecting to SysAid, ensure your DevRev admin role has the necessary permissions:
Log in to your DevRev account as an administrator.
Navigate to Settings → Roles & Permissions.
Select the Admin Role (or the role that will manage the connector).
Scroll to the Custom Objects section.
Enable full privileges (Create, Read, Update, Delete) for:
All custom object types
All subtypes within each custom object
This ensures the connector can properly sync and map SysAid entities to DevRev records.
Click Save Changes.
Important: Without these permissions, the connector may fail to create or update records in DevRev, resulting in sync errors or incomplete data.
Log in to your SysAid Administrator Portal.
Navigate to Tools → User Management → Administrators.
Create a new administrator account (or identify an existing one) dedicated to the DevRev sync.
Assign the account an administrator role with read access to the entities listed above.
Note the username and password — you will use them in the next step.
Tip: Use a dedicated service account, not a personal account. Password resets and role changes on a personal account break the sync.
Log in to your DevRev account.
Navigate to Settings → Integrations.
Search for SysAid in the connector marketplace.
Click Install on the SysAid AirSync connector.
The connector is now added to your DevRev organization.
After installation, click Configure on the SysAid connector.
Click Add Connection to create a new SysAid connection.
Provide the following information:
Connection Name: A friendly name for this connection (e.g., "SysAid Production").
SysAid Subdomain: Your SysAid organization subdomain (e.g., if your SysAid URL is https://acme.sysaidit.com, enter acme).
Username: The SysAid administrator username from Step 2.
Password: The password for that account.
Click Test Connection to verify the credentials. DevRev verifies by calling the SysAid login endpoint.
If the test succeeds, click Save.
After saving the connection, review the default sync settings.
Decide whether to trigger the first sync immediately or schedule it for off-peak hours.
Click Save Configuration.
The first sync performs a full import of all entities:
Navigate to the SysAid connector configuration.
Click Run Sync.
The connector fetches all users, companies, groups, tickets, assets, knowledge articles, templates, and CMDB reference data.
Depending on your SysAid organization size, the initial sync can take several minutes to several hours.
You can monitor progress in the Sync History tab.
Note: The initial sync fetches every ticket in SysAid. For tenants with a very large ticket history, the first sync may take longer than subsequent runs.
After the initial sync, subsequent syncs fetch only changes:
Schedule automatic syncs or trigger them manually.
The connector uses the last successful sync timestamp as the incremental watermark.
Incremental syncs are significantly faster and use fewer API calls.
On incremental runs, the sync log reports exactly how many records were fetched and how many were pushed into DevRev. For assets and KB articles this looks like:
[extractAssets] Fetched 20, pushed 1 (filtered out 19 unchanged)
Hourly: For organizations requiring near-real-time ticket visibility in DevRev.
Daily: For most organizations (recommended).
Weekly: For small organizations with infrequent ticket changes.
Consider your SysAid API rate limits when setting sync frequency. The connector automatically handles rate limiting by pausing and retrying when limits are reached.
All tunable values live in the connector's runtime settings. Sensible defaults ship with the snap-in; you can override via environment variables when deploying or running locally.
Setting | Environment variable | Default | Purpose |
|---|---|---|---|
Log level |
|
|
|
Log format |
|
|
|
HTTP request timeout |
|
| axios request timeout (ms) |
HTTP retries |
|
| Retries on transient failures |
Page size (general) |
|
| Default paginated fetch size |
Page size (group members) |
|
| SysAid caps the members endpoint at 20 |
Page size (templates) |
|
| SysAid caps the templates endpoint at 20 |
Legacy session refresh window |
|
| Pre-emptive legacy API re-auth window |
Connect API token lifetime |
|
| Pre-emptive Connect API token refresh |
The connector uses admin username and password authentication. DevRev stores the credentials in its keyring service and never displays the password in logs or in the UI after configuration.
Credentials are stored securely in DevRev's keyring service.
Credentials are encrypted at rest and in transit.
The password value is never logged or displayed in the UI after initial configuration.
The structured logger redacts any context field whose name matches password, secret, token, api_key, authorization, or cookie before writing.
When you save a connection, DevRev verifies the credentials by calling:
POST https://{subdomain}.sysaidit.com/api/v1/login
If the login succeeds, the credentials are valid and the account has sufficient access.
Rotate credentials following your organization's security policies:
Update the password in SysAid.
Update the connection in DevRev (Settings → Integrations → SysAid → Edit Connection).
Click Test Connection to confirm the new credentials work.
Save.
The connector is designed to handle transient errors gracefully.
When SysAid rate limits are reached:
The connector reads the retry-after header to determine the wait time.
The sync pauses automatically and resumes after the rate limit resets.
No data is lost or skipped during the pause.
Tip: If you encounter frequent rate limiting, reduce your sync frequency.
If the service account lacks permissions for a specific endpoint:
The connector skips that entity type with a warning.
Other entity types continue to sync normally.
The sync completes with a summary of skipped entities.
Solution: Ensure the SysAid service account has administrator privileges and read access to every entity you want to sync.
Transient server errors are retried automatically with exponential backoff:
Attempt 1: Retry after 1 second
Attempt 2: Retry after 2 seconds
Attempt 3: Error is logged and reported
The legacy SysAid API uses a cookie-based session that eventually expires. The connector detects 401 responses, transparently re-authenticates, and replays the failed request.
Every extraction worker checkpoints its progress after each page. If the ADaaS runtime signals a timeout mid-sync, the cursor is saved in state and the next invocation resumes exactly where the previous one left off — no records are re-fetched or skipped.
Use a dedicated service account: Create a SysAid admin account specifically for the DevRev connection.
Run the initial sync in off-peak hours: A full sync is read-only but still generates API traffic. Running it outside business hours keeps bandwidth clear.
Test the connection first: Always click Test Connection before saving.
Monitor the first sync: Watch the initial sync closely to catch any permission issues early.
Review skipped entities: Check the sync logs for any entities that were skipped due to permissions.
Schedule regular syncs: Set up hourly or daily syncs based on how fresh you need your data.
Monitor rate limits: Review sync logs for rate-limit warnings and adjust the schedule if needed.
Rotate credentials periodically: Follow your organization's password rotation policy for the service account.
Review sync history: Periodically check the Sync History tab for errors or warnings.
Let incremental sync do its job: Allow the initial full sync to complete before scheduling frequent runs.
Do not reset sync state casually: Resetting the sync unit triggers a fresh INITIAL run, which re-ingests everything.
Respect SysAid rate limits: Stagger syncs if you run multiple DevRev snap-ins against the same SysAid tenant.
Watch the sync log output: The Fetched N, pushed M line for assets and articles tells you how much is actually moving on each run.
Use a dedicated service account: Do not reuse a personal admin account for the integration.
Limit account lifetime: Rotate credentials periodically.
Monitor account usage: Review SysAid's audit logs for the service account to detect anomalies.
Revoke if decommissioned: If you uninstall the connector, delete or disable the SysAid service account.
Error: HTTP 401 Unauthorized
Cause: The username or password is incorrect, or the account is locked.
Solution: Log in to SysAid with the same credentials in a browser to confirm. Reset the password in SysAid if necessary.
Error: HTTP 404 Not Found
Cause: The subdomain is incorrect.
Solution: Verify your subdomain (for example, acme for https://acme.sysaidit.com). Do not include https:// or the trailing path.
Symptom: Rate limit errors (HTTP 429)
Cause: Sync frequency exceeds your SysAid API rate limits.
Solution: Reduce sync frequency. The connector automatically delays and retries, but frequent delays can stretch sync duration.
Symptom: Entities are skipped
Cause: The service account lacks the required permissions.
Solution: Confirm the account is a SysAid administrator and has read access to the endpoints listed in the Prerequisites section.
Symptom: Tickets missing after an incremental sync
Cause: Incremental mode only pushes tickets whose update_time is after the previous sync.
Solution: If you need to re-ingest older tickets, reset the sync unit in DevRev so the next run is a full INITIAL sync.
Symptom: Asset count changes between initial and incremental runs
Cause: Assets without an updateTime newer than the watermark are correctly filtered out on incremental runs.
Solution: This is expected — the asset still exists in DevRev; it was just not re-pushed because it had not changed.
Solution 1: Confirm incremental sync is active — look for Mode=INCREMENTAL in the first log line of the run.
Solution 2: Increase the sync interval to allow each sync to complete before the next one starts.
Solution 3: Check SysAid system health — slow server responses stretch sync times.
Symptom: An article's author field shows a username string rather than a user link.
Solution:
Make sure the author user exists in your SysAid user list and has been imported by the connector.
The author match is performed against name, login_user, calculated_user_name, and email_address. Confirm at least one of those matches what the createdBy field returns for the article.
Trigger a fresh sync after importing the missing user.
SysAid enforces API rate limits based on your license tier. The connector:
Reads the retry-after response header on HTTP 429 to determine how long to wait.
Pauses the sync and emits DataExtractionDelayed so the ADaaS runtime resumes it after the delay.
Paginates every endpoint to minimize per-request payload size.
If you repeatedly see rate limit warnings, contact SysAid to review your rate limit tier.
Service request title, description, category, status, priority, timestamps, requester, assignee, company, and assigned group.
User profile attributes (first name, last name, email, job title, department, location, phone).
Company records with name, address, contact details, and agreement information.
Asset inventory including owner, manufacturer, model, serial, OS, and operational flags.
Knowledge base article title, body, author, and publish state.
Service catalog template definitions (name, type, fields offered).
CMDB type and relation type definitions.
Passwords or authentication secrets.
Ticket attachments and article attachments (not implemented).
Custom ticket fields beyond the documented core set.
SLA policy definitions and software license records (SysAid does not expose these on the standard API).
Full historical audit log (only the current state of each record is imported).
GDPR: Ensure your data processing agreements cover DevRev as a data processor.
SOC 2: DevRev maintains SOC 2 Type II compliance for data handling.
Data minimization: The connector imports only the fields documented above — no other SysAid fields are extracted.
For issues with the SysAid AirSync connector:
Check sync logs: Review the Sync History tab for error messages and warnings.
Review documentation: Consult this guide and the troubleshooting section.
Contact DevRev Support: Open a support ticket in DevRev with:
Connection name
Sync run ID (from the Sync History tab)
Error messages from the sync logs
Steps you have already tried
For issues with SysAid credentials, API access, or rate limits, contact SysAid Support.
One-way sync: Data flows from SysAid to DevRev only (no write-back to SysAid).
Read-only fields: Records are read-only in DevRev from the perspective of the sync; edits in DevRev do not propagate to SysAid.
Attachment support: Not implemented — ticket and knowledge article attachments are not copied.
Custom ticket fields: The connector imports the documented core fields. Heavy customization beyond that requires a scoped extension.
Software licenses and SLAs: Not imported — SysAid does not consistently expose these via the public API.
Historical audit log: Not imported — only the current state of each record is captured.
Real-time sync: Polling-based; the connector does not receive webhook events from SysAid.