> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect Egnyte with OAuth 2.0 (Internal Application) – StackOne Hub

> Link a Egnyte account in the StackOne Hub using OAuth 2.0 (Internal Application). End-user guide to authorize the integration and start using Egnyte actions.

<Warning>Requires a Domain Admin account and an Internal Application registered on the Egnyte Developer Portal for the customer's Egnyte domain. The Egnyte plan must be an eligible plan — <strong>Trial, Legacy Office, or Team plans</strong> are not supported. Egnyte recommends this flow only for trusted, first-party integrations; use the OAuth 2.0 (Public Application) flow for multi-tenant integrations.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;egnyte_add_comment&#x22;,&#x22;label&#x22;:&#x22;Add Comment&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_list_comments&#x22;,&#x22;label&#x22;:&#x22;List Comments&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_get_comment&#x22;,&#x22;label&#x22;:&#x22;Get Comment&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_delete_comment&#x22;,&#x22;label&#x22;:&#x22;Delete Comment&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_get_events_cursor_v1&#x22;,&#x22;label&#x22;:&#x22;Get Events Cursor&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_get_events_v2&#x22;,&#x22;label&#x22;:&#x22;List Events (v2)&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_get_fs_v2&#x22;,&#x22;label&#x22;:&#x22;Get File Or Folder Metadata (v2)&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_post_fs_v2&#x22;,&#x22;label&#x22;:&#x22;File Or Folder Operation (v2)&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_delete_fs_v2&#x22;,&#x22;label&#x22;:&#x22;Delete File Or Folder (v2)&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_get_fs_by_id_v1&#x22;,&#x22;label&#x22;:&#x22;Get File Or Folder Metadata By ID&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_post_fs_by_id_v1&#x22;,&#x22;label&#x22;:&#x22;File Or Folder Operation By ID&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_delete_fs_by_id_v1&#x22;,&#x22;label&#x22;:&#x22;Delete File Or Folder By ID&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_get_fs_folder_stats_v1&#x22;,&#x22;label&#x22;:&#x22;Get Folder Statistics By ID&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_get_fs_content_by_path_v1&#x22;,&#x22;label&#x22;:&#x22;Download File Content By Path&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_post_fs_content_by_path_v1&#x22;,&#x22;label&#x22;:&#x22;Upload File Content By Path&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_get_fs_content_by_id_v1&#x22;,&#x22;label&#x22;:&#x22;Download File Content By ID&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_post_fs_content_chunked_by_id_v1&#x22;,&#x22;label&#x22;:&#x22;Chunked Upload By File ID&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_patch_folder_options_v1&#x22;,&#x22;label&#x22;:&#x22;Modify Folder Options&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_get_groups_v2&#x22;,&#x22;label&#x22;:&#x22;List Groups&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.group&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_post_groups_v2&#x22;,&#x22;label&#x22;:&#x22;Create Group&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.group&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_get_groups_by_id_v2&#x22;,&#x22;label&#x22;:&#x22;Get Group&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.group&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_put_groups_by_id_v2&#x22;,&#x22;label&#x22;:&#x22;Replace Group&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.group&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_patch_groups_by_id_v2&#x22;,&#x22;label&#x22;:&#x22;Partially Update Group&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.group&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_delete_groups_by_id_v2&#x22;,&#x22;label&#x22;:&#x22;Delete Group&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.group&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_get_links_v2&#x22;,&#x22;label&#x22;:&#x22;List Links (v2)&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.link&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_post_links_v1&#x22;,&#x22;label&#x22;:&#x22;Create Link (v1)&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.link&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_get_links_by_id_v1&#x22;,&#x22;label&#x22;:&#x22;Get Link (v1)&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.link&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_delete_links_by_id_v1&#x22;,&#x22;label&#x22;:&#x22;Delete Link (v1)&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.link&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_get_effective_permissions_for_user&#x22;,&#x22;label&#x22;:&#x22;Get Effective Permissions For User&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.permission&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_search_v2_post&#x22;,&#x22;label&#x22;:&#x22;Search Files And Folders (v2)&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_get_userinfo&#x22;,&#x22;label&#x22;:&#x22;Get User Info&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_trash_action&#x22;,&#x22;label&#x22;:&#x22;Restore Or Purge Trash Items&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_list_trash_v2&#x22;,&#x22;label&#x22;:&#x22;List Trash Contents (v2)&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.filesystem&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_list_users&#x22;,&#x22;label&#x22;:&#x22;List Users&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.user&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_create_user&#x22;,&#x22;label&#x22;:&#x22;Create User&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.user&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_get_user&#x22;,&#x22;label&#x22;:&#x22;Get User&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.user&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_update_user&#x22;,&#x22;label&#x22;:&#x22;Update User&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.user&#x22;]},{&#x22;id&#x22;:&#x22;egnyte_delete_user&#x22;,&#x22;label&#x22;:&#x22;Delete User&#x22;,&#x22;scopes&#x22;:[&#x22;Egnyte.user&#x22;]}]">
    <div className="guides-scope-selector__title">Select Actions to adjust the guide</div>
    <div className="guides-scope-selector__muted guides-scope-selector__subtitle">Some actions may require additional configuration in the provider to be accessible. Choose the actions you need and the guide will be updated.</div>

    <div className="guides-scope-selector__toolbar">
      <input type="text" placeholder="Search actions..." className="guides-scope-selector__input guides-scope-selector__search" data-guide-action-search />

      <button type="button" className="guides-scope-selector__quick-btn" data-guide-select-all>Select all</button>
      <button type="button" className="guides-scope-selector__quick-btn" data-guide-clear>Clear</button>
    </div>

    <div className="guides-scope-selector__list">
      <div className="guides-scope-selector__list-header">
        <div className="guides-scope-selector__list-header-spacer" />

        <div className="guides-scope-selector__list-header-action">Action</div>
        <div className="guides-scope-selector__list-header-scopes">Scope(s)</div>
      </div>

      <div className="guides-scope-selector__muted guides-scope-selector__status" data-guide-loading>Loading actions...</div>
      <div className="guides-scope-selector__muted guides-scope-selector__status" data-guide-no-results hidden>No actions match your search.</div>
    </div>

    <div className="guides-scope-selector__url-section">
      <div className="guides-scope-selector__muted guides-scope-selector__label">Dynamic Guide URL</div>

      <div className="guides-scope-selector__url-row">
        <input type="text" readOnly className="guides-scope-selector__input guides-scope-selector__url-input" data-guide-url />

        <button type="button" className="guides-scope-selector__copy-btn guides-scope-selector__copy-btn--end" data-guide-copy-url>Copy URL</button>
      </div>

      <div className="guides-scope-selector__scopes-section">
        <div className="guides-scope-selector__muted guides-scope-selector__label">Scopes Selected</div>

        <div className="guides-scope-selector__scopes-row">
          <pre className="guides-scope-selector__input guides-scope-selector__scopes-output" role="textbox" aria-readonly="true" tabIndex={0} data-guide-scopes-output />

          <div className="guides-scope-selector__muted guides-scope-selector__side-controls">
            <div className="guides-scope-selector__side-label">Separator</div>

            <select className="guides-scope-selector__input guides-scope-selector__delimiter" data-guide-scope-delimiter>
              <option value="space">Space</option>
              <option value="comma">Comma</option>
              <option value="semicolon">Semicolon</option>
              <option value="pipe">Pipe</option>
              <option value="newline">Newline</option>
            </select>

            <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-scopes>Copy scopes</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</Panel>

