If you still have access to your project today, you are using the new role system already, read more about Roles in our User Guide.
The old role system has been deprecated the 1st of June 2023, has reached its end of life the 1st of December 2023, and support has been dropped entirely the 4th of December 2024. Please do note that the new Role permissions system requires that you use version 6.6+ of your agent (version 5.4+ for Rails) on all your environments. If you are running proper versions and urgently need to migrate to the new Roles system please contact our support.
The new role system allows you to control all the permissions of your roles from a single details page, which will look like this:
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Forest Documentation","colors":{"primary":"#3F5B1E","light":"#DDF327","dark":"#3F5B1E"},"logo":{"light":"https://mintcdn.com/forest/ZO8t9buUjTuKyt-F/images/Standard.svg?fit=max\u0026auto=format\u0026n=ZO8t9buUjTuKyt-F\u0026q=85\u0026s=d4e172941c964df57009cfa8be809b96","dark":"https://mintcdn.com/forest/ZO8t9buUjTuKyt-F/images/LIME.svg?fit=max\u0026auto=format\u0026n=ZO8t9buUjTuKyt-F\u0026q=85\u0026s=91e95470256b93527860cba6c206cbc4"},"favicon":{"light":"https://mintcdn.com/forest/ZO8t9buUjTuKyt-F/images/Standard.svg?fit=max\u0026auto=format\u0026n=ZO8t9buUjTuKyt-F\u0026q=85\u0026s=d4e172941c964df57009cfa8be809b96","dark":"https://mintcdn.com/forest/ZO8t9buUjTuKyt-F/images/LIME.svg?fit=max\u0026auto=format\u0026n=ZO8t9buUjTuKyt-F\u0026q=85\u0026s=91e95470256b93527860cba6c206cbc4"},"navbar":{"links":[{"href":"mailto:support@forestadmin.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.forestadmin.com"}},"footer":{"socials":{"twitter":"https://twitter.com/forest_admin","github":"https://github.com/ForestAdmin","linkedin":"https://linkedin.com/company/forestadmin"}},"contextual":{"options":["copy","view","claude","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"forest","hasAudioNarration":false,"actualSubdomain":"forest","customDomains":["docs.forest.app"],"gitSource":{"type":"github","owner":"forestadmin","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adb428a343e8b4158140116","collectionId":"5365b6a4-fce8-4b58-90bc-27e15a3e4242","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb428a343e8b4158140116"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adb428a343e8b4158140116","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"Legacy","count":289},{"language":"default","tag":"JavaScript Agents","count":141},{"language":"default","tag":"Ruby Agent","count":140},{"language":"default","tag":"Product","count":113},{"language":"default","tag":"Integrations","count":64},{"language":"default","tag":"Actions","count":48},{"language":"default","tag":"Smart Action Examples","count":34},{"language":"default","tag":"Process","count":32},{"language":"default","tag":"Upgrade","count":31},{"language":"default","tag":"Connect","count":30}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@forestadmin.com"}},"hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system","slug":"/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system","pageMetadata":{"title":"Migrate to the new role system","description":null,"href":"/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,img:`img`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Check,Warning}=_components;if(!Check)_missingMdxReference(`Check`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Check,{children:_jsxs(_components.p,{children:[`If you still have access to your project today, you are using the new role system already, read more about `,_jsx(_components.strong,{children:`Roles`}),` in our `,_jsx(_components.a,{href:`https://docs.forestadmin.com/user-guide/project-settings/teams-and-users/manage-roles`,children:`User Guide`}),`.`]})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`The old role system has been deprecated the 1st of June 2023, has reached its end of life the 1st of December 2023, and support has been dropped entirely the 4th of December 2024. Please do note that the new Role permissions system requires that you use `,_jsx(_components.strong,{children:`version 6.6+`}),` of your agent (`,_jsx(_components.strong,{children:`version 5.4+`}),` for Rails) on `,_jsx(_components.strong,{children:`all`}),` your environments. If you are running proper versions and urgently need to migrate to the new Roles system please contact our `,_jsx(_components.a,{href:`mailto:support@forestadmin.com`,children:`support`}),`.`]})}),`\n`,_jsx(_components.p,{children:`The new role system allows you to control all the permissions of your roles from a single details page, which will look like this:`}),`\n`,_jsx(_components.p,{children:_jsx(_components.img,{src:`https://gblobscdn.gitbook.com/assets%2F-LR7SWfEwsNtj_ZiSkSA%2F-MNNSk_u0UnHADDKehQM%2F-MNNThkOzU_zJCmNa0X0%2Fimage.png?alt=media\u0026token=85dfb86d-5bb4-4b55-b866-6429e7111fad`,alt:``})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Migrate to the new role system","description":null,"href":"/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"subdomain":"forest","siteName":"Forest Documentation","title":"Migrate to the new role system - Forest Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-15T15:39:16.643Z","originalFileLocation":"legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Forest Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Migrate to the new role system - Forest Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Forest Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.forest.app/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://forest.mintlify.app/_mintlify/api/og/v2?division=Upgrade\u0026amp;title=Migrate+to+the+new+role+system\u0026amp;theme=7cc620c0b37a08e7a7deb699\u0026amp;signature=9cfdea77af34179f273438de8b0caf33e94494baf8d3a029fb00e388b1563a0b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Migrate to the new role system - Forest Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://forest.mintlify.app/_mintlify/api/og/v2?division=Upgrade\u0026amp;title=Migrate+to+the+new+role+system\u0026amp;theme=7cc620c0b37a08e7a7deb699\u0026amp;signature=9cfdea77af34179f273438de8b0caf33e94494baf8d3a029fb00e388b1563a0b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/forest/9euPPsOQWnB89Kt3/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Forest Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3F5B1E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.forest.app/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.forest.app/#organization\",\"name\":\"Forest Documentation\",\"url\":\"https://docs.forest.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/forest/ZO8t9buUjTuKyt-F/images/Standard.svg?fit=max\u0026auto=format\u0026n=ZO8t9buUjTuKyt-F\u0026q=85\u0026s=d4e172941c964df57009cfa8be809b96\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.forest.app#website\",\"name\":\"Forest Documentation\",\"url\":\"https://docs.forest.app\",\"publisher\":{\"@id\":\"https://docs.forest.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system#webpage\",\"url\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system\",\"name\":\"Migrate to the new role system\",\"dateModified\":\"2026-10-15T15:39:16.643Z\",\"isPartOf\":{\"@id\":\"https://docs.forest.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"JavaScript Agents\",\"item\":\"https://docs.forest.app/legacy/javascript-agents/reference-guide/models/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Upgrade\",\"item\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/maintain/README\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Migrate to the new role system\",\"item\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system#article\",\"headline\":\"Migrate to the new role system\",\"name\":\"Migrate to the new role system\",\"url\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system\",\"mainEntityOfPage\":{\"@id\":\"https://docs.forest.app/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system#webpage\"},\"dateModified\":\"2026-10-15T15:39:16.643Z\",\"publisher\":{\"@id\":\"https://docs.forest.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.forest.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Forest Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Forest Documentation","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":""}]},{"tab":"Get Started","pages":[{"title":"Get Started","href":"/get-started/intro-to-forest-admin"}]},{"tab":"Product","pages":[{"title":"Product","href":"/product/overview"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/reference/overview"}]},{"tab":"Legacy","groups":[{"group":"Overview","pages":[{"title":"Legacy agents","href":"/legacy/agents-overview"},{"group":"Migration guide","pages":[{"title":"Migrating from Agent v1 to v2","href":"/guides/migration/from-v1/overview"},{"title":"Migrating datasources","href":"/guides/migration/from-v1/steps/datasources"},{"title":"Migrating Smart Actions","href":"/guides/migration/from-v1/steps/smart-actions"},{"title":"Migrating Smart Fields","href":"/guides/migration/from-v1/steps/smart-fields"},{"title":"Migrating Smart Relationships","href":"/guides/migration/from-v1/steps/smart-relationships"},{"title":"Migrating Smart Segments","href":"/guides/migration/from-v1/steps/smart-segments"}]},{"title":"Releases Support","href":"/legacy/javascript-agents/how-tos/releases-support/overview"}]},{"group":"JavaScript Agents","pages":[{"group":"Models","pages":[{"title":"Models","href":"/legacy/javascript-agents/reference-guide/models/overview"},{"title":"Enrich your models","href":"/legacy/javascript-agents/reference-guide/models/enrich-your-models"},{"group":"Relationships","pages":[{"title":"Relationships","href":"/legacy/javascript-agents/reference-guide/models/relationships/overview"},{"group":"Create a Smart relationship","pages":[{"title":"Create a Smart relationship","href":"/legacy/javascript-agents/reference-guide/models/relationships/create-a-smart-relationship/overview"},{"title":"GetIdsFromRequest","href":"/legacy/javascript-agents/reference-guide/models/relationships/create-a-smart-relationship/getidsfromrequest"}]},{"group":"Smart Relationship Examples","pages":[{"title":"Smart Relationship Examples","href":"/legacy/javascript-agents/reference-guide/models/relationships/smart-relationship-examples/README"},{"title":"Smart hasMany relationship in mongoDB","href":"/legacy/javascript-agents/reference-guide/models/relationships/smart-relationship-examples/smart-hasmany-relationship-in-mongodb"}]}]}]},{"group":"Actions","pages":[{"title":"Actions","href":"/legacy/javascript-agents/reference-guide/actions/overview"},{"group":"Create and manage Smart Actions","pages":[{"title":"Create and manage Smart Actions","href":"/legacy/javascript-agents/reference-guide/actions/create-and-manage-smart-actions/overview"},{"title":"Use a Smart Action Form","href":"/legacy/javascript-agents/reference-guide/actions/create-and-manage-smart-actions/use-a-smart-action-form"},{"title":"Smart Action Intents","href":"/legacy/javascript-agents/reference-guide/actions/create-and-manage-smart-actions/use-action-intent"}]},{"group":"Smart Action Examples","pages":[{"title":"Smart Action Examples","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/README"},{"title":"Calculate the distance between two string addresses","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/calculate-the-distance-between-two-string-addresses"},{"title":"Impersonate a user","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/impersonate-a-user"},{"title":"Create a record with a multiselect through a many-to-many relationship","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/create-a-record-with-a-multiselect-through-a-many-to-many-relationship"},{"title":"Handle enums with alias labels in a smart action","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/handle-enums-with-alias-labels-in-a-smart-action"},{"title":"Dropdown with list of values in smart action form","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/dropdown-with-list-of-values-in-smart-action-form"},{"title":"Custom dynamic dropdown in a form using smart collections","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/custom-dynamic-dropdown-in-a-form-using-smart-collections"},{"title":"Refresh hasMany relationship in smart action","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/refresh-hasmany-relationship-in-smart-action"},{"title":"Smart segment to restrict access to an action on a record details view","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/smart-segment-to-restrict-access-to-an-action-on-a-record-details-view"},{"title":"BelongsToMany edition through smart collection","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/belongstomany-edition-through-smart-collection"},{"title":"Upload files to amazon s3","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/upload-files-to-amazon-s3"},{"title":"Upload several files with the File Picker","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/upload-several-files-with-the-file-picker"},{"title":"Retrieve smart field info in a smart action","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/retrieve-smart-field-info-in-a-smart-action"},{"title":"Smart action to create several records from the input of a single smart action form","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/smart-action-to-create-several-records-from-the-input-of-a-single-smart-action-form"},{"title":"Add many existing records at the same time (hasMany-belongsTo relationship)","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/add-many-existing-records-at-the-same-time-hasmany-belongsto-relationship"},{"title":"Call a n8n webhook","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/call-a-webhook-with-record-ids"},{"title":"Anonymize users in bulk","href":"/legacy/javascript-agents/reference-guide/actions/smart-action-examples/update-users-in-bulk"}]}]},{"group":"Smart Fields","pages":[{"title":"Smart Fields","href":"/legacy/javascript-agents/reference-guide/smart-fields/overview"},{"group":"Smart Field Examples","pages":[{"title":"Smart Field Examples","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/README"},{"title":"Add an HTML credit card as a smart field in a summary view","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/add-an-html-credit-card-as-a-smart-field-in-a-summary-view"},{"title":"Display field with complex info in html format (rich text editor)","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/display-field-with-complex-info-in-html-format-rich-text-editor"},{"title":"Generate signed urls to display S3 files in a smart field","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/generate-signed-urls-to-display-s3-files-in-a-smart-field"},{"title":"Print a status object in a single line field","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/print-a-status-object-in-a-single-line-field"},{"title":"Sort by smart field","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/sort-by-smart-field"},{"title":"Sort by smart field that includes value from a belongsTo relationship","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/sort-by-smart-field-that-includes-value-from-a-belongsto-relationship"},{"title":"Add fields destined to the create form","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/add-fields-destined-to-the-create-form"},{"title":"Add validation to a smart field edition","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/add-validation-to-a-smart-field-edition"},{"title":"Display smart field as progress bar using rich text editor","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/display-smart-field-as-progress-bar-using-rich-text-editor"},{"title":"Update point geometry field using a smart field and algolia api","href":"/legacy/javascript-agents/reference-guide/smart-fields/smart-field-examples/update-point-geometry-field-using-a-smart-field-and-algolia-api"}]}]},{"group":"Smart Collections","pages":[{"title":"Smart Collections","href":"/legacy/javascript-agents/reference-guide/smart-collections/overview"},{"group":"Examples","pages":[{"title":"Examples","href":"/legacy/javascript-agents/reference-guide/smart-collections/examples/README"},{"title":"Create a Smart Collection with Amazon S3","href":"/legacy/javascript-agents/reference-guide/smart-collections/examples/amazon-s3-integration-example"},{"title":"Smart relationship between model and stripe cards","href":"/legacy/javascript-agents/reference-guide/smart-collections/examples/smart-relationship-between-model-and-stripe-cards"},{"title":"Create records from a Smart collection","href":"/legacy/javascript-agents/reference-guide/smart-collections/examples/create-records-from-a-smart-collection"},{"title":"Searchable smart collection with records fetched from hubspot API","href":"/legacy/javascript-agents/reference-guide/smart-collections/examples/searchable-smart-collection-with-records-fetched-from-hubspot-api"}]},{"title":"Serializing your records","href":"/legacy/javascript-agents/reference-guide/smart-collections/serializing-your-records"}]},{"group":"Routes","pages":[{"title":"Routes","href":"/legacy/javascript-agents/reference-guide/routes/overview"},{"title":"Default routes","href":"/legacy/javascript-agents/reference-guide/routes/default-routes"},{"title":"Extend a route","href":"/legacy/javascript-agents/reference-guide/routes/extend-a-route"},{"title":"Override a route","href":"/legacy/javascript-agents/reference-guide/routes/override-a-route"}]},{"group":"Integrations","pages":[{"title":"Integrations","href":"/legacy/javascript-agents/reference-guide/integrations/README"},{"title":"Stripe","href":"/legacy/javascript-agents/reference-guide/integrations/stripe"},{"title":"Mixpanel","href":"/legacy/javascript-agents/reference-guide/integrations/mixpanel"},{"title":"Intercom","href":"/legacy/javascript-agents/reference-guide/integrations/intercom"},{"group":"Elasticsearch","pages":[{"title":"Readme","href":"/legacy/javascript-agents/reference-guide/integrations/elasticsearch/README"},{"title":"Interact with your Elasticsearch data","href":"/legacy/javascript-agents/reference-guide/integrations/elasticsearch/interact-with-your-elasticsearch-data"},{"title":"Elasticsearch service/utils","href":"/legacy/javascript-agents/reference-guide/integrations/elasticsearch/elasticsearch-service-utils"},{"title":"Another example","href":"/legacy/javascript-agents/reference-guide/integrations/elasticsearch/another-example"}]},{"group":"Zendesk","pages":[{"title":"Zendesk","href":"/legacy/javascript-agents/reference-guide/integrations/zendesk/overview"},{"title":"Authentication, Filtering \u0026 Sorting","href":"/legacy/javascript-agents/reference-guide/integrations/zendesk/authentication-filtering-and-sorting"},{"title":"Display Zendesk tickets","href":"/legacy/javascript-agents/reference-guide/integrations/zendesk/display-zendesk-tickets"},{"title":"Display Zendesk users","href":"/legacy/javascript-agents/reference-guide/integrations/zendesk/display-zendesk-users"},{"title":"View tickets related to a user","href":"/legacy/javascript-agents/reference-guide/integrations/zendesk/view-tickets-related-to-a-user"},{"title":"Bonus: Direct link to Zendesk + change priority of a ticket","href":"/legacy/javascript-agents/reference-guide/integrations/zendesk/bonus-direct-link-to-zendesk--and--change-priority-of-a-ticket"}]},{"group":"Dwolla","pages":[{"title":"Dwolla","href":"/legacy/javascript-agents/reference-guide/integrations/dwolla/README"},{"title":"Display Dwolla customers","href":"/legacy/javascript-agents/reference-guide/integrations/dwolla/display-dwolla-customers"},{"title":"Display Dwolla funding sources","href":"/legacy/javascript-agents/reference-guide/integrations/dwolla/display-dwolla-funding-sources"},{"title":"Display Dwolla transfers","href":"/legacy/javascript-agents/reference-guide/integrations/dwolla/display-dwolla-transfers"},{"title":"Link users and Dwolla customers","href":"/legacy/javascript-agents/reference-guide/integrations/dwolla/link-users-and-dwolla-customers"},{"title":"Dwolla Service","href":"/legacy/javascript-agents/reference-guide/integrations/dwolla/dwolla-service"}]},{"title":"Razorpay","href":"/legacy/javascript-agents/reference-guide/integrations/razorpay"},{"group":"Hubspot","pages":[{"title":"Readme","href":"/legacy/javascript-agents/reference-guide/integrations/hubspot/README"},{"title":"Create a Hubspot company","href":"/legacy/javascript-agents/reference-guide/integrations/hubspot/create-a-hubspot-company"},{"title":"Display Hubspot companies","href":"/legacy/javascript-agents/reference-guide/integrations/hubspot/display-hubspot-companies"}]},{"group":"Twilio","pages":[{"title":"Readme","href":"/legacy/javascript-agents/reference-guide/integrations/twilio/README"},{"title":"Send an SMS with Twilio and Zapier","href":"/legacy/javascript-agents/reference-guide/integrations/twilio/send-an-sms-with-twilio-and-zapier"}]},{"title":"Azure Table Storage","href":"/legacy/javascript-agents/reference-guide/integrations/azure-table-storage"},{"group":"Slack","pages":[{"title":"Readme","href":"/legacy/javascript-agents/reference-guide/integrations/slack/README"},{"title":"Send Smart Action notifications to Slack","href":"/legacy/javascript-agents/reference-guide/integrations/slack/send-smart-action-notifications-to-slack"}]},{"group":"Algolia","pages":[{"title":"Algolia","href":"/legacy/javascript-agents/reference-guide/integrations/algolia/README"},{"title":"Geocode an address with Algolia","href":"/legacy/javascript-agents/reference-guide/integrations/algolia/geocode-an-address-with-algolia"}]}]},{"group":"Smart Views","pages":[{"title":"Smart Views","href":"/legacy/javascript-agents/reference-guide/smart-views/overview"},{"title":"Create a Map view","href":"/legacy/javascript-agents/reference-guide/smart-views/create-a-map-view"},{"title":"Create a Calendar view","href":"/legacy/javascript-agents/reference-guide/smart-views/create-a-calendar-view"},{"title":"Create a Shipping view","href":"/legacy/javascript-agents/reference-guide/smart-views/create-a-shipping-view"},{"title":"Create a Gallery view","href":"/legacy/javascript-agents/reference-guide/smart-views/create-a-gallery-view"},{"title":"Create a custom tinder-like validation view","href":"/legacy/javascript-agents/reference-guide/smart-views/create-a-custom-tinder-like-validation-view"},{"title":"Create a dynamic calendar view for an event-booking use case","href":"/legacy/javascript-agents/reference-guide/smart-views/create-a-dynamic-calendar-view-for-an-event-booking-use-case"},{"title":"Create a custom moderation view","href":"/legacy/javascript-agents/reference-guide/smart-views/create-a-custom-moderation-view"}]},{"title":"Smart Segments","href":"/legacy/javascript-agents/reference-guide/smart-segments"},{"group":"Scopes","pages":[{"title":"Scopes","href":"/legacy/javascript-agents/reference-guide/scopes/overview"},{"title":"Create a scope more than one level away based on a Smart field","href":"/legacy/javascript-agents/reference-guide/scopes/create-a-scope-more-than-one-level-away-based-on-a-smart-field"},{"title":"Scope on a smart field extracting a json's column attribute","href":"/legacy/javascript-agents/reference-guide/scopes/scope-on-a-smart-field-extracting-a-jsons-column-attribute"}]},{"title":"Performance","href":"/legacy/javascript-agents/reference-guide/performance"},{"group":"Charts","pages":[{"title":"Charts","href":"/legacy/javascript-agents/reference-guide/charts/overview"},{"title":"Create an API-based Chart","href":"/legacy/javascript-agents/reference-guide/charts/create-an-api-based-chart"},{"title":"Create a Smart Chart","href":"/legacy/javascript-agents/reference-guide/charts/create-a-smart-chart"},{"title":"Create Charts with AWS Redshift","href":"/legacy/javascript-agents/reference-guide/charts/create-charts-with-aws-redshift"}]},{"group":"Setup","pages":[{"title":"Setup","href":"/legacy/javascript-agents/how-tos/setup/README"},{"title":"Install","href":"/legacy/javascript-agents/how-tos/setup/install"},{"title":"Connecting Forest to Your Database (Forest Cloud)","href":"/legacy/javascript-agents/how-tos/setup/connecting-forest-admin-to-your-database-forest-cloud"},{"title":"Forest IP white-listing (Forest Cloud)","href":"/legacy/javascript-agents/how-tos/setup/forest-admin-ip-white-listing-forest-cloud"},{"title":"Why HTTPS is necessary even locally","href":"/legacy/javascript-agents/how-tos/setup/why-https-is-necessary-even-locally"},{"title":"Troubleshooting","href":"/legacy/javascript-agents/how-tos/setup/troubleshooting"},{"title":"Prevent permission errors at installation","href":"/legacy/javascript-agents/how-tos/setup/prevent-permission-errors-at-installation"},{"title":"Deploy Your Admin Backend With Aws","href":"/legacy/javascript-agents/how-tos/setup/deploy-your-admin-backend-with-aws"},{"title":"Deploy your admin backend on Heroku","href":"/legacy/javascript-agents/how-tos/setup/deploy-to-production-on-heroku"},{"title":"Deploy your admin backend to Ubuntu server","href":"/legacy/javascript-agents/how-tos/setup/deploy-to-production-to-ubuntu-server"},{"title":"Deploy your admin backend to Google Cloud Platform","href":"/legacy/javascript-agents/how-tos/setup/deploy-your-admin-backend-with-google-cloud-platform"},{"title":"Install Forest on a remote machine","href":"/legacy/javascript-agents/how-tos/setup/install-forest-admin-on-a-remote-machine"},{"title":"Use Forest with a read-only database","href":"/legacy/javascript-agents/how-tos/setup/use-forest-admin-with-a-read-only-database"},{"title":"Configuring CORS headers","href":"/legacy/javascript-agents/how-tos/setup/configuring-cors-headers"},{"title":"Running Forest on multiple servers","href":"/legacy/javascript-agents/how-tos/setup/running-forest-admin-on-multiple-servers"}]},{"group":"Upgrade","pages":[{"title":"Upgrade","href":"/legacy/javascript-agents/how-tos/maintain/README"},{"group":"Upgrade notes","pages":[{"title":"Upgrade notes (SQL, Mongodb)","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/README"},{"title":"Upgrade to v9","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/upgrade-to-v9"},{"title":"Upgrade to v8","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/upgrade-to-v8"},{"title":"Upgrade to v7","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/upgrade-to-v7"},{"title":"Upgrade to v6","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/upgrade-to-v6"},{"title":"Upgrade to v5","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/upgrade-to-v5"},{"title":"Upgrade to v4","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/upgrade-to-v4"},{"title":"Upgrade to v3","href":"/legacy/javascript-agents/how-tos/maintain/upgrade-notes-sql-mongodb/upgrade-to-v3"}]},{"title":"Update your models' definition","href":"/legacy/javascript-agents/how-tos/maintain/update-your-models-definition"},{"title":"Monitor your Forest's status","href":"/legacy/javascript-agents/how-tos/maintain/monitor-your-forests-status"},{"title":"Manage your Forest environments programmatically","href":"/legacy/javascript-agents/how-tos/maintain/manage-your-forest-admin-programmatically"},{"title":"Changing your domain name","description":null,"href":"/legacy/javascript-agents/how-tos/maintain/changing-your-domain-name"},{"title":"Migrate to the new role system","href":"/legacy/javascript-agents/how-tos/maintain/migrate-to-the-new-role-system"},{"title":"Push your new version to production","description":null,"href":"/legacy/javascript-agents/how-tos/maintain/push-your-new-version-to-production"}]},{"group":"Databases","pages":[{"title":"Readme","href":"/legacy/javascript-agents/how-tos/databases/README"},{"title":"Use a demo SQL database","href":"/legacy/javascript-agents/how-tos/databases/use-a-demo-database"},{"title":"Populate a postgreSQL database on Heroku","href":"/legacy/javascript-agents/how-tos/databases/populate-a-postgresql-database-on-heroku"},{"title":"Connect to a read replica database","href":"/legacy/javascript-agents/how-tos/databases/connect-to-a-read-replica-database"},{"title":"Plug multiple schemas","href":"/legacy/javascript-agents/how-tos/databases/plug-multiple-schemas"},{"title":"Add new databases","href":"/legacy/javascript-agents/how-tos/databases/add-new-databases"},{"title":"Manage SQL views","href":"/legacy/javascript-agents/how-tos/databases/manage-sql-views"}]},{"group":"Settings","pages":[{"title":"Settings","href":"/legacy/javascript-agents/how-tos/settings/README"},{"title":"Customize your /forest folder","href":"/legacy/javascript-agents/how-tos/settings/customize-your-forest-folder"},{"title":"Disable automatic Forest schema update","href":"/legacy/javascript-agents/how-tos/settings/disable-automatic-forest-admin-schema-update"},{"title":"Include/exclude models","href":"/legacy/javascript-agents/how-tos/settings/include-exclude-models"},{"title":"Display extensive logs","href":"/legacy/javascript-agents/how-tos/settings/display-extensive-logs"}]}]},{"group":"Ruby Agent","pages":[{"group":"Models","pages":[{"title":"Models","href":"/legacy/ruby-agent/reference-guide/models/overview"},{"title":"Enrich your models","href":"/legacy/ruby-agent/reference-guide/models/enrich-your-models"},{"group":"Relationships","pages":[{"title":"Relationships","href":"/legacy/ruby-agent/reference-guide/models/relationships/overview"},{"group":"Create a Smart relationship","pages":[{"title":"Create a Smart relationship","href":"/legacy/ruby-agent/reference-guide/models/relationships/create-a-smart-relationship/overview"},{"title":"GetIdsFromRequest","href":"/legacy/ruby-agent/reference-guide/models/relationships/create-a-smart-relationship/getidsfromrequest"}]},{"group":"Smart Relationship Examples","pages":[{"title":"Smart Relationship Examples","href":"/legacy/ruby-agent/reference-guide/models/relationships/smart-relationship-examples/README"}]}]}]},{"group":"Actions","pages":[{"title":"Actions","href":"/legacy/ruby-agent/reference-guide/actions/overview"},{"group":"Create and manage Smart Actions","pages":[{"title":"Create and manage Smart Actions","href":"/legacy/ruby-agent/reference-guide/actions/create-and-manage-smart-actions/overview"},{"title":"Use a Smart Action Form","href":"/legacy/ruby-agent/reference-guide/actions/create-and-manage-smart-actions/use-a-smart-action-form"},{"title":"Smart Action Intents","href":"/legacy/ruby-agent/reference-guide/actions/create-and-manage-smart-actions/use-action-intent"}]},{"group":"Smart Action Examples","pages":[{"title":"Smart Action Examples","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/README"},{"title":"Calculate the distance between two string addresses","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/calculate-the-distance-between-two-string-addresses"},{"title":"Impersonate a user","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/impersonate-a-user"},{"title":"Create a record with a multiselect through a many-to-many relationship","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/create-a-record-with-a-multiselect-through-a-many-to-many-relationship"},{"title":"Handle enums with alias labels in a smart action","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/handle-enums-with-alias-labels-in-a-smart-action"},{"title":"Dropdown with list of values in smart action form","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/dropdown-with-list-of-values-in-smart-action-form"},{"title":"Custom dynamic dropdown in a form using smart collections","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/custom-dynamic-dropdown-in-a-form-using-smart-collections"},{"title":"Refresh hasMany relationship in smart action","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/refresh-hasmany-relationship-in-smart-action"},{"title":"Smart segment to restrict access to an action on a record details view","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/smart-segment-to-restrict-access-to-an-action-on-a-record-details-view"},{"title":"BelongsToMany edition through smart collection","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/belongstomany-edition-through-smart-collection"},{"title":"Upload files to amazon s3","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/upload-files-to-amazon-s3"},{"title":"Upload several files with the File Picker","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/upload-several-files-with-the-file-picker"},{"title":"Retrieve smart field info in a smart action","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/retrieve-smart-field-info-in-a-smart-action"},{"title":"Smart action to create several records from the input of a single smart action form","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/smart-action-to-create-several-records-from-the-input-of-a-single-smart-action-form"},{"title":"Add many existing records at the same time (hasMany-belongsTo relationship)","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/add-many-existing-records-at-the-same-time-hasmany-belongsto-relationship"},{"title":"Call a n8n webhook","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/call-a-webhook-with-record-ids"},{"title":"Anonymize users in bulk","href":"/legacy/ruby-agent/reference-guide/actions/smart-action-examples/update-users-in-bulk"}]}]},{"group":"Smart Fields","pages":[{"title":"Smart Fields","href":"/legacy/ruby-agent/reference-guide/smart-fields/overview"},{"group":"Smart Field Examples","pages":[{"title":"Smart Field Examples","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/README"},{"title":"Add an HTML credit card as a smart field in a summary view","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/add-an-html-credit-card-as-a-smart-field-in-a-summary-view"},{"title":"Display field with complex info in html format (rich text editor)","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/display-field-with-complex-info-in-html-format-rich-text-editor"},{"title":"Generate signed urls to display S3 files in a smart field","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/generate-signed-urls-to-display-s3-files-in-a-smart-field"},{"title":"Print a status object in a single line field","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/print-a-status-object-in-a-single-line-field"},{"title":"Sort by smart field","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/sort-by-smart-field"},{"title":"Sort by smart field that includes value from a belongsTo relationship","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/sort-by-smart-field-that-includes-value-from-a-belongsto-relationship"},{"title":"Add fields destined to the create form","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/add-fields-destined-to-the-create-form"},{"title":"Add validation to a smart field edition","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/add-validation-to-a-smart-field-edition"},{"title":"Display smart field as progress bar using rich text editor","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/display-smart-field-as-progress-bar-using-rich-text-editor"},{"title":"Update point geometry field using a smart field and algolia api","href":"/legacy/ruby-agent/reference-guide/smart-fields/smart-field-examples/update-point-geometry-field-using-a-smart-field-and-algolia-api"}]}]},{"group":"Smart Collections","pages":[{"title":"Smart Collections","href":"/legacy/ruby-agent/reference-guide/smart-collections/overview"},{"group":"Examples","pages":[{"title":"Examples","href":"/legacy/ruby-agent/reference-guide/smart-collections/examples/README"},{"title":"Create a Smart Collection with Amazon S3","href":"/legacy/ruby-agent/reference-guide/smart-collections/examples/amazon-s3-integration-example"},{"title":"Smart relationship between model and stripe cards","href":"/legacy/ruby-agent/reference-guide/smart-collections/examples/smart-relationship-between-model-and-stripe-cards"},{"title":"Create records from a Smart collection","href":"/legacy/ruby-agent/reference-guide/smart-collections/examples/create-records-from-a-smart-collection"},{"title":"Searchable smart collection with records fetched from hubspot API","href":"/legacy/ruby-agent/reference-guide/smart-collections/examples/searchable-smart-collection-with-records-fetched-from-hubspot-api"}]},{"title":"Serializing your records","href":"/legacy/ruby-agent/reference-guide/smart-collections/serializing-your-records"}]},{"group":"Routes","pages":[{"title":"Routes","href":"/legacy/ruby-agent/reference-guide/routes/overview"},{"title":"Default routes","href":"/legacy/ruby-agent/reference-guide/routes/default-routes"},{"title":"Extend a route","href":"/legacy/ruby-agent/reference-guide/routes/extend-a-route"},{"title":"Override a route","href":"/legacy/ruby-agent/reference-guide/routes/override-a-route"}]},{"group":"Integrations","pages":[{"title":"Integrations","href":"/legacy/ruby-agent/reference-guide/integrations/README"},{"title":"Stripe","href":"/legacy/ruby-agent/reference-guide/integrations/stripe"},{"title":"Mixpanel","href":"/legacy/ruby-agent/reference-guide/integrations/mixpanel"},{"title":"Intercom","href":"/legacy/ruby-agent/reference-guide/integrations/intercom"},{"group":"Elasticsearch","pages":[{"title":"Readme","href":"/legacy/ruby-agent/reference-guide/integrations/elasticsearch/README"},{"title":"Interact with your Elasticsearch data","href":"/legacy/ruby-agent/reference-guide/integrations/elasticsearch/interact-with-your-elasticsearch-data"},{"title":"Elasticsearch service/utils","href":"/legacy/ruby-agent/reference-guide/integrations/elasticsearch/elasticsearch-service-utils"},{"title":"Another example","href":"/legacy/ruby-agent/reference-guide/integrations/elasticsearch/another-example"}]},{"group":"Zendesk","pages":[{"title":"Zendesk","href":"/legacy/ruby-agent/reference-guide/integrations/zendesk/overview"},{"title":"Authentication, Filtering \u0026 Sorting","href":"/legacy/ruby-agent/reference-guide/integrations/zendesk/authentication-filtering-and-sorting"},{"title":"Display Zendesk tickets","href":"/legacy/ruby-agent/reference-guide/integrations/zendesk/display-zendesk-tickets"},{"title":"Display Zendesk users","href":"/legacy/ruby-agent/reference-guide/integrations/zendesk/display-zendesk-users"},{"title":"View tickets related to a user","href":"/legacy/ruby-agent/reference-guide/integrations/zendesk/view-tickets-related-to-a-user"},{"title":"Bonus: Direct link to Zendesk + change priority of a ticket","href":"/legacy/ruby-agent/reference-guide/integrations/zendesk/bonus-direct-link-to-zendesk--and--change-priority-of-a-ticket"}]},{"group":"Dwolla","pages":[{"title":"Dwolla","href":"/legacy/ruby-agent/reference-guide/integrations/dwolla/README"},{"title":"Display Dwolla customers","href":"/legacy/ruby-agent/reference-guide/integrations/dwolla/display-dwolla-customers"},{"title":"Display Dwolla funding sources","href":"/legacy/ruby-agent/reference-guide/integrations/dwolla/display-dwolla-funding-sources"},{"title":"Display Dwolla transfers","href":"/legacy/ruby-agent/reference-guide/integrations/dwolla/display-dwolla-transfers"},{"title":"Link users and Dwolla customers","href":"/legacy/ruby-agent/reference-guide/integrations/dwolla/link-users-and-dwolla-customers"},{"title":"Dwolla Service","href":"/legacy/ruby-agent/reference-guide/integrations/dwolla/dwolla-service"}]},{"title":"Razorpay","href":"/legacy/ruby-agent/reference-guide/integrations/razorpay"},{"group":"Hubspot","pages":[{"title":"Readme","href":"/legacy/ruby-agent/reference-guide/integrations/hubspot/README"},{"title":"Create a Hubspot company","href":"/legacy/ruby-agent/reference-guide/integrations/hubspot/create-a-hubspot-company"},{"title":"Display Hubspot companies","href":"/legacy/ruby-agent/reference-guide/integrations/hubspot/display-hubspot-companies"}]},{"group":"Twilio","pages":[{"title":"Readme","href":"/legacy/ruby-agent/reference-guide/integrations/twilio/README"},{"title":"Send an SMS with Twilio and Zapier","href":"/legacy/ruby-agent/reference-guide/integrations/twilio/send-an-sms-with-twilio-and-zapier"}]},{"title":"Azure Table Storage","href":"/legacy/ruby-agent/reference-guide/integrations/azure-table-storage"},{"group":"Slack","pages":[{"title":"Readme","href":"/legacy/ruby-agent/reference-guide/integrations/slack/README"},{"title":"Send Smart Action notifications to Slack","href":"/legacy/ruby-agent/reference-guide/integrations/slack/send-smart-action-notifications-to-slack"}]},{"group":"Algolia","pages":[{"title":"Algolia","href":"/legacy/ruby-agent/reference-guide/integrations/algolia/README"},{"title":"Geocode an address with Algolia","href":"/legacy/ruby-agent/reference-guide/integrations/algolia/geocode-an-address-with-algolia"}]}]},{"group":"Smart Views","pages":[{"title":"Smart Views","href":"/legacy/ruby-agent/reference-guide/smart-views/overview"},{"title":"Create a Map view","href":"/legacy/ruby-agent/reference-guide/smart-views/create-a-map-view"},{"title":"Create a Calendar view","href":"/legacy/ruby-agent/reference-guide/smart-views/create-a-calendar-view"},{"title":"Create a Shipping view","href":"/legacy/ruby-agent/reference-guide/smart-views/create-a-shipping-view"},{"title":"Create a Gallery view","href":"/legacy/ruby-agent/reference-guide/smart-views/create-a-gallery-view"},{"title":"Create a custom tinder-like validation view","href":"/legacy/ruby-agent/reference-guide/smart-views/create-a-custom-tinder-like-validation-view"},{"title":"Create a dynamic calendar view for an event-booking use case","href":"/legacy/ruby-agent/reference-guide/smart-views/create-a-dynamic-calendar-view-for-an-event-booking-use-case"},{"title":"Create a custom moderation view","href":"/legacy/ruby-agent/reference-guide/smart-views/create-a-custom-moderation-view"}]},{"title":"Smart Segments","href":"/legacy/ruby-agent/reference-guide/smart-segments"},{"group":"Scopes","pages":[{"title":"Scopes","href":"/legacy/ruby-agent/reference-guide/scopes/overview"},{"title":"Create a scope more than one level away based on a Smart field","href":"/legacy/ruby-agent/reference-guide/scopes/create-a-scope-more-than-one-level-away-based-on-a-smart-field"},{"title":"Scope on a smart field extracting a json's column attribute","href":"/legacy/ruby-agent/reference-guide/scopes/scope-on-a-smart-field-extracting-a-jsons-column-attribute"}]},{"title":"Performance","href":"/legacy/ruby-agent/reference-guide/performance"},{"group":"Charts","pages":[{"title":"Charts","href":"/legacy/ruby-agent/reference-guide/charts/overview"},{"title":"Create an API-based Chart","href":"/legacy/ruby-agent/reference-guide/charts/create-an-api-based-chart"},{"title":"Create a Smart Chart","href":"/legacy/ruby-agent/reference-guide/charts/create-a-smart-chart"},{"title":"Create Charts with AWS Redshift","href":"/legacy/ruby-agent/reference-guide/charts/create-charts-with-aws-redshift"}]},{"group":"Setup","pages":[{"title":"Setup","href":"/legacy/ruby-agent/how-tos/setup/README"},{"title":"Install","href":"/legacy/ruby-agent/how-tos/setup/install"},{"title":"Connecting Forest to Your Database (Forest Cloud)","href":"/legacy/ruby-agent/how-tos/setup/connecting-forest-admin-to-your-database-forest-cloud"},{"title":"Forest IP white-listing (Forest Cloud)","href":"/legacy/ruby-agent/how-tos/setup/forest-admin-ip-white-listing-forest-cloud"},{"title":"Why HTTPS is necessary even locally","href":"/legacy/ruby-agent/how-tos/setup/why-https-is-necessary-even-locally"},{"title":"Troubleshooting","href":"/legacy/ruby-agent/how-tos/setup/troubleshooting"},{"title":"Prevent permission errors at installation","href":"/legacy/ruby-agent/how-tos/setup/prevent-permission-errors-at-installation"},{"title":"Deploy Your Admin Backend With Aws","href":"/legacy/ruby-agent/how-tos/setup/deploy-your-admin-backend-with-aws"},{"title":"Deploy your admin backend on Heroku","href":"/legacy/ruby-agent/how-tos/setup/deploy-to-production-on-heroku"},{"title":"Deploy your admin backend to Ubuntu server","href":"/legacy/ruby-agent/how-tos/setup/deploy-to-production-to-ubuntu-server"},{"title":"Deploy your admin backend to Google Cloud Platform","href":"/legacy/ruby-agent/how-tos/setup/deploy-your-admin-backend-with-google-cloud-platform"},{"title":"Install Forest on a remote machine","href":"/legacy/ruby-agent/how-tos/setup/install-forest-admin-on-a-remote-machine"},{"title":"Use Forest with a read-only database","href":"/legacy/ruby-agent/how-tos/setup/use-forest-admin-with-a-read-only-database"},{"title":"Configuring CORS headers","href":"/legacy/ruby-agent/how-tos/setup/configuring-cors-headers"},{"title":"Running Forest on multiple servers","href":"/legacy/ruby-agent/how-tos/setup/running-forest-admin-on-multiple-servers"}]},{"group":"Upgrade","pages":[{"title":"Upgrade","href":"/legacy/ruby-agent/how-tos/maintain/README"},{"group":"Upgrade notes","pages":[{"title":"Upgrade notes (Rails)","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/README"},{"title":"Upgrade to v9.22","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/upgrade-to-v9-22"},{"title":"Upgrade to v9","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/upgrade-to-v9"},{"title":"Upgrade to v8","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/upgrade-to-v8"},{"title":"Upgrade to v7","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/upgrade-to-v7"},{"title":"Upgrade to v6","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/upgrade-to-v6"},{"title":"Upgrade to v5","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/untitled"},{"title":"Upgrade to v4","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/upgrade-to-v4"},{"title":"Upgrade to v3","href":"/legacy/ruby-agent/how-tos/maintain/upgrade-notes-rails/upgrade-to-v3"}]},{"title":"Update your models' definition","href":"/legacy/ruby-agent/how-tos/maintain/update-your-models-definition"},{"title":"Monitor your Forest's status","href":"/legacy/ruby-agent/how-tos/maintain/monitor-your-forests-status"},{"title":"Manage your Forest environments programmatically","href":"/legacy/ruby-agent/how-tos/maintain/manage-your-forest-admin-programmatically"},{"title":"Changing your domain name","href":"/legacy/ruby-agent/how-tos/maintain/changing-your-domain-name"},{"title":"Migrate to the new role system","href":"/legacy/ruby-agent/how-tos/maintain/migrate-to-the-new-role-system"},{"title":"Push your new version to production","href":"/legacy/ruby-agent/how-tos/maintain/push-your-new-version-to-production"}]},{"group":"Databases","pages":[{"title":"Readme","href":"/legacy/ruby-agent/how-tos/databases/README"},{"title":"Use a demo SQL database","href":"/legacy/ruby-agent/how-tos/databases/use-a-demo-database"},{"title":"Connect to a read replica database","href":"/legacy/ruby-agent/how-tos/databases/connect-to-a-read-replica-database"},{"title":"Plug multiple schemas","href":"/legacy/ruby-agent/how-tos/databases/plug-multiple-schemas"},{"title":"Add new databases","href":"/legacy/ruby-agent/how-tos/databases/add-new-databases"},{"title":"Manage SQL views","href":"/legacy/ruby-agent/how-tos/databases/manage-sql-views"}]},{"group":"Settings","pages":[{"title":"Settings","href":"/legacy/ruby-agent/how-tos/settings/README"},{"title":"Customize your /forest folder","href":"/legacy/ruby-agent/how-tos/settings/customize-your-forest-folder"},{"title":"Disable automatic Forest schema update","href":"/legacy/ruby-agent/how-tos/settings/disable-automatic-forest-admin-schema-update"},{"title":"Include/exclude models","href":"/legacy/ruby-agent/how-tos/settings/include-exclude-models"},{"title":"Display extensive logs","href":"/legacy/ruby-agent/how-tos/settings/display-extensive-logs"}]}]}]}]},"title":"Migrate to the new role system - Forest Documentation","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-B0E5HDf_.js","lightbox-handle-r17bVUz3.js"]}