Call Service
home_assistant.call_service
ActionBusiness appsconnection required
Calls the Home Assistant API with the connection's credentials.
Run a Home Assistant service, optionally against named entities.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- Bearer token
- Providers
- Home Assistant
- Secret shape
- the long-lived access token, or {"access_token": "…"}
- Config it needs
- base_url
- Resolved by
- config.connection_id, else node.connection_id
Configuration
5 fields, 2 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
domain The service's domain, for example 'light' or 'notify'. | string | Yes | — | — | light |
service The service to run, for example 'turn_on'. | string | Yes | — | — | turn_on |
entity_id Target entities: one id, a comma-separated list, or 'all'. | string | No | — | — | light.kitchen |
data Service data as a JSON object, for example {"brightness_pct": 60}. | object | No | — | — | {"brightness_pct":60} |
return_response Ask for the service's own response data as well as the changed states. | boolean | No | false | — | — |
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"data": {
"brightness_pct": 60
},
"domain": "light",
"entity_id": "light.kitchen",
"return_response": false,
"service": "turn_on"
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
domain The domain that was called. | string | — |
service The service that was called. | string | — |
changed_states The states that changed while it ran. | array | — |
changed_count How many states changed. | number | — |
service_response The service's own response, or null when it returned none. | object | — |
has_response True when a service response came back. | boolean | — |
{
"changed_count": 0,
"changed_states": [],
"domain": "",
"has_response": false,
"service": "",
"service_response": {}
}Notes
- The call blocks on Home Assistant's side, so there is no job to poll — but an empty `changed_states` is normal, not a failure.
- Only some services return response data, and only when `return_response` is set; `has_response` says whether one actually came back.
Related Home Assistant nodes
See Call Service run in a workflow.
In a technical demo we add the Home Assistant connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.