Skip to content

Validate a flow node

Request

Validate a single node configuration without saving it. Useful for pre-flight checks when building a flow programmatically. Send the same node object shape you would put inside a flow version (see the flow-node schema).

Required fields: id, type, before, after. The before and after edge arrays MUST be present even when empty ([]) — omitting them currently causes a server error instead of a validation error.

id must be an integer, not a string. Node config lives in the payload object, with automation set to the string "auto".

A valid node returns 204 No Content (empty body).

Security
bearerAuth
Bodyapplication/jsonrequired
idintegerrequired

Node ID, unique within the flow version. Must be an integer.

Example:3
typestringrequired

Node type. See the table above for allowed values.

Example:"linkedin_send_connection_request"
beforeArray of objects(node-edge)required

Incoming edges (empty for entry nodes). Required, may be [].

afterArray of objects(node-edge)required

Outgoing edges (empty for the end node). Required, may be [].

automationstring

Always the literal string "auto".

Example:"auto"
payloadobject or Array of any
Example:
{ "template": "Hi {{first_name}}, happy to connect!", "fallback_send": true, "template_uuid": null }
One of:

Node configuration. Object whose shape depends on type (see table), or [] for nodes with no configuration.

object
delay_in_secondsinteger

Delay before this node runs, relative to the previous step (e.g. 7200 = 2h, 86400 = 1 day). 0 = run immediately.

Example:0
created_atstring, (date-time)

Required when saving a node via createFlowVersion (an ISO-8601 timestamp; use the current time for new nodes). Not required by validate-node.

Example:"2026-07-05T10:00:00.000000Z"
updated_atstring, (date-time)

Required alongside created_at when saving via createFlowVersion.

Example:"2026-07-05T10:00:00.000000Z"
POST
/flows/api/flow-versions/validate-node
curl -i -X POST \
  https://leadgen.grinfi.io/flows/api/flow-versions/validate-node \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "id": 1,
    "before": [],
    "after": [],
    "type": "linkedin_send_connection_request",
    "automation": "auto",
    "payload": {
      "template": "Hi {{first_name}}, happy to connect!",
      "fallback_send": true,
      "template_uuid": null
    },
    "delay_in_seconds": 0
  }'

Responses

Node configuration is valid (empty body).

Response
No content