> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Automatic Node

> An automatic node assigns third-party data to process variables by configuring execution actions. It supports variable assignment using registered third-party services or Groovy scripts. This document details how to configure execution actions, including HTTP interface requirements and sample code.

An automatic node is mainly used to assign third-party data to process variables by configuring execution actions, either through service registration or Groovy.

## Third-Party Service

When configuring an execution action, you can Select a successfully registered third-party service. Then assign the return value of the third-party service to a process variable.

<Note>
  The third-party service must be registered first. For details, see **Service Registration**.
</Note>

## Groovy Settings

You can assign values to process variables through Groovy Settings. Enter the correct process variable name and write the value to be assigned in the execution script.

<Note>
  * The variable must be defined in the process Attribute.
  * Quotes must be added when assigning a string, for example "HelloWorld".
</Note>

After assignment, this value can be used for evaluation in online execution rules.

## Execution Action Configuration Instructions

If the callback interface is an HTTP interface, it must meet the following requirements:

* The HTTP method must be POST.
* Request parameters must be placed in the RequestBody.
* uuid is a system keyword and cannot be used.
* If a SHA256 Signature key is used during service registration, the callback parameter \_\_hmacSha256 must be added.
* md5 is the default Signature method added by the service callback. If no key is set during service registration, the system's default key is used for signing. If a key is set, the configured key is used for signing, and the callback parameter is sign.

Refer to the following simple sample callback interface written in Java:

```java theme={"theme":{"light":"github-light","dark":"github-dark"}}
@RequestMapping(value = "/callback",method = RequestMethod.POST)
@ResponseBody
public List<String> callback(@RequestBody CallbackParam callbackParam) {
  // Return value format: ["Employee ID 1","Employee ID 2"]; if the return is empty, return null directly
  List<String> result = new ArrayList<>();
  // do something
  return result;
}
```
