Validate a CAPTCHA on the server: Cloudflare Turnstile, Google reCAPTCHA v2/v3 or hCaptcha.
Usage and specifics
The token comes from the client form; validation uses the server-side secret. Check hostname, action and score for reCAPTCHA v3. The secret can come from a variables credential.
Create credentials in your nodulz instance’s Credentials area, then select them on the node. Availability depends on ownership and sharing. See the credentials guide for access and rotation.
Parameters
Names below are technical keys. Defaults are not a ready-to-run configuration: complete fields required by your operation. Paths containing [] describe list items; some fields depend on the selected mode.
Parameter
Type
Default
Values / limits
provider
enum
"turnstile"
turnstile, recaptcha_v2, recaptcha_v3, hcaptcha
credentialId
string
""
-
secretName
string
"CAPTCHA_SECRET"
-
token
string
"{{ input.body[\"cf-turnstile-response\"] }}"
-
remoteIp
string
""
-
siteKey
string
""
-
expectedHostname
string
""
-
expectedAction
string
""
-
minScore
number
0.5
-; ≥ 0, ≤ 1
failOnInvalid
boolean
true
-
timeoutMs
number
10000
-; ≥ 100, ≤ 30000
Configuration help
credentialId Secrets credential
Create a Secret variables credential containing the provider secret key. It stays encrypted in Nodulz.
secretName Secret variable name
Name of the variable holding the secret key in this credential, for example CAPTCHA_SECRET. Do not enter the key here.
token CAPTCHA token
Token submitted by the form. Use an expression or drag the field from the webhook data.
expectedHostname Expected hostname
Recommended: exact form hostname, without protocol or path. A different or missing hostname is rejected.
expectedAction Expected action
Action configured in the widget, matched exactly. Required for reCAPTCHA v3; optional for Turnstile.
minScore Minimum score
reCAPTCHA v3: accepts scores at or above this threshold (0 to 1). A missing score is rejected.
siteKey Public site key
hCaptcha: recommended public key to bind verification to the expected widget.
remoteIp Visitor IP address
Optional. Only use an address determined by a trusted source, not a freely submitted form value.
failOnInvalid Stop if CAPTCHA is rejected
Enabled by default. Disable to get success=false, then use an If node before protected actions and a 403 webhook response. Network errors always stop the node.
Initial configuration
Initial catalog configuration example, to adapt before running. Keep secrets in credentials.
Test with representative data. Check node output in the inspector and logs, then use editor mapping for downstream fields. A trigger test with a simulated payload does not validate external service delivery.
Validate a CAPTCHA on the server: Cloudflare Turnstile, Google reCAPTCHA v2/v3 or hCaptcha.
Usage and specifics
The token comes from the client form; validation uses the server-side secret. Check hostname, action and score for reCAPTCHA v3. The secret can come from a variables credential.
Technical type :
captcha. Runtime :nodulz.Credentials and prerequisites
Create credentials in your nodulz instance’s Credentials area, then select them on the node. Availability depends on ownership and sharing. See the credentials guide for access and rotation.
Parameters
Names below are technical keys. Defaults are not a ready-to-run configuration: complete fields required by your operation. Paths containing [] describe list items; some fields depend on the selected mode.
providerenum"turnstile"turnstile,recaptcha_v2,recaptcha_v3,hcaptchacredentialIdstring""secretNamestring"CAPTCHA_SECRET"tokenstring"{{ input.body[\"cf-turnstile-response\"] }}"remoteIpstring""siteKeystring""expectedHostnamestring""expectedActionstring""minScorenumber0.5failOnInvalidbooleantruetimeoutMsnumber10000Configuration help
credentialIdSecrets credential
secretNameSecret variable name
tokenCAPTCHA token
expectedHostnameExpected hostname
expectedActionExpected action
minScoreMinimum score
siteKeyPublic site key
remoteIpVisitor IP address
failOnInvalidStop if CAPTCHA is rejected
Initial configuration
Initial catalog configuration example, to adapt before running. Keep secrets in credentials.
{ "provider": "turnstile", "credentialId": "", "secretName": "CAPTCHA_SECRET", "token": "{{ input.body[\"cf-turnstile-response\"] }}", "expectedHostname": "", "expectedAction": "", "minScore": 0.5, "failOnInvalid": true }Verification
Test with representative data. Check node output in the inspector and logs, then use editor mapping for downstream fields. A trigger test with a simulated payload does not validate external service delivery.
See also : Expressions and data, Executions, Node catalog.