# How to's

- [Smart Relationship](https://docs.forestadmin.com/woodshop/how-tos/smart-relationship.md)
- [GetIdsFromRequest](https://docs.forestadmin.com/woodshop/how-tos/smart-relationship/getidsfromrequest.md)
- [Smart views](https://docs.forestadmin.com/woodshop/how-tos/smart-views.md)
- [Display a calendar view](https://docs.forestadmin.com/woodshop/how-tos/smart-views/calendar-view.md)
- [Create a custom tinder-like validation view](https://docs.forestadmin.com/woodshop/how-tos/smart-views/create-a-custom-tinder-like-validation-view.md)
- [Create a custom moderation view](https://docs.forestadmin.com/woodshop/how-tos/smart-views/create-a-custom-moderation-view.md)
- [Create a dynamic calendar view for an event-booking use case](https://docs.forestadmin.com/woodshop/how-tos/smart-views/create-a-custom-view.md)
- [Configure environment variables](https://docs.forestadmin.com/woodshop/how-tos/configure-environment-variables.md)
- [NodeJS/Express projects](https://docs.forestadmin.com/woodshop/how-tos/configure-environment-variables/nodejs-express-projects.md)
- [Elasticsearch Integration](https://docs.forestadmin.com/woodshop/how-tos/create-a-smart-collection-with-elasticsearch.md)
- [Interact with your Elasticsearch data](https://docs.forestadmin.com/woodshop/how-tos/create-a-smart-collection-with-elasticsearch/play-with-your-elasticsearch-data.md)
- [Elasticsearch service/utils](https://docs.forestadmin.com/woodshop/how-tos/create-a-smart-collection-with-elasticsearch/elasticsearch-service-utils.md)
- [Another example](https://docs.forestadmin.com/woodshop/how-tos/create-a-smart-collection-with-elasticsearch/display-elasticsearch-data.md)
- [Zendesk Integration](https://docs.forestadmin.com/woodshop/how-tos/zendesk-integration.md): Start learning to code Forest Admin Smart features by integrating Zendesk in your Admin Panel
- [Authentication, Filtering & Sorting](https://docs.forestadmin.com/woodshop/how-tos/zendesk-integration/authentication-filtering-and-sorting.md)
- [Display Zendesk tickets](https://docs.forestadmin.com/woodshop/how-tos/zendesk-integration/display-zendesk-tickets.md)
- [Display Zendesk users](https://docs.forestadmin.com/woodshop/how-tos/zendesk-integration/display-zendesk-users.md)
- [View tickets related to a user](https://docs.forestadmin.com/woodshop/how-tos/zendesk-integration/associate-user-tickets.md)
- [Bonus: Direct link to Zendesk + change priority of a ticket](https://docs.forestadmin.com/woodshop/how-tos/zendesk-integration/bonus-link-to-zendesk-+-change-priority-of-a-ticket.md)
- [Dwolla integration](https://docs.forestadmin.com/woodshop/how-tos/dwolla-integration.md)
- [Display Dwolla customers](https://docs.forestadmin.com/woodshop/how-tos/dwolla-integration/display-dwolla-customers.md)
- [Display Dwolla funding sources](https://docs.forestadmin.com/woodshop/how-tos/dwolla-integration/display-dwolla-funding-sources.md)
- [Display Dwolla transfers](https://docs.forestadmin.com/woodshop/how-tos/dwolla-integration/display-dwolla-transfers.md)
- [Link users and Dwolla customers](https://docs.forestadmin.com/woodshop/how-tos/dwolla-integration/link-users-and-dwolla-customers.md)
- [Dwolla service](https://docs.forestadmin.com/woodshop/how-tos/dwolla-integration/dwolla-servive.md)
- [Make filters case insensitive](https://docs.forestadmin.com/woodshop/how-tos/make-filters-case-insensitive.md)
- [Use Azure Table Storage](https://docs.forestadmin.com/woodshop/how-tos/use-azure-table-storage.md)
- [Create multiple line charts](https://docs.forestadmin.com/woodshop/how-tos/create-multiple-line-charts.md)
- [Create Charts with AWS Redshift](https://docs.forestadmin.com/woodshop/how-tos/create-charts-with-aws-redshift.md): Use Amazon AWS Redshift as a datasource
- [View soft-deleted records](https://docs.forestadmin.com/woodshop/how-tos/view-soft-deleted-records.md)
- [Send Smart Action notifications to Slack](https://docs.forestadmin.com/woodshop/how-tos/send-smart-action-notifications-to-your-slack-workspace.md)
- [Authenticate a Forest Admin API against an OAuth protected API Backend](https://docs.forestadmin.com/woodshop/how-tos/authenticate-a-forest-admin-api-against-an-oauth-protected-api-backend.md)
- [Translate your project into TypeScript](https://docs.forestadmin.com/woodshop/how-tos/translate-your-project-into-typescript.md)
- [V8](https://docs.forestadmin.com/woodshop/how-tos/translate-your-project-into-typescript/v8.md)
- [Migrate Mongoose files](https://docs.forestadmin.com/woodshop/how-tos/translate-your-project-into-typescript/v8/migrate-mongoose-files.md)
- [Migrate Sequelize files](https://docs.forestadmin.com/woodshop/how-tos/translate-your-project-into-typescript/v8/migrate-sequelize-files.md)
- [v7](https://docs.forestadmin.com/woodshop/how-tos/translate-your-project-into-typescript/v7.md)
- [Migrate Mongoose files](https://docs.forestadmin.com/woodshop/how-tos/translate-your-project-into-typescript/v7/migrate-mongoose-files.md): This guide has been created to help you to translate your generated JavaScript app to TypeScript
- [Migrate Sequelize files](https://docs.forestadmin.com/woodshop/how-tos/translate-your-project-into-typescript/v7/migrate-sequelize-files.md): This guide has been created to help you to translate your generated JavaScript app to TypeScript
- [v6](https://docs.forestadmin.com/woodshop/how-tos/translate-your-project-into-typescript/translate-your-app-into-typescript.md)
- [Geocode an address with Algolia](https://docs.forestadmin.com/woodshop/how-tos/geocode-an-address.md)
- [Display/edit a nested document](https://docs.forestadmin.com/woodshop/how-tos/display-edit-a-nested-document.md)
- [Send an SMS with Zapier](https://docs.forestadmin.com/woodshop/how-tos/trigger-a-webhook-with-zapier.md)
- [Hash a password with bcrypt](https://docs.forestadmin.com/woodshop/how-tos/hash-a-password-with-bcrypt.md)
- [Display a customized response](https://docs.forestadmin.com/woodshop/how-tos/display-a-customized-response.md)
- [Search on a smart field with two joints](https://docs.forestadmin.com/woodshop/how-tos/search-on-a-smart-field-with-joints.md)
- [Override the count route](https://docs.forestadmin.com/woodshop/how-tos/override-the-count-route.md)
- [Make a field readOnly with Sequelize](https://docs.forestadmin.com/woodshop/how-tos/make-field-readonly-with-sequelize.md)
- [Hubspot integration](https://docs.forestadmin.com/woodshop/how-tos/hubspot.md)
- [Create a Hubspot company](https://docs.forestadmin.com/woodshop/how-tos/hubspot/create-hubspot-company-from-a-record.md)
- [Display Hubspot companies](https://docs.forestadmin.com/woodshop/how-tos/hubspot/create-a-smart-collection-of-hubspot-companies.md)
- [Impersonate a user](https://docs.forestadmin.com/woodshop/how-tos/impersonate-a-user.md)
- [Import data from a CSV file](https://docs.forestadmin.com/woodshop/how-tos/import-data-from-a-csv-file.md)
- [Import data from a JSON file](https://docs.forestadmin.com/woodshop/how-tos/upload-json-file-to-a-string-field.md)
- [Load smart fields using hook](https://docs.forestadmin.com/woodshop/how-tos/load-smart-fields-using-sequelizes-afterfind-hook.md)
- [Pre-fill a form with data from a relationship](https://docs.forestadmin.com/woodshop/how-tos/pre-fill-smart-action-form-with-data-coming-from-a-relationship.md)
- [Re-use a smart field logic](https://docs.forestadmin.com/woodshop/how-tos/re-use-a-smart-field-logic.md)
- [Link to record info in a smart view](https://docs.forestadmin.com/woodshop/how-tos/link-to-record-detail-in-a-gallery-view.md)
- [Display data in html format](https://docs.forestadmin.com/woodshop/how-tos/display-data-in-html-format.md)
- [Upload files to AWS S3](https://docs.forestadmin.com/woodshop/how-tos/upload-files-to-s3.md)
- [Display AWS S3 files from signed URLs](https://docs.forestadmin.com/woodshop/how-tos/display-s3-signed-urls.md)
- [Prevent record update](https://docs.forestadmin.com/woodshop/how-tos/prevent-record-update-based-on-specific-criterias.md)
- [Display, search and update attributes from a JSON field](https://docs.forestadmin.com/woodshop/how-tos/update-attributes-from-a-jsonb-field.md)
- [Add many existing records at the same time (hasMany-belongsTo relationship)](https://docs.forestadmin.com/woodshop/how-tos/add-many-existing-records-at-the-same-time-hasmany-belongsto-relationship.md): This example shows how to associate multiple existing records at once to a record using a simple smart action.
- [Track users’ logs with morgan](https://docs.forestadmin.com/woodshop/how-tos/get-user-specific-activity-from-your-server-logs.md)
- [Search on relationship fields by default](https://docs.forestadmin.com/woodshop/how-tos/how-to-search-on-belongsto-relationship-fields-by-default.md)
- [Export related data as CSV](https://docs.forestadmin.com/woodshop/how-tos/export-related-data-as-csv.md)
- [Run automated tests](https://docs.forestadmin.com/woodshop/how-tos/run-automated-tests.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.forestadmin.com/woodshop/how-tos.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
