Many PSA and IT-service tools don't have a ready-made n8n node. This guide shows you how to give an n8n AI Agent access to any custom API — first by checking for a community node, and if none exists, by wiring the API up yourself with the HTTP Request Tool or the Call n8n Workflow Tool. It's written for MSP and IT-service teams building agents in the Awesomate Hub.
Step 1: Check for a community node first
Before you build anything custom, check whether someone has already done the work. A community node is an n8n integration built and published by a third party (rather than by n8n itself) as an npm package. When one exists for your service, it gives you a clean, no-code interface with operations and authentication already configured — far less effort than hand-building API calls.
How to find a community node
- Search inside n8n. On the canvas, open the nodes panel and search for the service by name (for example, "ConnectWise"). If a verified community node exists, it appears under a More from the community section at the bottom of the panel. This in-editor discovery requires n8n version 1.94.0 or later.
- Browse the n8n integrations directory. Visit n8n.io/integrations and use the community nodes filter.
- Search npm directly. Go to npmjs.com/search?q=keywords:n8n-community-node-package to see every published community node, including unverified ones that won't show up in the editor.
How to install a community node
The path depends on how you run n8n.
- Verified nodes (n8n Cloud and self-hosted): Find the node in the nodes panel under More from the community, open it, and select Install. This makes it available to everyone on your instance. Only an instance owner or admin can install.
- Any node (self-hosted only): Go to Settings > Community nodes, select Install, and enter the npm package name (for example,
n8n-nodes-example). Unverified community nodes can only be installed on self-hosted instances — n8n Cloud restricts you to verified nodes.
The benefits and the risks
Community nodes save significant time and remove the need to manage raw API calls and authentication yourself. But because they run as code inside your n8n instance, there are real risks to weigh:
- System access: A community node has full access to the machine n8n runs on and can perform any action, including malicious ones.
- Data access: Any community node you use can read the data flowing through your workflows.
- Breaking changes: Node authors can ship updates that break existing functionality. Upgrade with care.
n8n inspects and vets the nodes it marks as verified against a set of data and system security requirements, which is why verified nodes are the only ones allowed on n8n Cloud. For sensitive MSP environments, prefer verified nodes, review the source of unverified ones before installing, and keep an eye on version updates. If you ever need to lock things down on self-hosted n8n, you can disable community nodes entirely with the N8N_COMMUNITY_PACKAGES_ENABLED environment variable.
Step 2: No community node? Connect the API directly
If there's no community node for your tool — which is common for PSA platforms like ConnectWise Manage — you can still give your AI Agent full access by calling the API yourself. You'll use the service's own API documentation to build the requests. There are two main approaches.
Option A: The HTTP Request Tool
The HTTP Request Tool lets the AI Agent make a single API call to a specific endpoint. It's the fastest way to expose one or two operations (for example, "look up a ticket" or "create a contact") to your agent.
- Open your AI Agent node and select the + on the tool connector to add a tool. Choose HTTP Request.
- Set the Method and URL to match the endpoint from the API documentation (for example, a GET request to the ConnectWise
/service/ticketsendpoint). - Configure authentication. Set the authentication option to use a credential type, then attach the appropriate credential — typically HTTP Header Auth for an API key, or HTTP Bearer / a predefined credential for token-based auth. Create the credential once under your credentials list and reuse it. Verify the same request works in a standalone HTTP Request node first, so you know the credential is correct before handing it to the agent.
- Add any query parameters, headers, or a body the endpoint needs, again following the API docs.
- Write a clear tool description (see Step 3). This is how the agent knows when and how to use the tool.
- For values the agent should fill in dynamically — such as a ticket ID or a search term — use the
$fromAI()function in the relevant field. This lets the model supply the parameter at runtime instead of you hard-coding it.
Option B: The Call n8n Workflow Tool
The Call n8n Workflow Tool lets the agent trigger a separate n8n workflow (a sub-workflow) and use its result. Reach for this approach when a single HTTP call isn't enough — for example, when you need to make several chained API requests, transform or filter the response, handle pagination, or add error handling before returning a clean result to the agent.
- Build a sub-workflow that performs the API work using one or more standard HTTP Request nodes, starting from an Execute Sub-workflow Trigger.
- In your main workflow, add the Call n8n Workflow Tool to the AI Agent and point it at that sub-workflow.
- Define the inputs the agent should pass in, and write a tool description that explains what the workflow does and when to call it.
Which one should you use?
- Use the HTTP Request Tool for simple, single-endpoint operations where the response is already in a usable shape.
- Use the Call n8n Workflow Tool when the task needs multiple steps, data processing, or reusable logic you'd rather keep in one place and maintain separately.
Step 3: Write effective tool descriptions
Whichever approach you choose, the tool description is what tells the AI Agent what the tool does, when to use it, and what inputs it expects. A vague description leads to the agent calling the wrong tool, or calling it with badly formatted parameters. Write descriptions that are specific and explicit.
A good tool description should:
- State plainly what the tool does — for example, "Looks up open service tickets in ConnectWise Manage for a given company."
- Describe each parameter the agent must supply, including its format (for example, "companyId must be the numeric ConnectWise company identifier").
- Note any constraints, such as required fields or the expected shape of an array or JSON value.
If the agent keeps formatting a parameter incorrectly, tighten the description with an explicit example of the expected format.
Step 4: Use an LLM to build your HTTP Request nodes from API docs
Translating API documentation into a correctly configured HTTP Request node — method, URL, headers, query parameters, and request body — is fiddly and error-prone. A practical shortcut is to ask a capable LLM to do the translation for you. You can chat with a model like Claude (Claude Opus is a strong choice) or OpenAI Codex directly inside n8n by adding an OpenRouter Chat Model to a chat workflow, which gives you access to many models through one credential.
Paste the relevant section of the API documentation into the model and ask it to produce the exact configuration you need. Below are prompt templates you can adapt.
Prompt template: configure a single HTTP Request node
"I'm building an HTTP Request node in n8n to call the following API endpoint. Based on the documentation below, tell me exactly how to configure the node: the HTTP method, the full URL, any required headers, query parameters, and the JSON request body. Note which values should be static and which should be supplied dynamically by an AI agent. Here is the documentation: [paste the endpoint docs]."
Prompt template: turn an endpoint into an AI Agent tool
"I want to expose the following API endpoint as a tool for an n8n AI Agent using the HTTP Request Tool. Using the documentation below, give me: (1) the method and URL, (2) the headers and authentication approach, (3) which parameters the agent should fill in dynamically and how to describe each one, and (4) a clear, specific tool description the agent can use to decide when to call it. Documentation: [paste the endpoint docs]."
Prompt template: build a multi-step sub-workflow
"I need an n8n sub-workflow that performs the following task against this API: [describe the task, e.g. 'find a company by name, then list its open tickets']. Using the documentation below, outline the HTTP Request nodes I need in order, the method, URL, headers, and body for each, and how to pass data between them. Documentation: [paste the relevant endpoints]."
Always sanity-check the model's output against the live API documentation and test the request before connecting it to a production agent. Treat the LLM as a fast first draft, not the final word.
Summary
- Check for a verified community node first — it's the easiest route, but weigh the system and data access risks.
- If there's no node, use the HTTP Request Tool for single calls or the Call n8n Workflow Tool for multi-step logic.
- Write specific tool descriptions so the agent calls the right tool with correctly formatted inputs.
- Lean on an LLM (Claude Opus or OpenAI Codex via OpenRouter) to translate API docs into working HTTP Request nodes.
Need a hand connecting a specific PSA or custom API to your agent? Reach out to us at hello@awesomate.ai.