> ## 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.

# Webflow OAuth 2.0 connector profile – StackOne setup guide

> Set up the OAuth 2.0 connector profile for Webflow in StackOne. One-time admin setup required before your users can link Webflow accounts via Hub.

<Warning>Workspace Admin access is required to create a Webflow App and obtain OAuth credentials.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;webflow_list_assets&#x22;,&#x22;label&#x22;:&#x22;List Assets&#x22;,&#x22;scopes&#x22;:[&#x22;assets:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_asset&#x22;,&#x22;label&#x22;:&#x22;Get Asset&#x22;,&#x22;scopes&#x22;:[&#x22;assets:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_upload_asset&#x22;,&#x22;label&#x22;:&#x22;Upload Asset&#x22;,&#x22;scopes&#x22;:[&#x22;assets:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_asset&#x22;,&#x22;label&#x22;:&#x22;Update Asset&#x22;,&#x22;scopes&#x22;:[&#x22;assets:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_delete_asset&#x22;,&#x22;label&#x22;:&#x22;Delete Asset&#x22;,&#x22;scopes&#x22;:[&#x22;assets:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_asset_folders&#x22;,&#x22;label&#x22;:&#x22;List Asset Folders&#x22;,&#x22;scopes&#x22;:[&#x22;assets:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_asset_folder&#x22;,&#x22;label&#x22;:&#x22;Get Asset Folder&#x22;,&#x22;scopes&#x22;:[&#x22;assets:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_create_asset_folder&#x22;,&#x22;label&#x22;:&#x22;Create Asset Folder&#x22;,&#x22;scopes&#x22;:[&#x22;assets:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_collections&#x22;,&#x22;label&#x22;:&#x22;List Collections&#x22;,&#x22;scopes&#x22;:[&#x22;cms:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_collection&#x22;,&#x22;label&#x22;:&#x22;Get Collection&#x22;,&#x22;scopes&#x22;:[&#x22;cms:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_create_collection&#x22;,&#x22;label&#x22;:&#x22;Create Collection&#x22;,&#x22;scopes&#x22;:[&#x22;cms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_delete_collection&#x22;,&#x22;label&#x22;:&#x22;Delete Collection&#x22;,&#x22;scopes&#x22;:[&#x22;cms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_create_collection_field&#x22;,&#x22;label&#x22;:&#x22;Create Field&#x22;,&#x22;scopes&#x22;:[&#x22;cms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_collection_field&#x22;,&#x22;label&#x22;:&#x22;Update Collection Field&#x22;,&#x22;scopes&#x22;:[&#x22;cms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_delete_collection_field&#x22;,&#x22;label&#x22;:&#x22;Delete Collection Field&#x22;,&#x22;scopes&#x22;:[&#x22;cms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_components&#x22;,&#x22;label&#x22;:&#x22;List Components&#x22;,&#x22;scopes&#x22;:[&#x22;components:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_component_content&#x22;,&#x22;label&#x22;:&#x22;Get Component Content&#x22;,&#x22;scopes&#x22;:[&#x22;components:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_component_content&#x22;,&#x22;label&#x22;:&#x22;Update Component Content&#x22;,&#x22;scopes&#x22;:[&#x22;components:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_component_properties&#x22;,&#x22;label&#x22;:&#x22;Get Component Properties&#x22;,&#x22;scopes&#x22;:[&#x22;components:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_component_properties&#x22;,&#x22;label&#x22;:&#x22;Update Component Properties&#x22;,&#x22;scopes&#x22;:[&#x22;components:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_registered_scripts&#x22;,&#x22;label&#x22;:&#x22;Get Registered Scripts&#x22;,&#x22;scopes&#x22;:[&#x22;custom_code:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_register_hosted_script&#x22;,&#x22;label&#x22;:&#x22;Register Hosted Script&#x22;,&#x22;scopes&#x22;:[&#x22;custom_code:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_register_inline_script&#x22;,&#x22;label&#x22;:&#x22;Register Inline Script&#x22;,&#x22;scopes&#x22;:[&#x22;custom_code:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_site_custom_code&#x22;,&#x22;label&#x22;:&#x22;Get Site Custom Code&#x22;,&#x22;scopes&#x22;:[&#x22;custom_code:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_upsert_site_custom_code&#x22;,&#x22;label&#x22;:&#x22;Add Or Update Site Custom Code&#x22;,&#x22;scopes&#x22;:[&#x22;custom_code:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_delete_site_custom_code&#x22;,&#x22;label&#x22;:&#x22;Delete Site Custom Code&#x22;,&#x22;scopes&#x22;:[&#x22;custom_code:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_page_custom_code&#x22;,&#x22;label&#x22;:&#x22;Get Page Custom Code&#x22;,&#x22;scopes&#x22;:[&#x22;custom_code:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_upsert_page_custom_code&#x22;,&#x22;label&#x22;:&#x22;Add Or Update Page Custom Code&#x22;,&#x22;scopes&#x22;:[&#x22;custom_code:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_delete_page_custom_code&#x22;,&#x22;label&#x22;:&#x22;Delete Page Custom Code&#x22;,&#x22;scopes&#x22;:[&#x22;custom_code:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_custom_code_blocks&#x22;,&#x22;label&#x22;:&#x22;List Custom Code Blocks&#x22;,&#x22;scopes&#x22;:[&#x22;custom_code:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_products&#x22;,&#x22;label&#x22;:&#x22;List Products&#x22;,&#x22;scopes&#x22;:[&#x22;ecommerce:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_product&#x22;,&#x22;label&#x22;:&#x22;Get Product&#x22;,&#x22;scopes&#x22;:[&#x22;ecommerce:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_create_product&#x22;,&#x22;label&#x22;:&#x22;Create Product&#x22;,&#x22;scopes&#x22;:[&#x22;ecommerce:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_product&#x22;,&#x22;label&#x22;:&#x22;Update Product&#x22;,&#x22;scopes&#x22;:[&#x22;ecommerce:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_create_sku&#x22;,&#x22;label&#x22;:&#x22;Create SKU&#x22;,&#x22;scopes&#x22;:[&#x22;ecommerce:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_sku&#x22;,&#x22;label&#x22;:&#x22;Update SKU&#x22;,&#x22;scopes&#x22;:[&#x22;ecommerce:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_orders&#x22;,&#x22;label&#x22;:&#x22;List Orders&#x22;,&#x22;scopes&#x22;:[&#x22;ecommerce:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_order&#x22;,&#x22;label&#x22;:&#x22;Get Order&#x22;,&#x22;scopes&#x22;:[&#x22;ecommerce:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_order&#x22;,&#x22;label&#x22;:&#x22;Update Order&#x22;,&#x22;scopes&#x22;:[&#x22;ecommerce:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_fulfill_order&#x22;,&#x22;label&#x22;:&#x22;Fulfill Order&#x22;,&#x22;scopes&#x22;:[&#x22;ecommerce:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_unfulfill_order&#x22;,&#x22;label&#x22;:&#x22;Unfulfill Order&#x22;,&#x22;scopes&#x22;:[&#x22;ecommerce:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_refund_order&#x22;,&#x22;label&#x22;:&#x22;Refund Order&#x22;,&#x22;scopes&#x22;:[&#x22;ecommerce:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_inventory&#x22;,&#x22;label&#x22;:&#x22;List Inventory&#x22;,&#x22;scopes&#x22;:[&#x22;ecommerce:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_inventory&#x22;,&#x22;label&#x22;:&#x22;Update Inventory&#x22;,&#x22;scopes&#x22;:[&#x22;ecommerce:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_ecommerce_settings&#x22;,&#x22;label&#x22;:&#x22;Get Ecommerce Settings&#x22;,&#x22;scopes&#x22;:[&#x22;ecommerce:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_site_activity_logs&#x22;,&#x22;label&#x22;:&#x22;Get Site Activity Logs&#x22;,&#x22;scopes&#x22;:[&#x22;site_activity:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_redirects&#x22;,&#x22;label&#x22;:&#x22;Get 301 Redirects&#x22;,&#x22;scopes&#x22;:[&#x22;site_config:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_create_redirect&#x22;,&#x22;label&#x22;:&#x22;Create 301 Redirect&#x22;,&#x22;scopes&#x22;:[&#x22;site_config:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_redirect&#x22;,&#x22;label&#x22;:&#x22;Update 301 Redirect&#x22;,&#x22;scopes&#x22;:[&#x22;site_config:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_delete_redirect&#x22;,&#x22;label&#x22;:&#x22;Delete 301 Redirect&#x22;,&#x22;scopes&#x22;:[&#x22;site_config:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_robots_txt&#x22;,&#x22;label&#x22;:&#x22;Get Robots.txt&#x22;,&#x22;scopes&#x22;:[&#x22;site_config:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_replace_robots_txt&#x22;,&#x22;label&#x22;:&#x22;Replace Robots.txt&#x22;,&#x22;scopes&#x22;:[&#x22;site_config:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_robots_txt&#x22;,&#x22;label&#x22;:&#x22;Update Robots.txt&#x22;,&#x22;scopes&#x22;:[&#x22;site_config:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_delete_robots_txt&#x22;,&#x22;label&#x22;:&#x22;Delete Robots.txt Rules&#x22;,&#x22;scopes&#x22;:[&#x22;site_config:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_set_well_known_file&#x22;,&#x22;label&#x22;:&#x22;Set Well-Known File&#x22;,&#x22;scopes&#x22;:[&#x22;site_config:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_delete_well_known_files&#x22;,&#x22;label&#x22;:&#x22;Delete Well-Known Files&#x22;,&#x22;scopes&#x22;:[&#x22;site_config:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_create_site&#x22;,&#x22;label&#x22;:&#x22;Create Site&#x22;,&#x22;scopes&#x22;:[&#x22;workspace:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_site&#x22;,&#x22;label&#x22;:&#x22;Update Site&#x22;,&#x22;scopes&#x22;:[&#x22;sites:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_delete_site&#x22;,&#x22;label&#x22;:&#x22;Delete Site&#x22;,&#x22;scopes&#x22;:[&#x22;sites:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_site_plan&#x22;,&#x22;label&#x22;:&#x22;Get Site Plan&#x22;,&#x22;scopes&#x22;:[&#x22;sites:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_comment_threads&#x22;,&#x22;label&#x22;:&#x22;List Comment Threads&#x22;,&#x22;scopes&#x22;:[&#x22;comments:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_comment_thread&#x22;,&#x22;label&#x22;:&#x22;Get Comment Thread&#x22;,&#x22;scopes&#x22;:[&#x22;comments:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_comment_replies&#x22;,&#x22;label&#x22;:&#x22;List Comment Replies&#x22;,&#x22;scopes&#x22;:[&#x22;comments:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_forms&#x22;,&#x22;label&#x22;:&#x22;List Forms&#x22;,&#x22;scopes&#x22;:[&#x22;forms:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_form_schema&#x22;,&#x22;label&#x22;:&#x22;Get Form Schema&#x22;,&#x22;scopes&#x22;:[&#x22;forms:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_form_submissions&#x22;,&#x22;label&#x22;:&#x22;List Form Submissions&#x22;,&#x22;scopes&#x22;:[&#x22;forms:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_form_submissions_by_site&#x22;,&#x22;label&#x22;:&#x22;List Form Submissions By Site&#x22;,&#x22;scopes&#x22;:[&#x22;forms:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_form_submission&#x22;,&#x22;label&#x22;:&#x22;Get Form Submission&#x22;,&#x22;scopes&#x22;:[&#x22;forms:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_form_submission&#x22;,&#x22;label&#x22;:&#x22;Update Form Submission&#x22;,&#x22;scopes&#x22;:[&#x22;forms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_delete_form_submission&#x22;,&#x22;label&#x22;:&#x22;Delete Form Submission&#x22;,&#x22;scopes&#x22;:[&#x22;forms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_collection_items&#x22;,&#x22;label&#x22;:&#x22;List Collection Items&#x22;,&#x22;scopes&#x22;:[&#x22;cms:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_collection_item&#x22;,&#x22;label&#x22;:&#x22;Get Collection Item&#x22;,&#x22;scopes&#x22;:[&#x22;cms:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_collection_item&#x22;,&#x22;label&#x22;:&#x22;Update Collection Item&#x22;,&#x22;scopes&#x22;:[&#x22;cms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_delete_collection_item&#x22;,&#x22;label&#x22;:&#x22;Delete Collection Item&#x22;,&#x22;scopes&#x22;:[&#x22;cms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_create_collection_items&#x22;,&#x22;label&#x22;:&#x22;Create Collection Items&#x22;,&#x22;scopes&#x22;:[&#x22;cms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_collection_items&#x22;,&#x22;label&#x22;:&#x22;Update Collection Items&#x22;,&#x22;scopes&#x22;:[&#x22;cms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_delete_collection_items&#x22;,&#x22;label&#x22;:&#x22;Delete Collection Items&#x22;,&#x22;scopes&#x22;:[&#x22;cms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_publish_collection_items&#x22;,&#x22;label&#x22;:&#x22;Publish Collection Items&#x22;,&#x22;scopes&#x22;:[&#x22;cms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_live_collection_items&#x22;,&#x22;label&#x22;:&#x22;List Live Collection Items&#x22;,&#x22;scopes&#x22;:[&#x22;cms:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_live_collection_item&#x22;,&#x22;label&#x22;:&#x22;Get Live Collection Item&#x22;,&#x22;scopes&#x22;:[&#x22;cms:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_create_live_collection_items&#x22;,&#x22;label&#x22;:&#x22;Create Live Collection Items&#x22;,&#x22;scopes&#x22;:[&#x22;cms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_live_collection_items&#x22;,&#x22;label&#x22;:&#x22;Update Live Collection Items&#x22;,&#x22;scopes&#x22;:[&#x22;cms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_unpublish_live_collection_items&#x22;,&#x22;label&#x22;:&#x22;Unpublish Live Items&#x22;,&#x22;scopes&#x22;:[&#x22;cms:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_pages&#x22;,&#x22;label&#x22;:&#x22;List Pages&#x22;,&#x22;scopes&#x22;:[&#x22;pages:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_page_metadata&#x22;,&#x22;label&#x22;:&#x22;Get Page Metadata&#x22;,&#x22;scopes&#x22;:[&#x22;pages:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_page_metadata&#x22;,&#x22;label&#x22;:&#x22;Update Page Metadata&#x22;,&#x22;scopes&#x22;:[&#x22;pages:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_page_content&#x22;,&#x22;label&#x22;:&#x22;Get Page Content&#x22;,&#x22;scopes&#x22;:[&#x22;pages:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_update_page_content&#x22;,&#x22;label&#x22;:&#x22;Update Page Content&#x22;,&#x22;scopes&#x22;:[&#x22;pages:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_sites&#x22;,&#x22;label&#x22;:&#x22;List Sites&#x22;,&#x22;scopes&#x22;:[&#x22;sites:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_site&#x22;,&#x22;label&#x22;:&#x22;Get Site&#x22;,&#x22;scopes&#x22;:[&#x22;sites:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_custom_domains&#x22;,&#x22;label&#x22;:&#x22;Get Custom Domains&#x22;,&#x22;scopes&#x22;:[&#x22;sites:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_publish_site&#x22;,&#x22;label&#x22;:&#x22;Publish Site&#x22;,&#x22;scopes&#x22;:[&#x22;sites:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_authorized_user&#x22;,&#x22;label&#x22;:&#x22;Get Authorized User&#x22;,&#x22;scopes&#x22;:[&#x22;authorized_user:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_introspect_token&#x22;,&#x22;label&#x22;:&#x22;Introspect Token&#x22;,&#x22;scopes&#x22;:[&#x22;authorized_user:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_list_webhooks&#x22;,&#x22;label&#x22;:&#x22;List Webhooks&#x22;,&#x22;scopes&#x22;:[&#x22;sites:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_get_webhook&#x22;,&#x22;label&#x22;:&#x22;Get Webhook&#x22;,&#x22;scopes&#x22;:[&#x22;sites:read&#x22;]},{&#x22;id&#x22;:&#x22;webflow_create_webhook&#x22;,&#x22;label&#x22;:&#x22;Create Webhook&#x22;,&#x22;scopes&#x22;:[&#x22;sites:write&#x22;]},{&#x22;id&#x22;:&#x22;webflow_delete_webhook&#x22;,&#x22;label&#x22;:&#x22;Delete Webhook&#x22;,&#x22;scopes&#x22;:[&#x22;sites:write&#x22;]}]" style={{ borderRadius: '8px', padding: '16px', marginBottom: '24px' }}>
    <div className="guides-scope-selector__title" style={{ fontSize: '16px', fontWeight: '600', marginBottom: '12px' }}>Select Actions to adjust the guide</div>
    <div className="guides-scope-selector__muted" style={{ fontSize: '13px', marginBottom: '12px' }}>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 style={{ display: 'flex', gap: '8px', marginBottom: '12px', flexWrap: 'wrap' }}>
      <input type="text" placeholder="Search actions..." className="guides-scope-selector__input" data-guide-action-search style={{ padding: '8px 12px', borderRadius: '6px', fontSize: '13px', flex: 1, minWidth: '160px' }} />

      <button type="button" className="guides-scope-selector__quick-btn" data-guide-select-all style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Select all</button>
      <button type="button" className="guides-scope-selector__quick-btn" data-guide-clear style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Clear</button>
    </div>

    <div className="guides-scope-selector__list" style={{ maxHeight: '240px', overflowY: 'auto', borderRadius: '6px', marginBottom: '12px' }}>
      <div className="guides-scope-selector__list-header" style={{ display: 'flex', alignItems: 'center', gap: '10px', padding: '8px 12px', fontSize: '12px', fontWeight: '600', position: 'sticky', top: 0, zIndex: 1 }}>
        <div style={{ width: '16px', flexShrink: 0 }} />

        <div style={{ flex: 1, textAlign: 'left' }}>Action</div>
        <div style={{ minWidth: '120px', marginLeft: 'auto', textAlign: 'right' }}>Scope(s)</div>
      </div>

      <div className="guides-scope-selector__muted" data-guide-loading style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>Loading actions...</div>
      <div className="guides-scope-selector__muted" data-guide-no-results hidden style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>No actions match your search.</div>
    </div>

    <div className="guides-scope-selector__url-section" style={{ marginTop: '12px', paddingTop: '12px' }}>
      <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Dynamic Guide URL</div>

      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>
        <input type="text" readOnly className="guides-scope-selector__input" data-guide-url style={{ flex: 1, minWidth: '200px', padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace' }} />

        <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-url style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap', marginLeft: 'auto' }}>Copy URL</button>
      </div>

      <div style={{ marginTop: '12px' }}>
        <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Scopes Selected</div>

        <div style={{ display: 'flex', alignItems: 'stretch', gap: '8px', flexWrap: 'wrap' }}>
          <pre className="guides-scope-selector__input" role="textbox" aria-readonly="true" tabIndex={0} data-guide-scopes-output style={{ flex: 1, minWidth: '200px', minHeight: '88px', maxHeight: '120px', overflowY: 'auto', margin: 0, padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace', whiteSpace: 'pre-wrap' }} />

          <div className="guides-scope-selector__muted" style={{ display: 'flex', flexDirection: 'column', gap: '8px', fontSize: '12px', fontWeight: '500', flexShrink: 0, alignItems: 'flex-start' }}>
            <div style={{ whiteSpace: 'nowrap' }}>Separator</div>

            <select className="guides-scope-selector__input" data-guide-scope-delimiter style={{ width: '100%', padding: '6px 10px', borderRadius: '6px', fontSize: '12px' }}>
              <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 style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap' }}>Copy scopes</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</Panel>

<section data-guide-section data-guide-scopes="">
  <h2>Creating a Webflow App</h2>

  <p>To connect Webflow with StackOne via OAuth, you need to create a Webflow App in your workspace to obtain a Client ID and Client Secret.</p>

  <Steps>
    <Step title="Open App Development settings">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to your <a href="https://webflow.com/dashboard" target="_blank" rel="noopener noreferrer">Webflow Dashboard</a> and select your <strong>Workspace</strong>.</p>

        <ul>
          <li>In the left sidebar, expand <strong>Apps & Integrations</strong></li>
          <li>Click <strong>Develop</strong></li>
          <li>Click <strong>+ Create an App</strong></li>
        </ul>
      </div>
    </Step>

    <Step title="Fill in App info">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the <strong>Create App</strong> dialog, fill in the <strong>App info</strong> tab.</p>

        <ul>
          <li><strong>App name</strong> - Enter a descriptive name (e.g., StackOne Integration)</li>
          <li><strong>App description</strong> - Brief summary of the app</li>
          <li><strong>App homepage URL</strong> - Your application's HTTPS URL</li>
          <li>Click <strong>Continue</strong> to proceed to the <strong>Building blocks</strong> tab</li>
          <li>Select <strong>Data Client</strong> as the app type</li>
        </ul>
      </div>
    </Step>

    <Step title="Configure Data Client and Redirect URI">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the <strong>Building blocks</strong> tab, enable <strong>Data client (REST API)</strong> and configure the redirect URI.</p>

        <ul>
          <li>Toggle <strong>Data client (REST API)</strong> to <strong>On</strong></li>
          <li>In the <strong>Redirect URI</strong> field, enter: `https://api.stackone.com/connect/oauth2/webflow/callback`</li>
        </ul>
      </div>
    </Step>

    <Step title="Select App Subscriptions">
      <div data-guide-step data-guide-scopes="assets:read,assets:write,authorized_user:read,cms:read,cms:write,comments:read,components:read,components:write,custom_code:read,custom_code:write,ecommerce:read,ecommerce:write,forms:read,forms:write,pages:read,pages:write,sites:read,sites:write,site_activity:read,site_config:read,site_config:write,workspace:write" data-guide-display-scopes-list="assets:read,assets:write,authorized_user:read,cms:read,cms:write,comments:read,components:read,components:write,custom_code:read,custom_code:write,ecommerce:read,ecommerce:write,forms:read,forms:write,pages:read,pages:write,sites:read,sites:write,site_activity:read,site_config:read,site_config:write,workspace:write">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="assets:read,assets:write,authorized_user:read,cms:read,cms:write,comments:read,components:read,components:write,custom_code:read,custom_code:write,ecommerce:read,ecommerce:write,forms:read,forms:write,pages:read,pages:write,sites:read,sites:write,site_activity:read,site_config:read,site_config:write,workspace:write" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Add Or Update Page Custom Code, Add Or Update Site Custom Code, Create 301 Redirect, Create Asset Folder, Create Collection, Create Collection Items, Create Field, Create Live Collection Items, Create Product, Create SKU, Create Site, Create Webhook, Delete 301 Redirect, Delete Asset, Delete Collection, Delete Collection Field, Delete Collection Item, Delete Collection Items, Delete Form Submission, Delete Page Custom Code, Delete Robots.txt Rules, Delete Site, Delete Site Custom Code, Delete Webhook, Delete Well-Known Files, Fulfill Order, Get 301 Redirects, Get Asset, Get Asset Folder, Get Authorized User, Get Collection, Get Collection Item, Get Comment Thread, Get Component Content, Get Component Properties, Get Custom Domains, Get Ecommerce Settings, Get Form Schema, Get Form Submission, Get Live Collection Item, Get Order, Get Page Content, Get Page Custom Code, Get Page Metadata, Get Product, Get Registered Scripts, Get Robots.txt, Get Site, Get Site Activity Logs, Get Site Custom Code, Get Site Plan, Get Webhook, Introspect Token, List Asset Folders, List Assets, List Collection Items, List Collections, List Comment Replies, List Comment Threads, List Components, List Custom Code Blocks, List Form Submissions, List Form Submissions By Site, List Forms, List Inventory, List Live Collection Items, List Orders, List Pages, List Products, List Sites, List Webhooks, Publish Collection Items, Publish Site, Refund Order, Register Hosted Script, Register Inline Script, Replace Robots.txt, Set Well-Known File, Unfulfill Order, Unpublish Live Items, Update 301 Redirect, Update Asset, Update Collection Field, Update Collection Item, Update Collection Items, Update Component Content, Update Component Properties, Update Form Submission, Update Inventory, Update Live Collection Items, Update Order, Update Page Content, Update Page Metadata, Update Product, Update Robots.txt, Update SKU, Update Site, Upload Asset</span>
        </div>

        <p>Under <strong>App Subscriptions</strong>, select the required scopes for your integration:</p>

        <ul>
          <li><strong>Important:</strong> The <strong>authorized\_user:read</strong> scope is required for the connection test</li>
          <li>Click <strong>Save app</strong></li>
        </ul>

        <div style={{ marginTop: '8px' }} data-guide-display-scopes>
          <div className="connector-guide-scopes-container connector-guide-scopes-container--scrollable">
            <ul className="not-prose" style={{ listStyleType: "'- '", paddingLeft: '1em', margin: 0 }}>
              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="assets:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy assets:read" title="Copy scope" data-copy="assets:read">
                  <span className="connector-guide-scope-copy__label">assets:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="assets:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy assets:write" title="Copy scope" data-copy="assets:write">
                  <span className="connector-guide-scope-copy__label">assets:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="authorized_user:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy authorized_user:read" title="Copy scope" data-copy="authorized_user:read">
                  <span className="connector-guide-scope-copy__label">authorized\_user:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="cms:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy cms:read" title="Copy scope" data-copy="cms:read">
                  <span className="connector-guide-scope-copy__label">cms:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="cms:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy cms:write" title="Copy scope" data-copy="cms:write">
                  <span className="connector-guide-scope-copy__label">cms:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="comments:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy comments:read" title="Copy scope" data-copy="comments:read">
                  <span className="connector-guide-scope-copy__label">comments:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="components:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy components:read" title="Copy scope" data-copy="components:read">
                  <span className="connector-guide-scope-copy__label">components:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="components:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy components:write" title="Copy scope" data-copy="components:write">
                  <span className="connector-guide-scope-copy__label">components:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="custom_code:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy custom_code:read" title="Copy scope" data-copy="custom_code:read">
                  <span className="connector-guide-scope-copy__label">custom\_code:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="custom_code:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy custom_code:write" title="Copy scope" data-copy="custom_code:write">
                  <span className="connector-guide-scope-copy__label">custom\_code:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="ecommerce:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy ecommerce:read" title="Copy scope" data-copy="ecommerce:read">
                  <span className="connector-guide-scope-copy__label">ecommerce:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="ecommerce:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy ecommerce:write" title="Copy scope" data-copy="ecommerce:write">
                  <span className="connector-guide-scope-copy__label">ecommerce:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="forms:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy forms:read" title="Copy scope" data-copy="forms:read">
                  <span className="connector-guide-scope-copy__label">forms:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="forms:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy forms:write" title="Copy scope" data-copy="forms:write">
                  <span className="connector-guide-scope-copy__label">forms:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="pages:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy pages:read" title="Copy scope" data-copy="pages:read">
                  <span className="connector-guide-scope-copy__label">pages:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="pages:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy pages:write" title="Copy scope" data-copy="pages:write">
                  <span className="connector-guide-scope-copy__label">pages:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="sites:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy sites:read" title="Copy scope" data-copy="sites:read">
                  <span className="connector-guide-scope-copy__label">sites:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="sites:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy sites:write" title="Copy scope" data-copy="sites:write">
                  <span className="connector-guide-scope-copy__label">sites:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="site_activity:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy site_activity:read" title="Copy scope" data-copy="site_activity:read">
                  <span className="connector-guide-scope-copy__label">site\_activity:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="site_config:read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy site_config:read" title="Copy scope" data-copy="site_config:read">
                  <span className="connector-guide-scope-copy__label">site\_config:read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="site_config:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy site_config:write" title="Copy scope" data-copy="site_config:write">
                  <span className="connector-guide-scope-copy__label">site\_config:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="workspace:write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy workspace:write" title="Copy scope" data-copy="workspace:write">
                  <span className="connector-guide-scope-copy__label">workspace:write</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>

    <Step title="Copy Client ID and Client Secret">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>After saving, the <strong>Client ID</strong> and <strong>Client Secret</strong> are displayed in the <strong>Data client (REST API)</strong> section.</p>

        <ul>
          <li>Click <strong>Copy</strong> next to the <strong>Client ID</strong> and store it securely for use later</li>
          <li>Click <strong>Copy</strong> next to the <strong>Client Secret</strong> and store it securely for use later</li>
          <li>To access these again later, click <strong>...</strong> next to your app on the <strong>App Development</strong> page, then <strong>Edit App</strong> > <strong>Building blocks</strong></li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

## Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for <strong>Webflow</strong>:

<Steps>
  <Step title="Navigate to Connector Profiles">
    Login to StackOne and navigate to [Connector Profiles](https://app.stackone.com/connector_profiles)
  </Step>

  <Step title="Create New Connector Profile">
    <ul>
      <li>Click <strong>+ Connector Profile</strong></li>
      <li>Search for and select <strong>Webflow</strong></li>
      <li>Select <strong>Type</strong> as <strong>OAuth 2.0</strong></li>

      <li>
        Fill out the fields using details retrieved from your provider:

        <ul style={{ marginLeft: '20px' }}>
          <li><strong>Client ID</strong></li>
          <li><strong>Client Secret</strong></li>
          <li><strong>Scopes</strong> (Optional)</li>
        </ul>
      </li>

      <li>(Optional) Select <strong>Actions</strong> to be enabled for this Connector Profile</li>
      <li>Click <strong>Create profile</strong></li>
    </ul>
  </Step>
</Steps>

Congratulations! The new Connector Profile will now show up in your project ready to be used. You can now continue to <a href="/guides/accounts-section#linking-accounts">Link Accounts</a> for <strong>Webflow</strong>.
