Mattering Automations Railway integration
Connect Railway to Mattering Automations: projects, environments, services, deployments, logs, variables, domains, and volumes as workflow steps, authenticated with a Railway account or workspace API token.
The Mattering Automations Railway integration adds Railway to your automation canvas: list and create projects, manage environments and services, trigger deploys, redeploys, rollbacks, and restarts, read build, runtime, and HTTP logs, set and read environment variables, attach Railway and custom domains, and manage volumes and volume backups.
Railway's public API is a single GraphQL endpoint rather than a REST API, so each node in this integration is a named GraphQL operation with a fixed document behind it. You fill in ordinary canvas fields and the node builds the variables, so nothing here asks you to write GraphQL unless you choose the advanced custom request node.
Setup takes a few minutes: create an API token in Railway, attach it as a credential in Mattering, and run one read-only node to confirm it works. This guide walks through each step and ends with the full node reference.
Before you start
- A Railway account with access to the projects, services, and environments you want to automate.
- A Mattering workspace with access to the Automations app.
- Permission to create an API token on your Railway account, or a workspace token for the workspace you want to automate.
- An account token or a workspace token specifically. Railway project tokens are not supported by this integration: Railway expects those in a Project-Access-Token header rather than the Authorization Bearer header the connector sends, so a project token will fail authentication on every node.
Create a Railway API token
Mattering authenticates to Railway with an account or workspace API token, sent as an Authorization Bearer header. You create it from your Railway account settings, not from an individual project.
Connect Railway to Mattering
Verify it works
Open any automation canvas and check the palette: a Railway section should list the read and action nodes. Drop Railway: Get Current User onto the canvas and run a test step. It takes no arguments and is a safe, read-only query, so a successful response returns the id, name, and email of the account the token belongs to without touching any infrastructure.
To confirm the token can see your infrastructure, add Railway: List Projects and run it. A successful response lists the projects the token can reach. Railway returns this in the Relay connection shape, so the projects are under data.projects.edges with each project on a node key. Copy a project id from the result and feed it to Railway: Get Project to resolve the service ids and environment ids that most other nodes need.
Node reference
68 nodes, generated from the connector itself so this reference always matches what ships.
Read and query nodes 28
Railway: Check Custom Domain Availability
railway_check_custom_domain
Check whether a hostname can be attached to a Railway service before creating it.
Railway: Get Build Logs
railway_get_build_logs
Read the build-phase logs for a deployment. The first place to look when a deploy fails to build.
Railway: Get Current User
railway_get_me
Get the Railway account the API token belongs to (id, name, email). The cheapest auth/connectivity probe.
Railway: Get Custom Domain Status
railway_get_custom_domain
Poll a custom domain's DNS propagation and TLS certificate status.
Railway: Get Deployment
railway_get_deployment
Get one deployment's status, URLs, build metadata, and whether it can be redeployed or rolled back.
Railway: Get Deployment Logs
railway_get_deployment_logs
Read the runtime (application) logs for a deployment.
Railway: Get Deployment Variables
railway_get_deployment_variables
Read the fully rendered variable set a service deployment actually receives (shared + service variables, references resolved). WARNING: values are secrets.
Railway: Get Environment
railway_get_environment
Get one environment with each service instance in it and that instance's latest deployment status.
Railway: Get Environment Logs
railway_get_environment_logs
Read aggregated logs across every service in an environment, optionally filtered.
Railway: Get HTTP Logs
railway_get_http_logs
Read the edge HTTP request log for a deployment (method, path, status, duration, source IP).
Railway: Get Project
railway_get_project
Get one project with its services and environments. The usual way to resolve service ids and environment ids from a project id.
Railway: Get Service
railway_get_service
Get a service's project-level record (name, icon, owning project).
Railway: Get Service Instance
railway_get_service_instance
Get a service's per-environment settings (start/build command, region, replicas, restart policy) plus its latest deployment.
Railway: Get Service Resource Limits
railway_get_service_instance_limits
Get the CPU/memory limits configured for a service instance. Returns a JSON blob.
Railway: Get Staged Changes
railway_get_staged_changes
Read the staged (uncommitted) configuration changes on an environment. Returns a JSON blob.
Railway: Get Variables
railway_get_variables
Read environment variables as a flat name/value JSON object. Omit service_id for shared (environment-level) variables. WARNING: values are secrets. Do not log or forward the output.
Railway: Get Volume Instance
railway_get_volume_instance
Get a volume instance's mount path, current size, and state. The node to poll for disk-usage alerting.
Railway: Get Workspace
railway_get_workspace
Get one workspace with its members and their roles.
Railway: List Deployments
railway_list_deployments
List deployments for a project, optionally narrowed to one service/environment. Set first=1 with successful_only=true to get the current live deployment.
Railway: List Domains
railway_list_domains
List a service's Railway-provided domains and custom domains, including custom-domain DNS verification records.
Railway: List Environments
railway_list_environments
List a project's environments. Set is_ephemeral=false to exclude PR/preview environments.
Railway: List Project Members
railway_list_project_members
List the members of a project with their roles.
Railway: List Project Volumes
railway_list_project_volumes
List the persistent volumes attached to a project.
Railway: List Projects
railway_list_projects
List projects the token can see. Optionally scope to one workspace. Relay shape: results are under data.projects.edges[].node.
Railway: List TCP Proxies
railway_list_tcp_proxies
List the TCP proxies exposing a service instance (used for databases and other non-HTTP services).
Railway: List Volume Backup Schedules
railway_list_volume_backup_schedules
List the automatic backup schedules configured on a volume instance.
Railway: List Volume Backups
railway_list_volume_backups
List the backups taken of a volume instance.
Railway: List Workspaces
railway_list_workspaces
List the workspaces (personal + team) the token can access. Workspace ids scope Railway: List Projects and project creation.
Action nodes 40
Railway: Add Custom Domain
railway_create_custom_domain
Attach a custom domain to a service. Returns the DNS records that must be created before Railway will serve traffic.
Railway: Cancel Deployment
railway_cancel_deployment
Cancel a deployment that is still building or deploying.
Railway: Commit Staged Changes
railway_commit_staged_changes
Apply an environment's staged configuration changes, triggering redeploys where needed.
Railway: Connect Service to Repo
railway_connect_service_repo
Connect a service to a GitHub repo (or a Docker image) as its deploy source.
Railway: Create Environment
railway_create_environment
Create an environment in a project, optionally cloned from an existing environment.
Railway: Create Project
railway_create_project
Create a new Railway project.
Railway: Create Railway Domain
railway_create_service_domain
Generate a Railway-managed *.up.railway.app domain for a service instance.
Railway: Create Service
railway_create_service
Create a service in a project from a GitHub repo or a Docker image.
Railway: Create Volume
railway_create_volume
Create a persistent volume and mount it into a service.
Railway: Create Volume Backup
railway_create_volume_backup
Take an on-demand backup of a volume instance.
Railway: Custom GraphQL Request
railway_graphql_request
Send any GraphQL query or mutation to Railway's API with your own variables. Covers every operation not individually typed (introspect the schema at railway.com/graphiql).
Railway: Delete Custom Domain
railway_delete_custom_domain
Detach a custom domain from its service. Traffic to that hostname stops being served.
Railway: Delete Environment
railway_delete_environment
Delete an environment and every service instance, variable, and volume instance in it. Destructive.
Railway: Delete Project
railway_delete_project
Permanently delete a project and everything in it. Destructive and irreversible.
Railway: Delete Railway Domain
railway_delete_service_domain
Remove a Railway-managed service domain.
Railway: Delete Service
railway_delete_service
Delete a service from its project. Destructive and irreversible.
Railway: Delete Variable
railway_delete_variable
Delete a single environment variable.
Railway: Delete Volume
railway_delete_volume
Delete a volume and all data stored on it. Destructive and irreversible.
Railway: Delete Volume Backup
railway_delete_volume_backup
Delete a volume backup. Destructive and irreversible.
Railway: Deploy Service
railway_deploy_service
Trigger a new deployment of a service in an environment, optionally pinned to a specific commit SHA. Returns the new deployment id.
Railway: Disconnect Service Source
railway_disconnect_service_repo
Disconnect a service from its GitHub repo / image source.
Railway: Lock Volume Backup
railway_lock_volume_backup
Lock a backup so retention policy will not expire it.
Railway: Redeploy Deployment
railway_redeploy_deployment
Redeploy a specific past deployment by id.
Railway: Redeploy Service
railway_redeploy_service
Redeploy a service instance's current deployment (same code, fresh container).
Railway: Remove Deployment
railway_remove_deployment
Remove a deployment record and its resources. Destructive.
Railway: Rename Environment
railway_rename_environment
Rename an environment.
Railway: Rename Volume
railway_update_volume
Rename a volume.
Railway: Restart Deployment
railway_restart_deployment
Restart a running deployment's containers without rebuilding.
Railway: Restore Volume Backup
railway_restore_volume_backup
Restore a volume instance from one of its backups. Overwrites current volume data.
Railway: Rollback Deployment
railway_rollback_deployment
Roll the service back to this deployment. Use with Railway: List Deployments (successful_only) to pick the last known-good build.
Railway: Set Variable
railway_upsert_variable
Create or update a single environment variable. Omit service_id to set a shared environment variable. Triggers a redeploy unless skip_deploys is true.
Railway: Set Variables (Bulk)
railway_upsert_variables
Create or update many variables in one call from a flat JSON object. Set replace=true to make the supplied set authoritative (removes anything not listed).
Railway: Stop Deployment
railway_stop_deployment
Stop a running deployment. The service goes offline until it is redeployed.
Railway: Transfer Project
railway_transfer_project
Transfer a project to another workspace.
Railway: Trigger Environment Deploy
railway_trigger_environment_deploy
Fire an environment's deploy triggers. The API equivalent of pressing Deploy in the Railway dashboard.
Railway: Update Custom Domain
railway_update_custom_domain
Change the container port a custom domain routes to.
Railway: Update Project
railway_update_project
Update a project's name, description, visibility, or PR-deploy setting.
Railway: Update Service
railway_update_service
Rename a service or change its icon.
Railway: Update Service Settings
railway_update_service_instance
Update a service's per-environment settings: start/build command, root directory, healthcheck, region, replicas, restart policy, cron schedule, Dockerfile path.
Railway: Update Volume Mount Path
railway_update_volume_mount
Change the path a volume is mounted at inside the container. Triggers a redeploy of the attached service.
Using the integration
On the automation canvas
Railway nodes chain with every other node: a failed deployment can create an assigned task in Mattering Productivity, an AI step can summarize build logs before anyone reads them, and a rollback can run automatically between the two. Deploy, rollback, restart, and delete nodes act on live infrastructure, so put a condition or an approval step in front of the ones you would not want fired by accident.
From AI assistants over MCP
Every node speaks MCP, the open protocol for connecting AI assistants to tools. Claude, ChatGPT, and Matter can list projects, read logs, set variables, and trigger deploys through the same nodes your workflows use.
Resolving Railway ids
Almost every node takes a UUID rather than a name. [[Railway: List Workspaces]] gives you workspace ids, [[Railway: List Projects]] gives you project ids, and [[Railway: Get Project]] returns a project's services and environments in one call, which is the usual way to turn a project id into the service id and environment id a deploy or variable node needs.
Handling variables and secrets
[[Railway: Get Variables]] and [[Railway: Get Deployment Variables]] return real values, including database URLs and API keys in plain text. Use them only where a workflow genuinely needs the value, and do not forward their output into a logging, message, or notification node. When writing a value with [[Railway: Set Variable]], reference a stored credential rather than pasting the secret into the workflow itself.
Beyond the typed nodes
Each typed node also accepts an extra variables object that is merged into the GraphQL variables before sending, so input-object fields the node does not expose individually are still reachable. For anything the typed set does not cover at all, [[Railway: Custom GraphQL Request]] is the advanced option: run any Railway GraphQL operation with your own document and variables. Railway supports schema introspection, so you can look up the exact operation first.
Troubleshooting
Every node returns an authentication or not-authorized error
A node failed but the response says HTTP 200
A node with no obvious problem still returns not authorized
A field is rejected as the wrong type
List Projects returns edges and node instead of a plain list
Requests start failing after a long loop over logs or deployments
A setting you need is not a field on the node
Related
The Railway MCP
What connecting Railway unlocks for AI agents and automations, with common uses and FAQs.
More guides
All Automations documentation
Every integration guide, plus how connectors, credentials, and workflows fit together.
Railway is a trademark of its respective owner. Mattering uses platform names to identify the services these integrations connect to; no endorsement or affiliation is implied.