> ## Documentation Index
> Fetch the complete documentation index at: https://domoinc-openapi-sync-dataflows.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# User Management

export const InlineImage = ({src, alt = '', height = '1.6em'}) => {
  return <img noZoom src={src} alt={alt} style={{
    display: 'inline',
    verticalAlign: 'start',
    height: height,
    margin: '0'
  }} />;
};

### Intro

The User Management tool automates creating and updating users in your Domo instance, including remote instances that you manage, using a configuration DataSet.

You can also use the configuration DataSet to define attributes for instance members in bulk. Learn more about [attributes in Domo](/s/article/000005164).

This article describes how to access the User Management tool, create your configuration DataSet, including attributes, and create jobs in the tool to perform your desired tasks.

***

### Required Grants

User Management is part of the Governance Toolkit. To access the toolkit, the following grants must be enabled for your role:

* **Create Custom Pipeline Processes —**
  Allows an individual to create, update, share, and delete jobs. Grant holders can only view jobs that they created or jobs that have been shared with them.
* **Edit DataSets —**
  Allows an individual to create and edit DataSets to which they have access.
* **Manage All Users —**
  Allows an individual to create, edit, and delete any user and reset their password.
* **Add New People —**
  Allows an individual to add new people to Domo.
* **(Admin-level) Manage All Roles —**
  Allows an individual to create, edit, and delete custom roles, and assign anyone to any role in the instance.

Learn how to [manage roles and grants](/s/article/360043438973).

### Access User Management

Follow these steps to access User Management in the Governance Toolkit:

1. Navigate to
   **Admin** > **Governance** > **Governance toolkit**.
