LiveSync™ connects Swopi to your Microsoft Entra ID, and from that point on your members and their digital business cards manage themselves: a new employee in a group means a ready-to-go account in Swopi complete with a business card; a change of position in the directory means up-to-date details on the card. Set it up once and it runs without manual data entry.
This is a pull sync — at a scheduled interval (daily / weekly / …) Swopi reads data from Microsoft Graph, one-way and read-only. The exact list of permissions can be found on the Permissions (least privilege) page. For a real-time (push) option, see SCIM 2.0.
#Overview
| Data source | Microsoft Graph (customer tenant) |
| Permission type | Application permissions (app-only, client_credentials) |
| Permission scope | User.Read.All, GroupMember.Read.All — read-only, with admin consent |
| Direction | Entra ID → Swopi (one-way pull) |
| Frequency | Daily / weekly / monthly / quarterly, or any time manually via "Synchronize now" |
| Role mapping | Each group → role (Admin / Manager / Member) |
| Availability | Teams plan, configured by the organization administrator |
#Prerequisites
- permission to edit the App Registration in your Entra ID and to grant admin consent,
- security groups whose members are to be synchronized into Swopi,
- the Swopi Teams plan.
#Step 1 — App Registration and permissions (provided by the customer)
In the Azure Portal → Microsoft Entra ID → App registrations:
-
Use the same app registration as for SSO, or create a new one.
-
API permissions → Add a permission → Microsoft Graph → Application permissions → add these two permissions (read-only):
User.Read.AllGroupMember.Read.All -
Click Grant admin consent for {tenant} — without this step the Graph requests will fail.
📸 Screenshot: admin consent granted for the Graph permissions.
images/entra-graph-consent.png -
Certificates & secrets → New client secret → create a client secret (if you don't already have one) and copy the value.
#Step 2 — Configuration in Swopi (customer administrator)
Dashboard → Integrations → Microsoft Entra ID:
-
Connection — fill in the Directory (tenant) ID, Application (client) ID, and client secret. Searching for groups also verifies that the connection works.
📸 Screenshot: connecting Entra ID and searching for groups.
images/swopi-entra-connect.png -
Groups — select the groups whose members should be synchronized, and for each one set a role (Admin / Manager / Member). See Role mapping.
-
Frequency — we recommend Daily.
-
Fields to synchronize — for each field you choose:
- Synchronize — the field is populated for new members,
- Overwrite — changes in Entra overwrite the value in Swopi on the next sync. With overwrite disabled, manual edits in Swopi are preserved.
#Field mapping
| Field in Swopi | Attribute in Entra ID |
|---|---|
| Name | Display name |
| Email (sign-in account) | Mail (fallback: User principal name) |
| Position | Job title |
| Company | Company name |
| Phone | Mobile phone (fallback: Business phone) |
| Location | Street address, City, ZIP, Country |
#How synchronization works
- New member in a group → an account assigned to your organization is created in Swopi, along with a digital business card (pre-filled with the name and a QR code). The account has no password — the user signs in via SSO.
- Existing member → details are updated according to the Overwrite toggles; the role is reconciled with current group membership.
- Role based on groups → the group → role mapping is applied (priority Admin > Manager > Member). The Owner role is never overwritten.
- Security — accounts belonging to another organization are never taken over; the sync skips them and lists them in the results summary. The client secret never leaves the server.
- Removal from a group — the pull sync does not remove the member in Swopi (v1 does not delete). Automatic account deprovisioning is handled by SCIM 2.0; until then, an admin removes members manually in the Users section.
After each run, the configuration shows a summary: the number of new members, the number of updated members, and any skipped records with the reason.
images/swopi-entra-sync-summary.png
This integration covers automated creation and updating of members by reading from Microsoft Graph (pull). SCIM 2.0 provisioning is a push standard by which Entra ID itself writes changes, including deactivations — see SCIM 2.0 provisioning. Both approaches share the group-to-role mapping.
#Troubleshooting
| Symptom | Cause and solution |
|---|---|
| "graph-token-failed" when verifying the connection | Wrong tenant/client ID or client secret, or admin consent not granted. Verify step 1. |
| Connection succeeds, but the group has no members | Missing GroupMember.Read.All or admin consent. Members are read only for objects of type user. |
| A member was synchronized, but their phone is missing | The field has Overwrite disabled and is empty in Swopi — or the attribute is not populated in Entra. |
| "account belongs to another organization — skipped" | The email already exists in another Swopi organization. For security, the sync does not take it over. |
| A removed employee still has an account in Swopi | The pull sync does not delete. Use SCIM for automatic deprovisioning, or remove the member manually. |
Integration contact: support@swopi.co