<section data-guide-section data-guide-scopes="">
  <h2>Register an Internal Application on the Egnyte Developer Portal</h2>

  <p>To connect Egnyte with StackOne using the Resource Owner Password Credentials grant, you need to create an <strong>Internal Application</strong> on the Egnyte Developer Portal. This will generate the <strong>API Key</strong> and <strong>API Secret</strong> required for integration, which map to `client_id` and `client_secret` in the token request.</p>

  <Steps>
    <Step title="Sign in to the Egnyte Developer Portal">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Open your browser and navigate to the <a href="https://developers.egnyte.com" target="_blank" rel="noopener noreferrer">Egnyte Developer Portal</a>. Click <strong>Sign In</strong> in the top-right corner, then enter your <strong>Email</strong> and <strong>Password</strong> and click <strong>SIGN IN</strong>. Use an account tied to an active Egnyte Domain Admin — API keys requested by a non-admin will be declined.</p>

        <img src="https://mintcdn.com/stackone-60/z1f68Vshj_J7cwjE/connectors/egnyte/images/oauth2-setup-sign-in.png?fit=max&auto=format&n=z1f68Vshj_J7cwjE&q=85&s=55b3e3236529693c4d42a9cd30d4c66e" alt="Egnyte Developer Portal sign-in form with Email and Password fields" width="1280" height="800" data-path="connectors/egnyte/images/oauth2-setup-sign-in.png" />
      </div>
    </Step>

    <Step title="Open the Apps page">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click your account email in the top-right corner to open the account dropdown, then click <strong>Apps</strong>. You land on the <strong>My Apps</strong> page.</p>

        <img src="https://mintcdn.com/stackone-60/z1f68Vshj_J7cwjE/connectors/egnyte/images/oauth2-setup-open-apps.png?fit=max&auto=format&n=z1f68Vshj_J7cwjE&q=85&s=66fb6214a01b84d03cc1248b9474a089" alt="Account dropdown showing the Apps menu item on the Egnyte Developer Portal" width="1280" height="800" data-path="connectors/egnyte/images/oauth2-setup-open-apps.png" />
      </div>
    </Step>

    <Step title="Create a new App">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>On the <strong>My Apps</strong> page, click <strong>+ NEW APP</strong> in the top-right corner to open the <strong>New App</strong> form.</p>

        <img src="https://mintcdn.com/stackone-60/z1f68Vshj_J7cwjE/connectors/egnyte/images/oauth2-setup-my-apps.png?fit=max&auto=format&n=z1f68Vshj_J7cwjE&q=85&s=1226ed7d47814ade23fbaca37dc49783" alt="My Apps page with the + NEW APP button in the top-right" width="1280" height="800" data-path="connectors/egnyte/images/oauth2-setup-my-apps.png" />
      </div>
    </Step>

    <Step title="Fill in the app details">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Complete the <strong>Overview</strong> section of the <strong>New App</strong> form. The <strong>Registered OAuth<br />Redirect URI</strong> field is not required for Internal Applications — leave it blank — and<br /><strong>Current User Base</strong> and <strong>Platform</strong> can stay at their defaults.</p>

        <ul>
          <li><strong>App Name</strong> — a display name for the app (for example, `Internal Integration`).</li>
          <li><strong>Description</strong> — a short description of the integration.</li>
          <li><strong>Egnyte Domain</strong> — the customer's Egnyte subdomain, without the `.egnyte.com` suffix. For example, from `https://acme.egnyte.com` enter `acme`. Trial domains are not eligible for API keys.</li>
          <li><strong>App Icon URL</strong> (optional) — URL to an image file (PNG, max 100px by 100px).</li>
          <li><strong>Type</strong> — choose <strong>Internal Application (own company use only)</strong>. This enables the Resource Owner Password Credentials grant on the issued key. The Redirect URI is only used by <strong>Publicly Available Application</strong> — leave it blank here.</li>
        </ul>

        <img src="https://mintcdn.com/stackone-60/z1f68Vshj_J7cwjE/connectors/egnyte/images/oauth2-setup-new-app-form.png?fit=max&auto=format&n=z1f68Vshj_J7cwjE&q=85&s=ef6666bb6db0d5361aefbaced7f943a1" alt="Egnyte New App form showing App Name, Description and Additional Information fields" width="1280" height="800" data-path="connectors/egnyte/images/oauth2-setup-new-app-form.png" />
      </div>
    </Step>

    <Step title="Request access to the APIs">
      <div data-guide-step data-guide-scopes="Egnyte.filesystem,Egnyte.permission,Egnyte.link,Egnyte.user,Egnyte.group,Egnyte.webhooks" data-guide-display-scopes-list="Egnyte.filesystem,Egnyte.permission,Egnyte.link,Egnyte.user,Egnyte.group,Egnyte.webhooks">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="Egnyte.filesystem,Egnyte.permission,Egnyte.link,Egnyte.user,Egnyte.group,Egnyte.webhooks">
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Add Comment, Chunked Upload By File ID, Create Group, Create Link (v1), Create User, Delete Comment, Delete File Or Folder (v2), Delete File Or Folder By ID, Delete Group, Delete Link (v1), Delete User, Download File Content By ID, Download File Content By Path, File Or Folder Operation (v2), File Or Folder Operation By ID, Get Comment, Get Effective Permissions For User, Get Events Cursor, Get File Or Folder Metadata (v2), Get File Or Folder Metadata By ID, Get Folder Statistics By ID, Get Group, Get Link (v1), Get User, Get User Info, List Comments, List Events (v2), List Groups, List Links (v2), List Trash Contents (v2), List Users, Modify Folder Options, Partially Update Group, Replace Group, Restore Or Purge Trash Items, Search Files And Folders (v2), Update User, Upload File Content By Path</span>
        </div>

        <p>Scroll to the <strong>APIs</strong> section and click <strong>Request</strong> on the row for <strong>Prod Collaborate</strong> — this API grouping covers filesystem, comments, links, permissions, users, groups, search, trash, and events. Also request <strong>Prod\_SnG</strong> if the integration needs Secure & Govern APIs. Enable the scopes required for your use case:</p>

        <img src="https://mintcdn.com/stackone-60/z1f68Vshj_J7cwjE/connectors/egnyte/images/oauth2-setup-request-apis.png?fit=max&auto=format&n=z1f68Vshj_J7cwjE&q=85&s=46791dfc5a49f3122458d3d508b982fe" alt="APIs section on the New App form showing Prod Collaborate with the Request button" width="1280" height="800" data-path="connectors/egnyte/images/oauth2-setup-request-apis.png" />

        <div className="connector-guide-display-scopes" data-guide-display-scopes>
          <div className="connector-guide-scopes-container">
            <ul className="not-prose connector-guide-scopes-list">
              <li data-guide-display-scope="Egnyte.filesystem">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Egnyte.filesystem" title="Copy scope" data-copy="Egnyte.filesystem">
                  <span className="connector-guide-scope-copy__label">Egnyte.filesystem</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li data-guide-display-scope="Egnyte.permission">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Egnyte.permission" title="Copy scope" data-copy="Egnyte.permission">
                  <span className="connector-guide-scope-copy__label">Egnyte.permission</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li data-guide-display-scope="Egnyte.link">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Egnyte.link" title="Copy scope" data-copy="Egnyte.link">
                  <span className="connector-guide-scope-copy__label">Egnyte.link</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li data-guide-display-scope="Egnyte.user">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Egnyte.user" title="Copy scope" data-copy="Egnyte.user">
                  <span className="connector-guide-scope-copy__label">Egnyte.user</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li data-guide-display-scope="Egnyte.group">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Egnyte.group" title="Copy scope" data-copy="Egnyte.group">
                  <span className="connector-guide-scope-copy__label">Egnyte.group</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li data-guide-display-scope="Egnyte.webhooks">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Egnyte.webhooks" title="Copy scope" data-copy="Egnyte.webhooks">
                  <span className="connector-guide-scope-copy__label">Egnyte.webhooks</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>

    <Step title="Save the app">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click <strong>SAVE</strong> at the bottom-right of the form. For Internal Applications Egnyte issues the API Key and API Secret immediately with <strong>Status: Approved</strong> — no external review queue applies to internal keys on eligible plans.</p>
      </div>
    </Step>

    <Step title="Copy the API Key and API Secret from Egnyte">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Open the app from <strong>My Apps</strong> and scroll to the <strong>API Keys</strong> section.</p>

        <ul>
          <li>In the <strong>Key</strong> column, click <strong>Copy API key</strong> — sent as `client_id` in the token request.</li>
          <li>In the <strong>Secret</strong> column, click <strong>Show secret</strong>, then click the copy icon — sent as `client_secret`. All Egnyte keys issued after January 2015 require a secret.</li>
        </ul>

        <img src="https://mintcdn.com/stackone-60/z1f68Vshj_J7cwjE/connectors/egnyte/images/oauth2-setup-api-keys.png?fit=max&auto=format&n=z1f68Vshj_J7cwjE&q=85&s=2ecb2117e093f4469b7aa8a421c8d9a5" alt="App profile API Keys section with Copy API key and Show secret controls" width="1280" height="800" data-path="connectors/egnyte/images/oauth2-setup-api-keys.png" />
      </div>
    </Step>

    <Step title="Paste the credentials on the StackOne Linked Account">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Enter the values copied from Egnyte.</p>

        <ul>
          <li>Egnyte <strong>API Key</strong> → StackOne <strong>Client ID</strong>.</li>
          <li>Egnyte <strong>API Secret</strong> → StackOne <strong>Client Secret</strong>.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Find the Egnyte Domain</h2>

  <p>Every Egnyte account is scoped to a unique subdomain of `egnyte.com`. StackOne needs that subdomain to build the token URL (`https://{domain}.egnyte.com/puboauth/token`) and every subsequent API endpoint.</p>

  <Steps>
    <Step title="Sign in to the Egnyte account">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Open <strong>`https://<customer-domain>.egnyte.com`</strong> in your browser — this is the same subdomain entered as <strong>Egnyte Domain</strong> on the New App form in the previous section (e.g. `acme` → `https://acme.egnyte.com`).</p>
      </div>
    </Step>

    <Step title="Locate the Egnyte subdomain">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>On the Egnyte <strong>Sign in</strong> page (and in the browser address bar) you will see the workspace URL. The part before `.egnyte.com` is the Egnyte Domain. For example, if the sign-in page shows `app4stackone.egnyte.com`, the Egnyte Domain is `app4stackone`.</p>

        <ul>
          <li>Enter only the subdomain part — omit any scheme prefix, the `.egnyte.com` suffix, and any trailing path.</li>
          <li>The domain contains only letters, numbers, and hyphens — no spaces or special characters.</li>
          <li>Trial domains are not eligible for the Egnyte Public API.</li>
        </ul>

        <img src="https://mintcdn.com/stackone-60/z1f68Vshj_J7cwjE/connectors/egnyte/images/oauth2-config-find-domain.png?fit=max&auto=format&n=z1f68Vshj_J7cwjE&q=85&s=fa8a843ea63043f1bf50e338bbb9e459" alt="Egnyte tenant sign-in page showing the workspace name and the tenant subdomain" width="1280" height="800" data-path="connectors/egnyte/images/oauth2-config-find-domain.png" />
      </div>
    </Step>

    <Step title="Enter the domain on the StackOne Linked Account">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Paste the subdomain into the <strong>Egnyte Domain</strong> field on the StackOne Linked Account.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Prepare Domain Admin credentials for the password grant</h2>

  <p>The Resource Owner Password Credentials grant exchanges a Domain Admin's username and password for a token pair. Prefer a dedicated integration user account so token revocation doesn't disrupt individual admins, and rotate the credentials if they are ever exposed.</p>

  <Steps>
    <Step title="Confirm the account is a Domain Admin">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Only Domain Admins can be exchanged for tokens with the required API scopes. In the Egnyte web UI, open <strong>Settings → Users & Groups</strong>, click <strong>Details</strong> on the user, open the <strong>Profile</strong> tab, and confirm <strong>User Type</strong> is <strong>Administrator</strong> — see Egnyte's <a href="https://helpdesk.egnyte.com/hc/en-us/articles/202175874-Change-User-Type" target="_blank" rel="noopener noreferrer">Change User Type guide</a> to promote them if not.</p>
      </div>
    </Step>

    <Step title="Record the Domain Admin username and password">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>These are the <strong>web-UI sign-in credentials</strong> — not an email address and not an API key. Prefer a dedicated integration account so revoking the token doesn't lock out a person.</p>

        <ul>
          <li><strong>Username</strong> — the login username shown in <strong>Settings → Users & Groups</strong>.</li>
          <li><strong>Password</strong> — the same one used to sign in to the Egnyte web UI. Reset it from the sign-in page if it isn't known.</li>
        </ul>
      </div>
    </Step>

    <Step title="Enter the credentials on the StackOne Linked Account">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Paste the Domain Admin username into the <strong>Egnyte Username</strong> field and the password into the <strong>Egnyte Password</strong> field. These values are sent as `username` and `password` in the `grant_type=password` request to `/puboauth/token`. If Egnyte returns a `403 INVALID_USERNAME_OR_PASSWORD` error, retest with a password that has no special characters — Egnyte docs flag form-encoding edge cases here.</p>
      </div>
    </Step>
  </Steps>
