SAP
n8n and SAP OData: First Read and Connection Choices
Read an SAP OData service with n8n HTTP Request: service contracts, credentials, query parameters, pagination and connector selection.

If an SAP OData service is published and you are authorized to access it, n8n’s HTTP Request node can read its data. First verify the service URL, OData version, entity set and user permissions. Installing a community node does not publish SAP services automatically.
This guide describes a general OData read workflow. NeKu AI’s n8n-nodes-sap package uses its own SAP wrapper module; its installation is covered in the n8n SAP Connector guide. The examples below are illustrative, rather than a customer deployment or a completed SAP test.
HTTP Request or an SAP connector?
| Starting situation | Path to evaluate | What to verify |
|---|---|---|
| A specific SAP OData service is available | Use its service contract with n8n HTTP Request | URL, authentication, entity set, fields and pagination |
| You need a community node for generic OData operations | Review that package’s own documentation | V2/V4 support, operations, maintenance and n8n compatibility |
| You need report execution through the NeKu AI SAP module | NeKu AI n8n SAP Connector | SAP module, licensing, Execute Report contract and report permissions |
These are different products and connection contracts. HTTP Request provides query parameters and pagination settings. Features such as automatic service discovery in another OData node do not automatically apply to the NeKu AI package.
1. Prepare the SAP service contract
Ask the SAP owner for the test environment’s HTTPS service root, OData version, entity set name, permitted fields and authentication method. Where supported, the $metadata document helps you inspect the data model. OData V2 and V4 can differ in response formats and supported queries.
Choose a bounded first task: for example, reading only required fields from a few permitted records. Verify the test user’s read permissions separately. A reachable service does not prove access to all its data.
2. Configure n8n HTTP Request
Add a Manual Trigger, followed by HTTP Request:
- Method:
GET. - URL: The service and entity set address provided by your organization. Illustrative form:
https://sap-test.example.com/<service-root>/<entity-set>. - Authentication: The credential type actually supported by the service. HTTP Request offers options including Basic and OAuth2; confirm which method the target SAP service uses.
- Send Query Parameters: Enable this and enter supported parameters in separate fields.
- Response Format: Select JSON when requesting a JSON response, and check the content type returned by the service.
The example address is a placeholder. Keep passwords and tokens in the n8n credential record, rather than the URL, workflow text or a shared example.
3. Limit the first read
| Parameter | First test | Check |
|---|---|---|
$top | 5 | The record limit supported by the service |
$select | A comma-separated list of approved field names | Obtain names from metadata or the service contract |
$filter | A contract-compatible condition, only if needed | Field types, syntax and filter support |
Query parameters are not an authorization mechanism. SAP must enforce user permissions and data scope on the server. If a parameter is unsupported, inspect the returned error and service contract.
4. Check V2/V4 responses and pagination
Common JSON collection formats use d.results in OData V2 and value in V4. Inspect the actual response version, format and n8n node output before choosing the list consumed by the next step. Response envelopes can vary.
Receiving five records does not prove that you have received the entire collection. If the server returns a continuation URL, configure HTTP Request’s Pagination setting to use it. In V4 JSON this is commonly @odata.nextLink; in V2 it is __next. Verify its actual location in the response. Check the expected service origin and credential scope, and set page and time limits.
The n8n pagination documentation covers continuation URLs and parameter-based pagination. Do not replace a server-provided continuation URL with an arbitrary $skip calculation.
5. Compare the result with acceptance criteria
A first workflow can be Manual Trigger → HTTP Request → inspect approved fields → compare with the expected result. Design notifications, AI interpretation or writes to another system as separate steps after the read is verified.
| Observation | First check |
|---|---|
401 or 403 | Credentials, user, service access and data permissions |
404 | Service root, entity set and service publication |
400 | Query syntax, field names and supported parameters |
| Missing records | Server pagination, record limits and user scope |
| Timeout or service failure | Network, service health, time limits and controlled retries |
Do not turn failures into an empty “successful” result list. Evaluate retry behaviour for the read call. SAP writes, CSRF handling and idempotency design are outside this guide’s scope.
When should you choose the NeKu AI wrapper?
The public NeKu AI README describes Execute Report through /ZNEKUAI_WRAPPER_SRV/ReportSet. This is a different contract from a generic OData service URL and requires the commercial SAP-side module and an approved report. Use the real installation video, connector product page and demo checklist together when evaluating the option.
For the wider architecture decision, read the n8n, SAP Integration Suite and MCP comparison. Contact our team to evaluate an existing OData service and the wrapper approach against the same pilot task.