Connect a SaaS Platform
This guide walks you through connecting SaaS and collaboration platforms to Slim.io for PII scanning. Slim.io supports Slack, Microsoft Teams, OneDrive, SharePoint, Google Drive, and Salesforce.
Time required: 10–20 minutes (varies by platform)
Prerequisites:
- Admin access to your SaaS platform (for app registration or bot creation)
- Slim.io Customer Dashboard access
Supported Platforms
| Platform | Auth Method | What Gets Scanned |
|---|---|---|
| Slack | Bot Token | Channel messages (public and private) |
| Microsoft Teams | Client Credentials (Service Principal) | Channel messages, attachments, meeting chat |
| OneDrive | Client Credentials (Service Principal) | Documents, shared files |
| SharePoint | Client Credentials (Service Principal) | Document libraries, site contents |
| Google Drive | Domain-Wide Delegation | Docs, Sheets, Slides, shared drives |
| Salesforce | Username + Password + Security Token | Object fields, custom objects, attachments |
Slack
Step 1: Create a Slack App
- Go to api.slack.com/apps and click Create New App.
- Choose From scratch, name it (e.g., “Slim.io Scanner”), and select your workspace.
- Navigate to OAuth & Permissions in the sidebar.
- Under Bot Token Scopes, add:
channels:history— Read public channel messageschannels:read— List public channelsgroups:history— Read private channel messagesgroups:read— List private channelsusers:read— Resolve user display namesusers:read.email— Resolve user email addresses
- Click Install to Workspace and authorize.
- Copy the Bot User OAuth Token (starts with
xoxb-).
Slim.io scans channel messages only. Direct messages (DMs) are never accessed. The bot must be invited to private channels to scan them.
Step 2: Configure in Slim.io
- In the Slim.io dashboard, navigate to Connectors and click Add Connector.
- Select Slack.
- Enter a Connector Name (e.g., “Corporate Slack”).
- Paste the Bot Token (
xoxb-...). - Click Connect.
Step 3: Verify
The connector status transitions to Active once Slim.io confirms the bot token is valid and can list channels. You can now trigger a scan.
Microsoft Teams / OneDrive / SharePoint
All three Microsoft connectors use the same authentication method: an Azure AD App Registration with application permissions.
Step 1: Create an App Registration
- Go to Azure Portal > App registrations .
- Click New registration.
- Name it (e.g., “Slim.io Scanner”) and select Accounts in this organizational directory only.
- Click Register.
- Copy the Application (client) ID and Directory (tenant) ID.
Step 2: Create a Client Secret
- In the app registration, go to Certificates & secrets.
- Click New client secret, add a description, and set expiration.
- Copy the Value immediately — it will not be shown again.
The client secret is only visible at creation time. If you lose it, you must create a new one.
Step 3: Grant API Permissions
Navigate to API permissions > Add a permission > Microsoft Graph > Application permissions and add the permissions for your connector:
For Teams:
ChannelMessage.Read.All— Read channel messagesTeam.ReadBasic.All— List teamsChannel.ReadBasic.All— List channels
For OneDrive:
Files.Read.All— Read all filesUser.Read.All— Enumerate user drives
For SharePoint:
Sites.Read.All— Read all site contentsFiles.Read.All— Read document libraries
After adding permissions, click Grant admin consent for [your organization].
Step 4: Configure in Slim.io
- In the Slim.io dashboard, navigate to Connectors and click Add Connector.
- Select Teams, OneDrive, or SharePoint.
- Enter:
- Connector Name — A friendly label (e.g., “Corporate Teams”)
- Tenant ID — The Azure AD Directory ID
- Client ID — The Application ID
- Client Secret — The secret you created
- Click Connect.
Step 5: Verify
The connector authenticates using the client credentials flow and enumerates available resources (teams/channels, drives, or sites). Status transitions to Active on success.
Google Drive
Step 1: Create a Service Account
- Go to Google Cloud Console > IAM & Admin > Service Accounts .
- Click Create Service Account.
- Name it (e.g.,
slimio-scanner) and click Create and Continue. - Skip the optional role grants and click Done.
- Click the new service account, go to Keys > Add Key > Create new key > JSON.
- Download the JSON key file.
Step 2: Enable Domain-Wide Delegation
- In the service account details, click Show domain-wide delegation and enable it.
- Copy the Client ID (numeric).
- Go to Google Workspace Admin > Security > API Controls > Domain-wide Delegation .
- Click Add new and enter:
- Client ID: The service account’s numeric Client ID
- OAuth Scopes:
https://www.googleapis.com/auth/drive.readonly
- Click Authorize.
Domain-wide delegation allows the service account to impersonate users and access their Drive files. Slim.io uses the drive.readonly scope — it can read files but never modify, delete, or share them.
Step 3: Configure in Slim.io
Google Drive connectors use OAuth2 — the wizard initiates an authorization flow:
- In the Slim.io dashboard, navigate to Connectors and click Add Connector.
- Select Google Drive.
- Enter a Connector Name (e.g., “Corporate Google Drive”).
- Click Connect with Google to begin the OAuth flow.
- Authorize Slim.io to access Drive (read-only).
Step 4: Verify
After authorization completes, the connector enumerates shared drives and files. Status transitions to Active on success.
Salesforce
Step 1: Create a Connected App
- Log in to Salesforce and navigate to Setup > App Manager.
- Click New Connected App.
- Fill in:
- Connected App Name: Slim.io Scanner
- API Name: Slim_io_Scanner
- Contact Email: Your admin email
- Check Enable OAuth Settings.
- Set Callback URL to
https://api.slim.io/api/v1/connectors/auth/callback/salesforce. - Add Selected OAuth Scopes:
Access and manage your data (api)Perform requests on your behalf at any time (refresh_token, offline_access)
- Click Save and wait 2–10 minutes for activation.
Step 2: Get Your Security Token
If you do not already have a Salesforce security token:
- Click your profile icon > Settings.
- Go to My Personal Information > Reset My Security Token.
- A new token is emailed to you.
The security token is appended to your password when authenticating via the API. If your org uses IP allowlisting, you may not need it.
Step 3: Configure in Slim.io
- In the Slim.io dashboard, navigate to Connectors and click Add Connector.
- Select Salesforce.
- Enter:
- Connector Name — A friendly label (e.g., “Salesforce Production”)
- Instance URL — Your Salesforce instance (e.g.,
https://yourorg.my.salesforce.com) - Username — Your Salesforce username
- Password — Your password
- Security Token — The token from Step 2
- Click Connect.
Step 4: Verify
The connector authenticates and enumerates Salesforce objects. Status transitions to Active on success. Slim.io scans standard and custom object fields for PII.
Incremental Scanning
After the initial full scan, Slim.io automatically uses incremental scanning for SaaS connectors:
- Slack: Uses the
oldesttimestamp parameter to fetch only new messages since the last scan - Teams: Filters by
lastModifiedDateTimeto scan only updated messages - OneDrive / SharePoint: Uses Microsoft Graph’s
/deltaendpoint for change tracking - Google Drive: Uses the
changes.listAPI with a storedstartPageToken - Salesforce: Filters by
LastModifiedDateto scan only updated records
This reduces scan time from hours to minutes on subsequent runs.
Rate Limiting
Slim.io automatically handles API rate limits for all SaaS platforms:
- Respects
Retry-Afterheaders from provider APIs - Uses exponential backoff with jitter on 429 responses
- Per-connector token bucket rate limiting prevents API bans
- Scan progress continues automatically after rate limit windows expire
You do not need to configure rate limiting — it is handled automatically.
Troubleshooting
| Issue | Solution |
|---|---|
| ”Invalid token” (Slack) | Verify the bot token starts with xoxb- and the app is installed to your workspace |
| ”Insufficient permissions” (Slack) | Ensure all required scopes are added under Bot Token Scopes, not User Token Scopes |
| ”Unauthorized” (Teams/OneDrive/SharePoint) | Verify Tenant ID, Client ID, and Client Secret. Ensure admin consent was granted for API permissions. |
| ”Token expired” (Microsoft) | Create a new client secret in Azure AD — secrets expire per your configured policy |
| ”Domain-wide delegation not configured” (Google Drive) | Verify the service account Client ID and OAuth scope are added in Google Workspace Admin |
| ”Authentication failed” (Salesforce) | Append your security token to your password. Verify your instance URL is correct. |
| ”No channels found” (Slack) | The bot must be invited to private channels. Public channels are listed automatically. |
| ”Slow scan” | SaaS scans are rate-limited by provider APIs. This is expected behavior. Check the scan progress indicator for estimated time. |
Next Steps
- Run Your First Scan — Trigger a scan and review PII findings
- SaaS Connector Reference — Deep-dive into what gets scanned per platform
- Create a Custom Classifier — Define patterns for organization-specific sensitive data