</section>

<div data-whitelabel-hide>
  <h2>Linking the Account from the Hub</h2>

  <Steps>
    <Step title="Navigate to the Hub">
      Use one of the three <a href="/connect/managing-connectors/linking-accounts">Linking Account Methods</a> to access the Hub.
    </Step>

    <Step title="Fill out the fields">
      Fill out the following fields using details from your provider:

      <ul>
        <li><strong>Egnyte Domain</strong></li>
        <li><strong>Client ID</strong></li>
        <li><strong>Client Secret</strong></li>
        <li><strong>Egnyte Username</strong></li>
        <li><strong>Egnyte Password</strong></li>
        <li><strong>OAuth Scopes</strong> (Optional)</li>
      </ul>
    </Step>

    <Step title="Connect">
      <ul>
        <li>Click <strong>Connect</strong></li>
        <li>If applicable, the provider will redirect you to a sign-in or authorization page. Complete the provider's authorization flow.</li>
        <li>Once authorization is successful, you will see a confirmation popup</li>
      </ul>
    </Step>
  </Steps>

  <p>If the account linking is successful, you will see the newly linked account in your <a href="/gateway/concepts/linked-accounts">Accounts</a> page.</p>
</div>

## Next Steps

<Columns cols={2}>
  <Card title="Webhooks setup" href="/connectors/egnyte/guides/webhook-setup">
    <p className="connector-page-auth-description connector-page-card-text">
      Configure receiving Events for Egnyte into StackOne.
    </p>
  </Card>
</Columns>
