# SailPoint Nifty Connector Documentation > Nifty Connector Documentation # Documentation # Connecting SailPoint and Nifty To connect SailPoint to the source, perform the following tasks: ## Adding and Configuring the Source in SailPoint To connect to SailPoint, perform the following steps. Once the connection is made, you can configure it to meet your company's needs. 1. Go to **Admin \> Connections \> Sources**. 2. Select **Create New**. 3. Search for a source type and select **Actions**. 4. In the **Actions** dropdown, select the setup method: - **Express Setup** - Quickly create a read-only connection to your target system by providing minimal configurations and authentication. On completion, aggregation is automatically started. > **Note** > > Express Setup supports Credential Providers. For information on supported credential providers and configuration, refer to [Credential Providers](). For more information, contact your SailPoint Customer Service Manager. - **Standard Setup** - Provide detailed basic configuration to create the source. Once the source is created, continue with source setup. ### Express Setup 1. Review the directions and select **Start Express Setup**. 2. Review the pre-populated source name, source owner, and description. To update, select **Edit**. > **Note** > > Source name must be unique. 3. (Optional) If enabled for your organization, select the **Use a Credential Provider** checkbox to manage the source's authentication using a credential provider. > **Note** > > To add a Credential Provider in SailPoint, go to **Admin \> Connections \> Credential Providers**. For more information about credential providers, refer to [Credential Providers](). 4. Configure the authentication to allow SailPoint to connect to the source. For more information, refer to the **Connection Settings** page. 5. Select **Finish**. After a successful test connection, the system creates your source and prompts you to run an aggregation. - If you want to aggregate now, select **Aggregate**. - To see the latest account aggregation history, go to **Account Management \> Account Aggregation**. - To see the list of aggregated source accounts, go to **Account Management \> Accounts**. - If you want to aggregate later, select **Exit**. This returns you to the **Sources** page. Your new source is listed, but contains no accounts or aggregation history yet. ### Standard Setup Configure more detailed settings relative to Express Setup. 1. In the **Source Name** field, enter a unique and descriptive name for your source. Source names cannot exceed 128 characters. 2. In the **Description** field, provide additional details about the source to help distinguish it from similar sources. This field allows a maximum of 2,000 characters. 3. In the **Source Owner** field, begin typing the name of an owner. Matches appear after you type two or more letters. For more information, refer to [Assigning a Source Owner](). 4. (Optional) Select a governance group to grant its members [source]() or [role]() sub-admin level oversight of the source and its access. For more information, refer to [Creating and Managing Governance Groups](). 5. If this source represents a primary system containing your organization's personnel records, select the **Authoritative Source** checkbox. For more information, refer to [Creating Identity Profiles](). 6. Select **Continue**. The source is created, and you are navigated to the **Source Setup \> Base Configuration** page. Here, continue to configure your connected source. ## Base Configuration Provide the base configuration parameters. Information you entered in the Create New Source dialog is automatically entered into the fields in the Base Configuration page. You can edit this information if necessary. 1. Enter a descriptive **Source Name** for the connection. 2. Enter the **Source Description** that provides details necessary to distinguish it from similar connection sources. 3. In **Source Owner**, begin typing the name of the source owner. 4. (Optional) Select the appropriate **Governance Group for Source Management** from the dropdown list. For more information about governance groups, refer to [Associating Governance Groups with a Source](). 5. Select **Create Manual Work Items** to enable the source to support additional source management features such as creating accounts and access profile management. > **Important** > > Once you enable this feature, it can't be disabled. For more information on manual work items, refer to [Work Items](). For more information on SailPoint features, refer to [SailPoint Identity Services](). 6. Select **Save**. ## Connection Settings Configure a secured, direct connection to the source. 1. Enter the Nifty API base endpoint as **Base URL**. For example, `https://openapi.niftypm.com`. 2. Enter the Full-access API token as **API Token**. For example, `nft_user__`. 3. Select **Save**. ## Review and Test Perform a test to confirm the connection to SailPoint. 1. Go to **Review and Test**. 2. Confirm that the entries in each field are correct. If you note any mistakes, return to the section and make corrections. 3. Select **Test Connection**. ## SailPoint Application Onboarding SailPoint application onboarding enables you to easily onboard new applications and create sources following the successful onboarding of a discovery source. To use this feature, continue to **Discovered Applications** in the SailPoint user interface. For more information, refer to [Application Onboarding]() in the SailPoint SaaS documentation. # Integrating SailPoint with Nifty Nifty is a project management and collaboration platform where teams plan work in projects, group those projects into portfolios, and manage who has access to each. It combines tasks, milestones, docs, and discussions in one workspace. This document provides the instructions required to configure a new direct connection between SailPoint and Nifty for Quick Compliance use cases. For a reference to the terminology specific to SailPoint products, refer to [Source and Connector Definitions](). > [!NOTE] > > To view the latest features, enhancements, and fixes for all SaaS connectors, refer to the [SaaS Release Notes]() page. ## Supported Features The Nifty connector supports the following: ### Account Management - Aggregate Members ### Entitlement Management - Aggregate Portfolios - Aggregate Projects > [!NOTE] > > This connector is read-only. It supports account and entitlement aggregation for Quick Compliance. Provisioning, de-provisioning, and write operations are not supported in this release. > [!IMPORTANT] > > Quick Compliance connectors have the following manual aggregation limits within a 24-hour period: > > - **Organization Admins**: Limited to 3 manual account or entitlement aggregations per day per source. This limit is cumulative across all admins in the organization. > - **Regular Users**: Limited to 1 manual account or entitlement aggregation per day per source. > > These limits ensure that individual compliance statuses are kept up to date while maintaining continuous compliance monitoring. If you need to run additional aggregations beyond these limits, contact SailPoint Support. ## Prerequisites Before you configure the Nifty connector, ensure the following requirements are met: 1. The Nifty workspace must be on the Business plan or above. The Nifty API is not available on lower plans. 2. Sign in to Nifty with an account that has Owner or Admin rights on the workspace. Administrator rights are required so the generated token can read all members, portfolios, and projects rather than only those the user personally belongs to. 3. Use a dedicated integration account rather than a named individual's login. A Nifty API token is bound to the member who created it, so the source stops aggregating if that member is removed from the workspace. Create a workspace member on a shared, non-personal address (for example `sailpoint-integration@yourcompany.com`), grant it Admin or Owner role, and generate the token while signed in as that account. 4. Go to **Settings \> App Center \> API Tokens** and create a new API token. 5. Select the Full access scope tier. The Nifty v1.0 API has no per-action scope model and rejects any token with a narrower scope, returning `403 Forbidden` on every endpoint. 6. Copy and securely store the token when it is displayed. The token is shown only once at creation time and cannot be retrieved afterwards. It has the form `nft_user__`. 7. Record the following values for connector configuration: - **Base URL** - **API Token** > [!NOTE] > > - The API token is presented as a bearer credential on every request. There is no token exchange or refresh step; the connector sends the stored token directly. > - OAuth 2.1 is not supported by this connector. Nifty's v1.0 API accepts only tokens carrying the `admin` (Full access) scope tier, and Nifty's OAuth 2.1 authorization server does not issue that tier. OAuth access tokens are therefore rejected with `403 Forbidden`. Nifty's OAuth refresh tokens additionally rotate on every use and expire after 7 days, with replay of a consumed token revoking the entire token family. > - If the integration account is removed from the workspace, or its token is revoked or regenerated, update the connector's stored credential before the next aggregation or authentication will begin failing. ## Required Permissions Any workspace member can create an API token, but the token inherits that member's permissions. Only an Owner or Admin has visibility across all portfolios and projects in the workspace. Access is governed by two independent factors - the scope tier chosen at token creation, and the role of the member who created it: - **Scope tier** - Only Full access works against the v1.0 API. A token created with a narrower tier fails authentication entirely, not merely on individual endpoints. - **Member role** - A token created by a regular member returns only the portfolios and projects that member belongs to. Aggregation appears to succeed but silently returns partial data, which SailPoint interprets as those accounts having no access. Key behaviors to account for: - A Full-access token created by a non-admin produces incomplete entitlement data rather than an authorization error. - Removing the token's owning member from the workspace invalidates the token and breaks the source. - The connector aborts account aggregation if no portfolio or project membership can be read at all, rather than reporting every account as having lost access. For more information about Nifty, refer to the following: - [Nifty website]() - [Nifty Developer Documentation]() - [Nifty API v1.0]() - [Nifty API and Webhooks]() > [!NOTE] > > The linked document is not maintained by SailPoint and is subject to change without notice. # Schema Reference The application schema is used to configure the objects returned from a connector. > [!NOTE] > > - The **Account Schema** tab is used to define the attributes for each object type in the application being configured. The schema attributes can be defined as **Entitlement** or **Multi-Valued**. Refer to [Managing Source Account Schemas]() for more information. > - The schema attributes that are not present by [default](<#default-account-schema>) must be defined as strings if not specified. The Nifty connector uses the following default correlation and object configurations. ## Default Account Schema Each source supports a variety of details, or attributes, about each user who has an account, such as their name, email address, manager name, and location. The set of account attributes each source stores and how they're organized is known as the account's *schema*. To best represent your data, you can configure sources to use an account schema matching the one you use in the external connector. Refer to [Managing Source Account Schemas]() for more information. ### Default Account ID SailPoint requires that certain attributes remain in your configuration. These attributes are referred to as *account IDs*. > [!CAUTION] > > Changing the attribute marked as the account ID after aggregating accounts can result in duplicate accounts being created. To avoid this, either reset the accounts on this source before editing the account ID attribute or edit the account ID attribute before aggregating accounts. > > To resolve issues caused by changing account IDs, reconfigure them to their default values. The following table lists the default account IDs for this connector: | Account ID | Schema Object Type | | --- | --- | | Id | Account | ### Default Account Attributes The Nifty connector supports the following default account schema attributes and customer configurable attributes. The attributes must be defined as strings if not specified. | Attribute Name | Description | | --- | --- | | Id | Unique identifier of the member | | Email | Email address of the member | | Name | Name of the member | | User Id | Unique identifier of the user linked to the member | | Team | Unique identifier of the workspace associated with the member | | Role | Workspace permission level of the member | | Role Id | Unique identifier of the member's workspace role | | Pending | Indicates whether the member has been invited but is not fully active | | Removed | Indicates whether the member has been removed from the workspace | | Signed Up | Indicates whether the member has completed signup | | Labels | Labels assigned to the member (multi-valued) | | Time Zone | Time zone of the member | | Story Points Capacity | Story point capacity of the member | | Total Story Points | Total story points assigned to the member | | Completed Story Points | Story points completed by the member | | Language | Preferred language of the member | | Portfolios | Portfolios assigned to the member | | Projects | Projects assigned to the member | ## Default Entitlement Attributes Entitlement attributes define the entitlements, such as groups or roles, that can be assigned to the managed system's user accounts. Refer to [Managing Entitlements]() for more information. > [!CAUTION] > > Changing the attribute marked as the Entitlement ID after aggregating accounts or entitlements can result in duplicate entitlements being created, or access profiles and roles breaking. To avoid this, edit the entitlement schema before performing any aggregations. ### Default Portfolio Attributes | Attribute Name | Description | | --- | --- | | Id | Unique identifier of the portfolio | | Name | Name of the portfolio | | Is General | Indicates whether this is the default general portfolio | | Owner | Unique identifier of the member who owns the portfolio | ### Default Project Attributes | Attribute Name | Description | | --- | --- | | Id | Unique identifier of the project | | Name | Name of the project | | Access Type | Access level of the project, such as public or private | | Subteam | Unique identifier of the parent portfolio | | Archived | Indicates whether the project is archived | | Owner | Unique identifier of the member who owns the project | > [!NOTE] > > Archived projects are excluded from entitlement aggregation.