{"version":1,"pages":[{"id":"-M0vHqWRCcxN8_qlQIRY","title":"What is woodshop","pathname":"/woodshop","siteSpaceId":"sitesp_SHWtR","description":""},{"id":"bXkR2ID0mRAfg6S3MzuG","title":"Smart Relationship","pathname":"/woodshop/how-tos/smart-relationship","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"tIfHbSEdvgRHlBNGV88D","title":"GetIdsFromRequest","pathname":"/woodshop/how-tos/smart-relationship/getidsfromrequest","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Smart Relationship"}]},{"id":"wkNhbDHdFZa3rONzBCnl","title":"Smart views","pathname":"/woodshop/how-tos/smart-views","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M3LMqTaKz2vYEOjVzf4","title":"Display a calendar view","pathname":"/woodshop/how-tos/smart-views/calendar-view","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Smart views"}]},{"id":"-MVRstesyPLpFXCcwFll","title":"Create a custom tinder-like validation view","pathname":"/woodshop/how-tos/smart-views/create-a-custom-tinder-like-validation-view","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Smart views"}]},{"id":"-MUxeDVZCdP0jkSwjzk0","title":"Create a custom moderation view","pathname":"/woodshop/how-tos/smart-views/create-a-custom-moderation-view","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Smart views"}]},{"id":"-MK-sS9VRDKMjEGd7utU","title":"Create a dynamic calendar view for an event-booking use case","pathname":"/woodshop/how-tos/smart-views/create-a-custom-view","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Smart views"}]},{"id":"-MhOxbkBoPOM9oPU6iOg","title":"Configure environment variables","pathname":"/woodshop/how-tos/configure-environment-variables","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-MhS_Xru-PMPNAp2Ycm2","title":"NodeJS/Express projects","pathname":"/woodshop/how-tos/configure-environment-variables/nodejs-express-projects","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Configure environment variables"}]},{"id":"-MYoUyaNVFS97RG_OyiB","title":"Elasticsearch Integration","pathname":"/woodshop/how-tos/create-a-smart-collection-with-elasticsearch","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-MZT-mawetkbUb3ZPZpO","title":"Interact with your Elasticsearch data","pathname":"/woodshop/how-tos/create-a-smart-collection-with-elasticsearch/play-with-your-elasticsearch-data","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Elasticsearch Integration"}]},{"id":"-MZSyopI8O5vSuq7OJSK","title":"Elasticsearch service/utils","pathname":"/woodshop/how-tos/create-a-smart-collection-with-elasticsearch/elasticsearch-service-utils","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Elasticsearch Integration"}]},{"id":"-MZSyZkvQDf6dmgwrCPc","title":"Another example","pathname":"/woodshop/how-tos/create-a-smart-collection-with-elasticsearch/display-elasticsearch-data","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Elasticsearch Integration"}]},{"id":"-MT6njrFrHGxcTXKbM0s","title":"Zendesk Integration","pathname":"/woodshop/how-tos/zendesk-integration","siteSpaceId":"sitesp_SHWtR","description":"Start learning to code Forest Admin Smart features by integrating Zendesk in your Admin Panel","breadcrumbs":[{"label":"How to's"}]},{"id":"-MW4451EXFx4aC6xSkDz","title":"Authentication, Filtering & Sorting","pathname":"/woodshop/how-tos/zendesk-integration/authentication-filtering-and-sorting","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Zendesk Integration"}]},{"id":"-MW3LmkUhf_-6EPFO-Tj","title":"Display Zendesk tickets","pathname":"/woodshop/how-tos/zendesk-integration/display-zendesk-tickets","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Zendesk Integration"}]},{"id":"-MW3LjKGWMhFUXCdukZE","title":"Display Zendesk users","pathname":"/woodshop/how-tos/zendesk-integration/display-zendesk-users","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Zendesk Integration"}]},{"id":"-MW3LrGazHeAwBBwQeA0","title":"View tickets related to a user","pathname":"/woodshop/how-tos/zendesk-integration/associate-user-tickets","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Zendesk Integration"}]},{"id":"-MW3MIw4fXzGo5siFQ5w","title":"Bonus: Direct link to Zendesk + change priority of a ticket","pathname":"/woodshop/how-tos/zendesk-integration/bonus-link-to-zendesk-+-change-priority-of-a-ticket","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Zendesk Integration"}]},{"id":"-MT6i2LGS2q1yD6RM_r6","title":"Dwolla integration","pathname":"/woodshop/how-tos/dwolla-integration","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-MT6jMMbEFdQR84-Ctfo","title":"Display Dwolla customers","pathname":"/woodshop/how-tos/dwolla-integration/display-dwolla-customers","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Dwolla integration"}]},{"id":"-MT6jLlzj7FDFEJSro5B","title":"Display Dwolla funding sources","pathname":"/woodshop/how-tos/dwolla-integration/display-dwolla-funding-sources","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Dwolla integration"}]},{"id":"-MT6jKwX0Ao4ml9Bhwrx","title":"Display Dwolla transfers","pathname":"/woodshop/how-tos/dwolla-integration/display-dwolla-transfers","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Dwolla integration"}]},{"id":"-MT6lqdePNhZ16DRTjg4","title":"Link users and Dwolla customers","pathname":"/woodshop/how-tos/dwolla-integration/link-users-and-dwolla-customers","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Dwolla integration"}]},{"id":"-MT6m9GBX3RD9U72k0Mx","title":"Dwolla service","pathname":"/woodshop/how-tos/dwolla-integration/dwolla-servive","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Dwolla integration"}]},{"id":"-MS9PZb_K42yj9wH8Gmj","title":"Make filters case insensitive","pathname":"/woodshop/how-tos/make-filters-case-insensitive","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-MRu4cEcBY1FCZDBopde","title":"Use Azure Table Storage","pathname":"/woodshop/how-tos/use-azure-table-storage","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-MPAGkot-UBreTxht2BQ","title":"Create multiple line charts","pathname":"/woodshop/how-tos/create-multiple-line-charts","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-MLIWvDuyxNjw-fU8QTL","title":"Create Charts with AWS Redshift","pathname":"/woodshop/how-tos/create-charts-with-aws-redshift","siteSpaceId":"sitesp_SHWtR","description":"Use Amazon AWS Redshift as a datasource","breadcrumbs":[{"label":"How to's"}]},{"id":"-MY5zcrGexCmBm4Vco4V","title":"View soft-deleted records","pathname":"/woodshop/how-tos/view-soft-deleted-records","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-MK-WKnswPMbKsfxafCK","title":"Send Smart Action notifications to Slack","pathname":"/woodshop/how-tos/send-smart-action-notifications-to-your-slack-workspace","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-MFBCt5J9a27ei_CgL-z","title":"Authenticate a Forest Admin API against an OAuth protected API Backend","pathname":"/woodshop/how-tos/authenticate-a-forest-admin-api-against-an-oauth-protected-api-backend","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-MdHAEBdOtU-gOQ2vgXD","title":"Translate your project into TypeScript","pathname":"/woodshop/how-tos/translate-your-project-into-typescript","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-MhOJLGxtzxU2np4rqDw","title":"V8","pathname":"/woodshop/how-tos/translate-your-project-into-typescript/v8","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Translate your project into TypeScript"}]},{"id":"-MhOJtxGnAKjnNJYxrfm","title":"Migrate Mongoose files","pathname":"/woodshop/how-tos/translate-your-project-into-typescript/v8/migrate-mongoose-files","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Translate your project into TypeScript"},{"label":"V8"}]},{"id":"-MhOOaa7-RnS3msUd8K7","title":"Migrate Sequelize files","pathname":"/woodshop/how-tos/translate-your-project-into-typescript/v8/migrate-sequelize-files","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Translate your project into TypeScript"},{"label":"V8"}]},{"id":"-MdH7p5uP4UHj9c8ZloU","title":"v7","pathname":"/woodshop/how-tos/translate-your-project-into-typescript/v7","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Translate your project into TypeScript"}]},{"id":"-MdIOnB2-Vni26Yj-R65","title":"Migrate Mongoose files","pathname":"/woodshop/how-tos/translate-your-project-into-typescript/v7/migrate-mongoose-files","siteSpaceId":"sitesp_SHWtR","description":"This guide has been created to help you to translate your generated JavaScript app to TypeScript","breadcrumbs":[{"label":"How to's"},{"label":"Translate your project into TypeScript"},{"label":"v7"}]},{"id":"-MdIOvq4FjI51uk7paEt","title":"Migrate Sequelize files","pathname":"/woodshop/how-tos/translate-your-project-into-typescript/v7/migrate-sequelize-files","siteSpaceId":"sitesp_SHWtR","description":"This guide has been created to help you to translate your generated JavaScript app to TypeScript","breadcrumbs":[{"label":"How to's"},{"label":"Translate your project into TypeScript"},{"label":"v7"}]},{"id":"-MB8K_8ZhBhyxoDZ-1O-","title":"v6","pathname":"/woodshop/how-tos/translate-your-project-into-typescript/translate-your-app-into-typescript","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Translate your project into TypeScript"}]},{"id":"-M3LEg1oenzlmGYtMGWT","title":"Geocode an address with Algolia","pathname":"/woodshop/how-tos/geocode-an-address","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M3MYRTq6YxOzAR5KHC0","title":"Display/edit a nested document","pathname":"/woodshop/how-tos/display-edit-a-nested-document","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M22zXMp6dR3kdWpnvvc","title":"Send an SMS with Zapier","pathname":"/woodshop/how-tos/trigger-a-webhook-with-zapier","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M3k-yvn-F7mrRbpbuB3","title":"Hash a password with bcrypt","pathname":"/woodshop/how-tos/hash-a-password-with-bcrypt","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M3keXmQ8iKSUpr3a3KB","title":"Display a customized response","pathname":"/woodshop/how-tos/display-a-customized-response","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M3l-eQCMOx-ZwgURs8W","title":"Search on a smart field with two joints","pathname":"/woodshop/how-tos/search-on-a-smart-field-with-joints","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M3z2f4TrNRbCpI0ZJhy","title":"Override the count route","pathname":"/woodshop/how-tos/override-the-count-route","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M4-7XGYhVoBVV7XJQ0t","title":"Make a field readOnly with Sequelize","pathname":"/woodshop/how-tos/make-field-readonly-with-sequelize","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M3z-KznoU8nHFDD93iO","title":"Hubspot integration","pathname":"/woodshop/how-tos/hubspot","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M4-FgyPD2nCQeotQ_CT","title":"Create a Hubspot company","pathname":"/woodshop/how-tos/hubspot/create-hubspot-company-from-a-record","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Hubspot integration"}]},{"id":"-M3z-q5dR2YdurOSV5PD","title":"Display Hubspot companies","pathname":"/woodshop/how-tos/hubspot/create-a-smart-collection-of-hubspot-companies","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"},{"label":"Hubspot integration"}]},{"id":"-M4P3KLR6ztJbrdAKqdQ","title":"Impersonate a user","pathname":"/woodshop/how-tos/impersonate-a-user","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M4P5noaAyeyZz958bfD","title":"Import data from a CSV file","pathname":"/woodshop/how-tos/import-data-from-a-csv-file","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M4zD2-DYv7UUVS6bqHl","title":"Import data from a JSON file","pathname":"/woodshop/how-tos/upload-json-file-to-a-string-field","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M4UDjmdBBguhu3r5QUl","title":"Load smart fields using hook","pathname":"/woodshop/how-tos/load-smart-fields-using-sequelizes-afterfind-hook","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M4XnomOGeh4XQVSxr0z","title":"Pre-fill a form with data from a relationship","pathname":"/woodshop/how-tos/pre-fill-smart-action-form-with-data-coming-from-a-relationship","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M4YyMuDsr7ZLSHqT8d1","title":"Re-use a smart field logic","pathname":"/woodshop/how-tos/re-use-a-smart-field-logic","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M518B3oxmhvB0cDuCd5","title":"Link to record info in a smart view","pathname":"/woodshop/how-tos/link-to-record-detail-in-a-gallery-view","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M4tFJIxHe6ojI12IT9s","title":"Display data in html format","pathname":"/woodshop/how-tos/display-data-in-html-format","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-M5S-a3IAIxxegnB0cXc","title":"Upload files to AWS S3","pathname":"/woodshop/how-tos/upload-files-to-s3","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-Mge3to3H4WztWb875Qo","title":"Display AWS S3 files from signed URLs","pathname":"/woodshop/how-tos/display-s3-signed-urls","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-MB4EMwHcUyCPYfxhrvZ","title":"Prevent record update","pathname":"/woodshop/how-tos/prevent-record-update-based-on-specific-criterias","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-MDFlLI6ZKsfH5wifL_h","title":"Display, search and update attributes from a JSON field","pathname":"/woodshop/how-tos/update-attributes-from-a-jsonb-field","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"1chB6VhQVkt5HwEq39vZ","title":"Add many existing records at the same time (hasMany-belongsTo relationship)","pathname":"/woodshop/how-tos/add-many-existing-records-at-the-same-time-hasmany-belongsto-relationship","siteSpaceId":"sitesp_SHWtR","description":"This example shows how to associate multiple existing records at once to a record using a simple smart action.","breadcrumbs":[{"label":"How to's"}]},{"id":"-MCqZ4wNxVYkI_2yiWcI","title":"Track users’ logs with morgan","pathname":"/woodshop/how-tos/get-user-specific-activity-from-your-server-logs","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-MF5prd2P2Gg9f6Oc73V","title":"Search on relationship fields by default","pathname":"/woodshop/how-tos/how-to-search-on-belongsto-relationship-fields-by-default","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-MKaZ7Vfgfa5Po8MjuUg","title":"Export related data as CSV","pathname":"/woodshop/how-tos/export-related-data-as-csv","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]},{"id":"-MWUUmn6Uxcp6jNW22xz","title":"Run automated tests","pathname":"/woodshop/how-tos/run-automated-tests","siteSpaceId":"sitesp_SHWtR","description":"","breadcrumbs":[{"label":"How to's"}]}]}