π§©Adding Customer Support-specific features
Now, that you have all the fundaments, it's time to create use case-specific features. With Forest Admin it only takes a few moments, as we facilitate the process thanks to smart actions.
All the code snippets in this tutorial are written in TypeScript, and whenever we refer to the technical documentation, all links go to the Node.js Developer Guide.
If your application has been built in Rails, Laravel, Symfony, Flask, or Django, go the framework-specific developer guides.
In the demo project used for the purpose of this tutorial, we have created a couple of smart actions, specific to common tasks of Customer Support teams. We will now describe each of them to help you get started with your own smart action. You can find the general and comprehensive guide to smart actions in the documentation. Here we only focus on the steps needed to create the CS-specific ones.

Apply a promo code
This smart action allows CS team members to apply a promo code, link it with the existing order, and to display the amount with the discount once the coupon is applied.

In order to allow CS team members to apply promo codes, display their names and values, and link them with orders, you need to follow these instructions.
After creating a project, it's time to work on the scaffolding. We created a "customizations" folder, where the code will live every time we want to customize something. These customization files look like this:
Notice the CollectionCustomizer<Schema, 'coupons'>. This is what allows us to easily customize a collection.
Then, modify the index.ts (which is generated by the toolbelt) to include these customizations:
Then, it's time to add two new features regarding the Orders collection:
We want an action that links an existing coupon with an order.
We want to display the amount with the discount applied directly in the table view.
User Management System
Change a plan, Reset a password, Anonymize, Block a user.
Now we're going to add smart actions to the Users collection. Their aim is to allow CS team members to perform the most common actions like changing a plan, resetting passwords, and blocking (moderating) users. In addition, we will create a smart field that will display users' full names, when your database stores first and last names separately. Let's dive in.

Impersonate a user
Customer impersonation, often called a 'login as' feature is a very common functionality used by Customer Success teams. In order to troubleshoot customers' issues safely and without compromising data privacy and security, apps often have a feature that allows their managers to take a peek into what their customers see, and be able to identify the problem more easily.
Therefore, it is a must-have feature of every tool used by the CS teams. On Forest Admin, it is possible to add it via a smart action, and it is, in fact, one of the most popular ones. This code should help you create your own.
Last updated