# addAction with Hook

**URL:** <https://community.forestadmin.com/t/addaction-with-hook/6810>\
**Category:** Help me!\
**Created:** [November 3, 2023, 9:21am UTC](https://community.forestadmin.com/t/addaction-with-hook/6810 "2023-11-03T09:21:10Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![dscreve](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dscreve](https://community.forestadmin.com/u/dscreve)\
**Post date:** [November 3, 2023, 9:21am UTC](https://community.forestadmin.com/t/addaction-with-hook/6810/1 "2023-11-03T09:21:10Z")

</div>

Hello,

I’m trying to use hooks on Smart Actions. I’m using addAction on CollectionCustomizer, but the ActionDefinition does not contains hooks fields in Typescript.  
There is a form field, but no fields as described here : [https://docs.forestadmin.com/documentation/reference-guide/actions/create-and-manage-smart-actions/use-a-smart-action-form#handling-input-values](https://docs.forestadmin.com/documentation/reference-guide/actions/create-and-manage-smart-actions/use-a-smart-action-form#handling-input-values)

Is there something that I missed ?

Regards,

David

---

<div class="post-metadata">

**Author:** ![nbouliol](https://dub1.discourse-cdn.com/flex013/user_avatar/community.forestadmin.com/nbouliol/32/5777_2.png) [@nbouliol](https://community.forestadmin.com/u/nbouliol)\
**Post date:** [November 3, 2023, 9:34am UTC](https://community.forestadmin.com/t/addaction-with-hook/6810/2 "2023-11-03T09:34:57Z")

</div>

Hello @dscreve

Welcome to the Forest community !

The documentation you posted is on the previous agent.

The documentation you are looking for, for the new agent is [right here](https://docs.forestadmin.com/developer-guide-agents-nodejs/agent-customization/actions/forms-dynamic)

Regards,  
Nicolas

---

<div class="post-metadata">

**Author:** ![dscreve](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dscreve](https://community.forestadmin.com/u/dscreve)\
**Post date:** [November 3, 2023, 11:00am UTC](https://community.forestadmin.com/t/addaction-with-hook/6810/3 "2023-11-03T11:00:11Z")

</div>

Thanks a lot ! That’s perfect !

---

<div class="post-metadata">

**Author:** ![dscreve](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dscreve](https://community.forestadmin.com/u/dscreve)\
**Post date:** [November 3, 2023, 3:21pm UTC](https://community.forestadmin.com/t/addaction-with-hook/6810/4 "2023-11-03T15:21:03Z")

</div>

Is there anyway to populate enum from database query (in another collection) ?

---

<div class="post-metadata">

**Author:** ![nbouliol](https://dub1.discourse-cdn.com/flex013/user_avatar/community.forestadmin.com/nbouliol/32/5777_2.png) [@nbouliol](https://community.forestadmin.com/u/nbouliol)\
**Post date:** [November 3, 2023, 4:16pm UTC](https://community.forestadmin.com/t/addaction-with-hook/6810/5 "2023-11-03T16:16:21Z")

</div>

You can check this [example](https://docs.forestadmin.com/developer-guide-agents-nodejs/agent-customization/actions/forms-dynamic#example-3-conditional-enum-values-based-on-both-record-data-and-form-values) to see how to populate enum values.

From the context you can get any collection from the same datasource.

You can find the [documentation](https://docs.forestadmin.com/developer-guide-agents-nodejs/data-sources/getting-started/queries) related to the querying through Forest Admin Query Interface

Here is a small example:

```javascript
 .addAction("Action with populated enum", {
      scope: "Single",
      form: [
        {
          label: "Users email",
          type: "Enum",
          enumValues: async (context) => {
            // Get the collection you want to query
            const usersCollection = context.dataSource.getCollection("users");

            // query the collection
            const users = await usersCollection.list(
              {
                conditionTree: {
                  conditions: [{ field: "id", operator: "LessThan", value: 3 }],
                  aggregator: "And",
                },
              },
              ["email"]
            );

            // return an array with your enum values
            return users.map((u) => u.email);
          },
        },
      ],
}

```

---

<div class="post-metadata">

**Author:** ![dscreve](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dscreve](https://community.forestadmin.com/u/dscreve)\
**Post date:** [November 4, 2023, 5:47pm UTC](https://community.forestadmin.com/t/addaction-with-hook/6810/6 "2023-11-04T17:47:47Z")

</div>

Thanks : it works fine !
