Configure Data Sources
Under Settings → Data & Structure → Org Intelligence (/signals) you manage the data sources from which interaction signals are collected.
Available Collector Types
Section titled “Available Collector Types”| Type | Data Source | Required Credentials |
|---|---|---|
msgraph | Microsoft Graph / Teams / Exchange | Azure Tenant ID, Client ID, Client Secret |
confluence | Atlassian Confluence | Confluence URL, Email, API Token |
sharepoint | SharePoint Online | Azure Tenant ID, Client ID, Client Secret + Site IDs |
jira | Jira / Jira Service Management | Jira URL, Email, API Token |
csv_import | Any CSV export | CSV content (paste directly or file path) |
filesystem | Network share / local sync | Directory path |
ical | iCalendar files (.ics) | File URL or path |
ldap | LDAP / Active Directory | LDAP URL, Bind DN, Password |
chrome_crawler | Intranet web pages (headless Chrome) | Optional login (username/password) |
The system is openly extensible — new connector types can be added without UI changes.
Microsoft Graph / Teams / Exchange (msgraph)
Section titled “Microsoft Graph / Teams / Exchange (msgraph)”Collects interaction signals from Microsoft 365 — Teams channels, calls, and Exchange calendar.
What is collected?
Section titled “What is collected?”| Signal | Meaning |
|---|---|
teams_channel_coactivity | People active together in a Teams channel |
teams_call_coparticipation | Participants of the same call |
exchange_recurring_meeting | Organizer and attendees of recurring meetings |
exchange_meeting_response_latency | Response behavior to meeting invitations |
Setting up credentials
Section titled “Setting up credentials”You need an App Registration in Azure Entra ID with the following API permissions (Application permissions, not delegated):
Team.ReadBasic.AllCallRecords.Read.AllCalendars.ReadUser.Read.All
Steps:
- Azure Portal → Entra ID → App Registrations → New registration
- Certificates & Secrets → Create new client secret
- API permissions → Add the above → Grant admin consent
- Enter Azure Tenant ID, Client ID, and Client Secret in roleALPHA
Configuration
Section titled “Configuration”| Parameter | Meaning | Default |
|---|---|---|
| Max age (days) | How far back to retrieve data | 90 |
| Min interactions | Minimum count to keep an edge | see Scope of analysis |
| Auto-map persons | Link email addresses directly to rA persons | no |
- Only metadata is collected (no content, no audio/video data)
- Graph API throttling is automatically handled with exponential backoff
Atlassian Confluence (confluence)
Section titled “Atlassian Confluence (confluence)”Analyzes collaboration structure in Confluence wikis based on page edits and comments.
What is collected?
Section titled “What is collected?”| Signal | Meaning |
|---|---|
confluence_coauthorship | Multiple authors editing the same page |
confluence_mention | Comment authors connected to page authors |
confluence_cross_space_link | Links between different spaces |
Setting up credentials
Section titled “Setting up credentials”- Atlassian → My account → Security → Create API token
- Enter Confluence URL (e.g.
https://company.atlassian.net), email address, and token in roleALPHA
The user needs read access to all spaces to be analyzed.
Configuration
Section titled “Configuration”| Parameter | Meaning | Default |
|---|---|---|
| Max age (days) | How far back version history is evaluated | 90 |
| Min interactions | Minimum number of shared edits | see Scope of analysis |
SharePoint Online (sharepoint)
Section titled “SharePoint Online (sharepoint)”Evaluates file changes on SharePoint sites and detects collaborative document work.
What is collected?
Section titled “What is collected?”| Signal | Meaning |
|---|---|
sharepoint_coauthorship | Creator and last editor of a file |
sharepoint_site_coactivity | Users active on the same site |
Setting up credentials
Section titled “Setting up credentials”Same Azure App Registration as MS Graph (Client Credentials Flow), additional permission:
Sites.Read.All
Find Site IDs via: https://company.sharepoint.com/sites/SITENAME/_api/site/id
Configuration
Section titled “Configuration”| Parameter | Meaning | Default |
|---|---|---|
| Site IDs | Comma-separated list of sites to evaluate | — |
| Max age (days) | File changes within this period | 90 |
| Min interactions | Minimum number of shared edits | see Scope of analysis |
sharepoint_site_coactivityrequires SharePoint Analytics, not included in all licenses- Without site analytics, only
sharepoint_coauthorshipsignals are generated
Jira / Jira Service Management (jira)
Section titled “Jira / Jira Service Management (jira)”Detects collaboration from issue assignments, updates, and comments.
What is collected?
Section titled “What is collected?”| Signal | Meaning |
|---|---|
jira_co_assignee | Reporter and assignee of the same ticket |
jira_cocomment | All pairs of people who commented on the same ticket |
Setting up credentials
Section titled “Setting up credentials”- Atlassian → My account → Security → Create API token
- Enter Jira URL (e.g.
https://company.atlassian.net), email address, and token in roleALPHA
Configuration
Section titled “Configuration”| Parameter | Meaning | Default |
|---|---|---|
| Project keys | Restrict to specific projects (empty = all) | all |
| Max age (days) | Tickets within this period (by last update) | 90 |
| Min interactions | Minimum shared activities | see Scope of analysis |
CSV Import (csv_import)
Section titled “CSV Import (csv_import)”The fastest entry point without API access — any interaction data from a CSV file.
What is collected?
Section titled “What is collected?”Any interactions: the signal type is freely configurable (default: csv_interaction).
Format
Section titled “Format”fromPerson,toPerson,countalice@company.com,bob@company.com,12carol@company.com,alice@company.com,7fromPerson/toPerson: External IDs (email, name, any identifier)count: Optional — interaction count (default: 1 per row)- Column names are freely configurable
Configuration
Section titled “Configuration”| Parameter | Meaning | Default |
|---|---|---|
| From column | Column name for the source actor | fromPerson |
| To column | Column name for the target actor | toPerson |
| Count column | Column name for interaction count (optional) | — |
| Signal type | Label for this signal source | csv_interaction |
- CSV content can be pasted directly into the text field or given as a server file path
- Identical pairs across multiple rows are automatically summed
- Ideal for initial data import or one-time analyses
Filesystem / Network Share (filesystem)
Section titled “Filesystem / Network Share (filesystem)”Reads Office documents from a local or network path and extracts co-authors from metadata.
What is collected?
Section titled “What is collected?”| Signal | Meaning |
|---|---|
filesystem_coauthorship | Creator and last editor of a document |
Supported formats
Section titled “Supported formats”.docx, .xlsx, .pptx (OOXML format — metadata from core.xml)
Configuration
Section titled “Configuration”| Parameter | Meaning | Default |
|---|---|---|
| Path | Directory scanned recursively | — |
| File extensions | Filtered formats | .docx, .xlsx, .pptx |
| Max age (days) | Files by modification date | 90 |
| Min interactions | Minimum co-authorships | see Scope of analysis |
- The server must have read access to the specified path
- Only metadata is evaluated (no document content)
- Creator and last editor must be different people — pure self-edits are ignored
- Network shares only work if the ra-signals service has the path mounted
iCalendar (.ics) (ical)
Section titled “iCalendar (.ics) (ical)”Evaluates calendar files in iCalendar format and identifies shared meeting participants.
What is collected?
Section titled “What is collected?”| Signal | Meaning |
|---|---|
ical_coapplicant | All attendees and organizers of the same event |
Configuration
Section titled “Configuration”| Parameter | Meaning | Default |
|---|---|---|
| Calendar URL | HTTP(S) URL to the .ics file | — |
| Calendar path | Alternative server file path | — |
| Max age (days) | Events within this period | 90 |
| Min interactions | Minimum shared events | see Scope of analysis |
- Either URL or path must be provided
- Supports public calendar URLs (e.g. shared Outlook calendars) and local .ics exports
- Creates connections between all participants of all captured events
LDAP / Active Directory (ldap)
Section titled “LDAP / Active Directory (ldap)”Derives collaboration signals from group memberships — who is in which groups?
What is collected?
Section titled “What is collected?”| Signal | Meaning |
|---|---|
ldap_group_coactivity | All members of the same LDAP group |
Setting up credentials
Section titled “Setting up credentials”A read-only bind user is sufficient. Required:
ldap://orldaps://URL (e.g.ldap://dc.company.com:389)- Bind DN (e.g.
cn=readonly,dc=company,dc=com) - Bind password
Configuration
Section titled “Configuration”| Parameter | Meaning | Default |
|---|---|---|
| Search base | Base DN for group search | — |
| Group filter | LDAP filter for groups | (objectClass=group) |
| Max age (days) | (used for threshold) | 90 |
| Min interactions | Minimum shared groups | see Scope of analysis |
- Supports
member,uniqueMember, andmemberUidattributes - Connection is closed immediately after retrieval
- For very large directories (>10,000 groups) a narrower search base is recommended
Chrome Web Crawler (chrome_crawler)
Section titled “Chrome Web Crawler (chrome_crawler)”Crawls internal web pages (intranet, wikis, web apps) via headless Chrome and extracts mention and co-authorship signals.
Special note: The crawler runs as a CLI tool on the client machine — not as a server process. Data is sent to roleALPHA via API after crawling. This source entry documents the start URLs and configuration as a reference.
What is collected?
Section titled “What is collected?”| Signal | Meaning |
|---|---|
web_cocitation | Two people mentioned on the same page |
web_person_entity | Person and entity (role, value stream, OKR …) on the same page |
web_entity_cooccurrence | Two entities mentioned together |
web_coauthorship | Detected co-authors of a page |
web_cocomment | Comments from multiple people on a page |
Prerequisites
Section titled “Prerequisites”- Google Chrome on the executing machine (auto-detected)
- Node.js + tsx to run the CLI
- Network access to start URLs
- No root privileges required
CLI usage
Section titled “CLI usage”tsx services/ra-signals/chrome-crawler/index.ts \ --url https://wiki.internal/home \ --pattern "https://wiki\\.internal/.*" \ --depth 3 \ --max-pages 100 \ --endpoint https://ra.example.com \ --token <jwt-token> \ --tenant <tenant-uuid>All parameters
Section titled “All parameters”| Parameter | Meaning | Default |
|---|---|---|
--url | Start URL(s) — can be specified multiple times | — |
--pattern | Regex to scope the crawl area | Prefix of first URL |
--depth | Max crawl depth | 3 |
--max-pages | Safety limit on pages | 100 |
--endpoint | roleALPHA URL | — |
--token | JWT token (from Settings → Personal → Profile) | — |
--tenant | Tenant UUID | — |
--login-url | Login form URL (optional) | — |
--login-user | Username for login | — |
--login-pass | Password for login | — |
--author-selector | CSS selector for author elements | — |
--chrome-path | Path to Chrome binary | auto-detected |
Live progress
Section titled “Live progress”[ 1/100] https://wiki.internal/home — 3 entities found (Alice Müller, Value stream X, OKR Y)[ 2/100] https://wiki.internal/team-a — 5 entities found...✔ Ingest successful: 234 edges, 18 actorsSource traceability
Section titled “Source traceability”Every discovered connection carries the concrete source URLs. These appear in the Org Intelligence Reports gap analysis as clickable links — making every insight fully traceable.
Adding a Source
Section titled “Adding a Source”- Click New Source.
- Select the collector type from the dropdown.
- Fill in the credentials and configuration (the form adapts dynamically to the type).
- Enable Automatic collection for hourly scheduled runs.
- Save.
Troubleshooting: collector type list is empty
Section titled “Troubleshooting: collector type list is empty”If the collector type dropdown stays empty (and existing sources are not shown either), the Org Intelligence service (ra-signals) is not switched on, unreachable or not yet rolled out for this tenant.
In that case the dialog shows an explicit notice instead of an empty selection. Resolution:
- The Org Intelligence data node (
ra-signals) must be switched on under Settings › Data Nodes (Data Nodes) — the tenant admin does that themselves. - By the platform admin: the
ra-signalsservice must be running on the tenant’s deployment target. If the service was added later, use the Re-Sync button on the deployment target in Platform Admin — it triggers a fresh rollout (the service starts, routes are set up, and it registers in the service registry).
Troubleshooting: a source reports an error and “Last collected” stays empty
Section titled “Troubleshooting: a source reports an error and “Last collected” stays empty”If an enabled source shows an error and the “Last collected” timestamp stays empty, the collect run started but failed while writing. The error is shown on the source; the analyses (org gaps, signal reports) stay empty because no edges arrive.
Important to understand: an empty analysis here does not mean “no signals”, it means “nothing ingested”. So always check the error on the source first, before concluding from an empty report that there is no collaboration.
The service repairs the most common cause itself: if the uniqueness index that ingestion relies on is missing, ra-signals creates it on the next run (removing duplicate edges from the existing data first). If the error persists after that, the database role most likely lacks the permission to create an index — then the platform admin can help.
Credentials
Section titled “Credentials”All sensitive fields (passwords, API tokens, client secrets) are stored AES-256-GCM encrypted and never returned in the API.
Manual trigger & connection test
Section titled “Manual trigger & connection test”- Heart icon: Tests the connection to the external API without collecting data.
- Play icon: Starts an immediate collect run (runs in the background).
Configuration parameters (global)
Section titled “Configuration parameters (global)”| Parameter | Meaning | Default |
|---|---|---|
| Max age (days) | How far back interactions are collected | 90 |
| Min interactions | Threshold: edges with fewer interactions are discarded | see Scope of analysis |
Automatic Collection Schedule
Section titled “Automatic Collection Schedule”Enabled sources are collected hourly automatically. The “Last collected” timestamp shows the last successful run.
Related
Section titled “Related”- Org Intelligence — Feature overview
- Person Mapping — Link collected actors to persons
- Org Intelligence Reports — Gap analysis and reports