2. Go to
   **User Management**.

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007ZFZd.jpg?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=82b2c312e713c185084624109ad82b15" style={{width: 1177, height: 454}} width="2846" height="1098" data-path="images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007ZFZd.jpg" />
   </Frame>

   <Note>
     **Note:**
     If you are missing the Governance Toolkit or User Management option, confirm that your role has the
     [required grants](#required_grants)
     . To enable the toolkit for your Domo account, contact your account team.
   </Note>

### Create the Configuration DataSet

You must create a configuration DataSet for User Management. It should match the formatting of the **Bulk Import** feature found in the Governance Admin Settings (**Admin** > **Governance** > **People**). An example import file is available there. Learn more about [bulk importing](https://domo-support.domo.com/s/article/360042934274?language=en_US#add_users_bulk).

<Warning>
  **Important:**
  For the configuration DataSet, "On-Demand" DataSet Views are not supported. Only Views that update on a schedule or via DataSet update are allowed.
</Warning>

This table lists all of the required fields for the configuration DataSet:

<table border="1" cellpadding="1" cellspacing="1" data-aura-rendered-by="33:209;a"><thead><tr><td colspan="1" rowspan="1"><b> Column Header </b></td><td colspan="1" rowspan="1"><b> Type </b></td><td colspan="1" rowspan="1"><b> Format </b></td></tr></thead><tbody><tr><td colspan="1" rowspan="1"> displayName </td><td colspan="1" rowspan="1"> String </td><td colspan="1" rowspan="1"> John Smith </td></tr><tr><td colspan="1" rowspan="1"><p> roleId </p><p> As with all other fields listed in this table, roleId is required. </p></td><td colspan="1" rowspan="1"> Number </td><td colspan="1" rowspan="1"><p> Valid roleId values include: </p><ul><li> 1 (Admin) </li><li> 2 (Privileged) </li><li> 3 (Editor) </li><li> 4 (Participant) </li><li> 5 (Social) </li></ul><div class="mdx-embed"><Note><p><b> Note: </b> If the Custom Role feature is enabled for your instance, you can also enter a user's custom Role ID. <p /><p> Find the Role ID by going to <b> Admin </b> > <b> Governance </b> > <b> Roles </b>. Select the role from the list and go to the <b> Details </b> tab. Locate the <b> Role ID. </b></p><p /><p><img alt="non cloud admin.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/J3x-O8qWbl7BB1F9/images/kb/ka0Vq000000EdeD-00N5w00000Ri7BU-0EMVq000001REMT.jpg?fit=max&auto=format&n=J3x-O8qWbl7BB1F9&q=85&s=01e80ce0787054d8bd94e629472decb7" style={{width: 325, height: 402}} width="830" height="1026" data-path="images/kb/ka0Vq000000EdeD-00N5w00000Ri7BU-0EMVq000001REMT.jpg" /><br /></p></p></Note></div></td></tr><tr><td colspan="1" rowspan="1"> title </td><td colspan="1" rowspan="1"> String </td><td colspan="1" rowspan="1"> Software Engineer </td></tr><tr><td colspan="1" rowspan="1"> department </td><td colspan="1" rowspan="1"> String </td><td colspan="1" rowspan="1"> Development </td></tr><tr><td colspan="1" rowspan="1"> email </td><td colspan="1" rowspan="1"> Email </td><td colspan="1" rowspan="1"> johnsmith @ example. com </td></tr><tr><td colspan="1" rowspan="1"> alternateEmail </td><td colspan="1" rowspan="1"> Email </td><td colspan="1" rowspan="1"> john\_smith @ example. com </td></tr><tr><td colspan="1" rowspan="1"> phoneNumber </td><td colspan="1" rowspan="1"> International phone number </td><td colspan="1" rowspan="1"> Example: <em> (800) 899-1000 </em></td></tr><tr><td colspan="1" rowspan="1"> deskPhoneNumber </td><td colspan="1" rowspan="1"> International phone number </td><td colspan="1" rowspan="1"> Example: <em> (800) 899-1000 </em></td></tr><tr><td colspan="1" rowspan="1"> employeeNumber </td><td colspan="1" rowspan="1"> Number — Long or integer </td><td colspan="1" rowspan="1"> 0074 </td></tr><tr><td colspan="1" rowspan="1"> location </td><td colspan="1" rowspan="1"> String </td><td colspan="1" rowspan="1"><p> Utah </p></td></tr><tr><td colspan="1" rowspan="1"> timeZone </td><td colspan="1" rowspan="1"> String </td><td colspan="1" rowspan="1"><p> Example: America/Denver </p><p> See this Wikipedia article for a list of the <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones" target="_blank"> tz database time zones </a><InlineImage src="/images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000001Cz3x.jpg" />. </p></td></tr><tr><td colspan="1" rowspan="1"> locale </td><td colspan="1" rowspan="1"> Locale language tag </td><td colspan="1" rowspan="1"><p> Valid locale values include: </p><p> de-DE, de-AT, de-CH, en-AU, en-CA, en-150, en-HK, en-IE, en-IL, en-MO, en-NZ, en-SG, en-GB, en-US, en-001, es-ES, es-US, es-419, es-MX, fr-BE, fr-CA, fr-FR, fr-CH, nl-BE, nl-NL, pt-BR, pt-PT, ja-JP, zh-CN, zh-Hans-HK, zh-Hans-MO, zh-Hans-SG <a id="create_a_job" target="_blank" /></p></td></tr><tr><td colspan="1" rowspan="1"> employeeId </td><td colspan="1" rowspan="1"> String </td><td colspan="1" rowspan="1"><p> UT000034065 </p></td></tr></tbody></table>

### Create a Job

Follow these steps to create a job:

1. [Access](#access_user_management)
   User Management.
2. Select
   **+ New Job**.
3. Provide the following information:

   **Note:** The fields marked with an asterisk (**\***) are required.

   * Job name
     **\***
   * Job description
   * Configuration DataSet
     **\*** Learn how to create your configuration DataSet [above](#configuration_dataset).
   * Send invite — Checking this box sends an email to all newly created users.
   * Delete orphaned users —
     **Warning:** This deletes any person in your instance who is not included in the configuration DataSet.
   * Where would you like to run this job? — Choose whether to run this job in the current instance or a remote instance you manage.
   * Where would you like to save run logs? — Each job keeps track of executions for the job and surrounding information. You can either select a new DataSet or an existing DataSet to save run logs.
     * New DataSet — If this is selected, a new DataSet is created in your Domo instance and all job runs are written to the new DataSet.
     * Existing DataSet — If this is selected, the selected existing DataSet allows you to combine multiple User Management jobs into a single logging DataSet.

       The DataSet must be created by the User Management tool.

       The DataSet must also already contain rows of data.
   * Email(s) to receive notifications — You can add individual emails to this field. Each recipient receives an email notification from Domo each time the job runs. The notification outlines what actions the job performed during the run and documents any failures.
4. Submit your changes.

   **IMAGE**

### Run a Job

When running a job, you can choose to enable it by toggling the **Disabled/Active** switch. Enabling allows the job to run on a schedule.

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/J3x-O8qWbl7BB1F9/images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007ONsH.jpg?fit=max&auto=format&n=J3x-O8qWbl7BB1F9&q=85&s=31194ded9517a54857855cdfc6f1eb25" style={{width: 699, height: 61}} width="1994" height="174" data-path="images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007ONsH.jpg" />
</Frame>

* When the toggle is Disabled, the job must always be executed manually.
* When the toggle is Active, the job executes every six hours and every time the configuration DataSet is updated.

Follow these steps to run a job manually:

1. [Access](#access_user_management)
   User Management.
2. Hover over the job you want to run and select
   **Options** > **Run Job**.

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/J3x-O8qWbl7BB1F9/images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007P16Z.jpg?fit=max&auto=format&n=J3x-O8qWbl7BB1F9&q=85&s=db7f867f56ce256e50daa28994189aaf" style={{width: 699, height: 159}} width="2038" height="464" data-path="images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007P16Z.jpg" />
   </Frame>

### Manage Attributes With the Configuration DataSet

You can use the User Management [configuration DataSet](#configuration_dataset) to help create and manage system and custom attributes in your instance in bulk.

<Note>
  **What are attributes?**
  Attributes drive group membership and personalized data permissions (PDP) within Domo. System attributes are included with Domo by default; when you create the configuration DataSet as described
  [above](#configuration_dataset)
  , the system attributes are included. Custom attributes are created by Domo users, including being sourced from your IdP (identity provider). Learn more about
  [attributes](/s/article/000005164)
  .
</Note>

# Add Custom Attributes With the Configuration DataSet

When you create a custom attribute from the **Attributes** page in the Governance Admin Settings (**Admin** > **Governance** > **Attributes**), you must provide a Key value. Domo looks for this key when authenticating users. Learn more about [attributes](/s/article/000005164).

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007PBgz.jpg?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=64251189b3acb127877952652cfdf653" style={{width: 548, height: 375}} width="1838" height="1258" data-path="images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007PBgz.jpg" />
</Frame>

When you use User Management to create or update custom attributes, you must include the matching Key for each attribute in the configuration DataSet.

How does this work? Follow the steps below.

1. Add a \<
   *custom attribute* > column for each custom attribute to the configuration DataSet, where the column name is the custom attribute's Key.

   For example, to add the Team ID attribute where the Key is `teamId`, add a new column to the configuration DataSet called `teamId`.

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007ZlOD.jpg?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=459a5464a3aa121a008388490b3cd780" style={{width: 300, height: 230}} width="462" height="354" data-path="images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007ZlOD.jpg" />
   </Frame>

2. Fill in the column with the values for each individual. The data type of the attribute value must match the data type of the column. For example, if the attribute expects a number, but the configuration DataSet includes letters, the User Management job will not run successfully.

   For example, the data type is string and the value for each individual is `sales`.

   <Note>
     **Note:**
     List-type custom attributes are also supported, and can be delimited with a `|` (pipe) character. For example,
     `abc|def`
     adds both
     `abc`
     and
     `def`
     as values to a single custom list attribute.
   </Note>

3. Save the configuration DataSet and re-upload it to Domo.

4. [Access](#access_user_management)
   User Management and navigate to your existing job.

5. Select
   **Edit** to make changes.

6. Choose your updated DataSet in the
   **Configuration Dataset** dropdown.

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/J3x-O8qWbl7BB1F9/images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007OIqz.jpg?fit=max&auto=format&n=J3x-O8qWbl7BB1F9&q=85&s=e972b0d8ac022db9f951fff56e744a9d" style={{width: 700, height: 351}} width="1836" height="920" data-path="images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007OIqz.jpg" />
   </Frame>

7. Submit your changes and run the job.

# View Custom Attributes

After adding custom attributes through your configuration DataSet, you can check that they were configured correctly by viewing the profile page for a person or group included in the configuration DataSet (**Admin** > **Governance** > **People** > **\<\< *user>>***).

Under **Custom**, the user/group's custom attributes and their values are listed.

<Frame>
  <img alt="Screenshot 2024-06-06 at 10.03.13 AM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/J3x-O8qWbl7BB1F9/images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000001EzZJ.jpg?fit=max&auto=format&n=J3x-O8qWbl7BB1F9&q=85&s=51bea87b40a99b7eae533d5e615666b6" style={{width: 893, height: 476}} width="3440" height="1832" data-path="images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000001EzZJ.jpg" />
</Frame>

### Remote Instance Configuration

With remote instance configuration, you can be in one Domo instance and manage individuals in other instances you have access to. You can manage individuals remotely by setting up the [configuration DataSet](#configuration_dataset). Configure the [Domo Access Token account](#configure_domo_access_token) with either a [Domo Access token](#generate_access_token) or a username and password for the remote instance.

# Configure User Management for Remote Instance

You can also configure your User Management setting for any remote instances you have access to. Follow the steps below to configure User Management for a remote instance:

1. While creating or editing a job, under
   **Configuration**, select a configuration DataSet. This DataSet should be populated with valid values for the remote instance according to User Management guidelines given [above](#configuration_dataset).
2. Under
   **Where would you like to run this job?** select **Remote Instance**.

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007PAhh.jpg?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=857f004a6f185f061580ecbaaeef14a5" style={{width: 301, height: 103}} width="614" height="210" data-path="images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007PAhh.jpg" />
   </Frame>
3. In the
   **Instance:** field, enter the domain for the remote instance you want to manage PDP for. The domain format must be *[example.domo.com](http://example.domo.com)*.
4. Use the
   **Select the account for your instance:** dropdown to select a valid Domo Access Account. Learn how to configure a Domo Access Token Account [below](#configure_domo_access_token).
5. Choose where to save run logs under
   **Reporting**.

   **Note:** The notification emails and metric logs are written to the instance the policy is running from, not to the remote instance.
6. Select
   **Submit** to save your changes.

# Configure a Domo Access Token Account

Follow these steps to configure a Domo Access Token account:

1. In Domo, navigate to
   **Accounts**.
2. Select
   **Add New** > **Account** and use the dropdown to choose a Domo Access Token account.

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/J3x-O8qWbl7BB1F9/images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007P9X7.jpg?fit=max&auto=format&n=J3x-O8qWbl7BB1F9&q=85&s=725ae52a95525396b5df6885f12c44d1" style={{width: 898, height: 375}} width="3146" height="1314" data-path="images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007P9X7.jpg" />
   </Frame>
3. In the modal, complete one of the following options:
   * **Access Token —**
     Enter an access token in the **Remote Instance Access Token** field.
   * **Username and password —**
     Enter your credentials in the **Remote Instance Username** and **Remote Instance Password** fields.
4. Select
   **Connect**.

# Generate an Access Token

Follow these steps to generate an access token:

1. Navigate to
   **Admin** > **Authentication** > **Access tokens**.
2. On the
   **Access tokens** page, select **+ Generate access token**.

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/J3x-O8qWbl7BB1F9/images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007PA09.jpg?fit=max&auto=format&n=J3x-O8qWbl7BB1F9&q=85&s=307dbe267b8e95230a2ba9d0e67ddd45" style={{width: 897, height: 65}} width="3310" height="240" data-path="images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007PA09.jpg" />
   </Frame>
3. Enter a description in the
   **Access token description** field.

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/-nfdSCiV_P1xrFhN/images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007PA9p.jpg?fit=max&auto=format&n=-nfdSCiV_P1xrFhN&q=85&s=28b5c62c254c1c4a7f4d405fb1c334b9" style={{width: 697, height: 75}} width="1450" height="156" data-path="images/kb/ka0Vq000000Edkf-00N5w00000Ri7BU-0EMVq000007PA9p.jpg" />
   </Frame>
4. Search for and select a user for whom you are generating the access token.
5. Select an expiration interval in the
   **Expire after** list.
6. Select
   **Generate**.
7. Copy the code to use.
