SAP C4C Agent
This page provides detailed configuration instructions for the SAP C4C Agent, which enables integration with SAP CRM for lead management, contact tracking, account management and more.

Overview
Search and browse SAP C4C entities, records, and fields through Blockbrain
Create and update records across any queryable or writable C4C OData entity (Accounts, Contacts, Leads, Opportunities, Activities, Service Requests/Tickets, and customer-specific extension entities)
Automatically resolve standard and custom OData collection names from plain-language descriptions using the C4C
$metadatadocumentList, filter, and analyze CRM and service records by status, owner, date, account, or any available field
Support for both standard SAP C4C entities and customer-extended (KUT / SDK) entities

Prerequisites
Complete the general setup steps from the main AI Agents page
Ensure users have active SAP C4C accounts with the relevant business role and access-restriction context
Verify your C4C tenant exposes the standard OData endpoint (
/sap/c4c/odata/v1/c4codataapi/) and that OAuth 2.0 is enabledA C4C administrator with permission to register OAuth 2.0 Clients via Application and User Management β OAuth 2.0 Client Registration
How SAP Authentication Differs from Other Agents
SAP is not a browser-redirect OAuth. Every other Blockbrain agent (Salesforce, Outlook, Google, Atlassian, β¦) uses OAuth 2.0 Authorization Code β the user clicks Connect, gets redirected to the vendor's login page through
https://nango.theblockbrain.ai/oauth/callback, consents, and is redirected back with an access token.SAP integrations work differently: there is no browser redirect, no consent screen, and no callback URL is required on the SAP side. Instead, a SAP administrator pre-issues credentials in the SAP tenant, and those credentials are pasted into the Blockbrain Connect UI once. The agent then authenticates server-to-server.
The SAP C4C Agent supports two non-interactive authentication flows. Pick the one your SAP C4C tenant is configured for:
OAuth 2.0 β Client Credentials (default)
Most production C4C integrations. A single dedicated technical/communication user backs the connection; permissions are governed by that user's C4C business role.
Tenant URL, Client ID, Client Secret
OAuth 2.0 β SAML 2.0 Bearer Assertion (opt-in)
When your security policy mandates per-user assertion-based auth (e.g. you've issued an X.509 cert per user via an IdP and want token issuance scoped to a specific business user).
Tenant URL, Client ID, Company ID, Base64-encoded SAML 2.0 Bearer Assertion (signed locally with the X.509 private key registered against the OAuth Client)
The configuration below assumes OAuth 2.0 Client Credentials, which matches the pattern used by Blockbrain's existing SAP integrations (e.g. SAP Concur). If your tenant is set up for SAML 2.0 Bearer Assertion instead, see the SAML 2.0 Bearer Assertion (Alternative) section below.
SAP C4C OAuth 2.0 Client Registration
Required OAuth Configuration
Configure the following when registering your SAP C4C OAuth 2.0 Client:
Issue Settings β Method
Client Credentials
Required for the default flow. Selects OAuth 2.0 grant type client_credentials
Token Lifetime
Default (3600 s) or per your security policy
Blockbrain transparently refreshes within Nango
Token Endpoint
https://my{tenant-id}.crm.ondemand.com/sap/bc/sec/oauth2/token
Derived from your tenant URL β you do not need to enter this anywhere
Scope
(left empty by default β see note)
C4C resolves authorisations from the business role assigned to the technical user behind the OAuth Client, not from OAuth scope strings. [TODO confirm] whether Botticelli requires any explicit scope strings for the C4C tool.
Binding to a User
A dedicated technical/communication user
The OAuth Client must be bound to a real C4C business user. Its business role determines what the agent can read and write
Scope clarification: SAP C4C does not publish a fixed list of OAuth scope strings the way Salesforce does. With the Client Credentials flow, authorisation is delegated to the business role and access restriction of the technical user bound to the OAuth Client β the C4C OAuth Client itself has no scope strings beyond what the work-centre assignments of that user grant. Blockbrain therefore does not ask you to paste a scope list during configuration.
[TODO confirm with Blockbrain Technical PM β the Botticelli config may still expose an optional scope field for tenants that have custom scopes registered.]
Creating the SAP C4C OAuth 2.0 Client
Log in to SAP Cloud for Customer as an administrator
Open the Application and User Management work centre β OAuth 2.0 Client Registration (On older tenants this lives under Administrator β General Settings β OAuth 2.0 Client Registration.)
Click New to create a new OAuth 2.0 Client
Fill in the form:
Description / Client Name:
BlockbrainIssue Settings β Method: Client Credentials
Issue Settings β Token Lifetime (seconds): leave at default unless your policy requires shorter
Binding β User: select the dedicated technical/communication user this connection should act as. (Create one first via Business Users if it doesn't already exist.) The user's Business Role determines what entities and fields the agent can read and write
No Redirect URI is required for Client Credentials. Leave the Redirect URI field empty unless your tenant explicitly enforces a value
Click Save β and note SAP's warning that the Client Secret will only be displayed once
Click Show Secret (or Reset Secret) and copy the generated Client Secret β store it securely for the next step
From the same screen, copy the Client ID (auto-generated by SAP)
Note on tenant URL: Your C4C tenant URL follows the pattern
https://my{tenant-id}.crm.ondemand.comβ e.g.https://my300001.crm.ondemand.com. You will need this base URL during the Blockbrain configuration step; it is used both as the OData host and to derive the OAuth token endpoint.
Note on the redirect URL: Because the Client Credentials flow has no browser redirect, the standard Blockbrain callback
https://nango.theblockbrain.ai/oauth/callbackis not required on the SAP side and you do not need to whitelist it in C4C.
Retrieving your Credentials
After saving the OAuth 2.0 Client in C4C:
Open the newly-created client from the OAuth 2.0 Client Registration list
Copy the Client ID (visible at the top of the form)
Click Show Secret to reveal the Client Secret β copy it immediately, as SAP only displays the secret once per generation
Note the Tenant URL (
https://my{tenant-id}.crm.ondemand.com) β Blockbrain will derive the OAuth token endpoint (/sap/bc/sec/oauth2/token) from this automatically[TODO confirm derivation logic with Botticelli config]
Important: After creating a new OAuth Client in SAP C4C, it can take a few minutes for the configuration to propagate. If the connection fails immediately after activation, wait briefly and try again.
[TODO confirm typical propagation window for C4C]
SAP C4C Agent Configuration in Blockbrain

Connection Details
Auth flow: OAuth 2.0 Client Credentials (no browser redirect, no end-user consent)
Redirect URL on the SAP side: not required
Tenant URL:
https://my{tenant-id}.crm.ondemand.comCredentials you'll paste into Blockbrain:
Tenant URL / Host
Client ID
Client Secret
Behind the scenes: Blockbrain (via Nango) issues a server-to-server
client_credentialstoken request tohttps://my{tenant-id}.crm.ondemand.com/sap/bc/sec/oauth2/tokenand stores the resulting access token; tokens are refreshed automatically as they expire
Configuration Steps
Access Agent Settings:
Navigate to your Blockbrain admin panel
Go to Admin > Agents > Tools
Find SAP C4C Tools (or SAP Tools) and enable the toggle switch
[TODO confirm exact UI label]Click Install (or the gear icon for configuration)
Enter the SAP C4C connection details:
Tenant URL / Host: paste your C4C base URL, e.g.
https://my300001.crm.ondemand.com[TODO confirm field name in Botticelli]Client ID: paste the Client ID from the C4C OAuth 2.0 Client Registration screen
Client Secret: paste the Client Secret from C4C (use the eye icon to toggle visibility)
Additional Configuration (Optional):
Configure custom key-value pairs for specific organisational requirements (e.g. a non-default OData service path if your tenant uses a tailored extension service)
[TODO confirm whether the agent supports custom OData service paths]Set up any org-specific record-access restrictions as needed
Save Configuration:
Click Save to apply all settings
Wait for the confirmation message
No "Connect" pop-up window. Unlike the Outlook / Salesforce / Google flows, you will not see a browser pop-up bouncing you to a SAP login screen. The first time the agent calls C4C, Blockbrain exchanges the client credentials for an access token in the background and proceeds.
SAML 2.0 Bearer Assertion (Alternative)
If your C4C tenant is configured for OAuth 2.0 with the SAML 2.0 Bearer Assertion grant type instead of Client Credentials, the setup mirrors how Blockbrain handles SAP SuccessFactors today:
In C4C, register your OAuth 2.0 Client with Issue Settings β Method = SAML 2.0 Bearer Assertion and upload the X.509 public certificate paired with the private key you'll use to sign assertions
Generate a 2048-bit RSA private key and self-signed X.509 certificate locally and register the certificate with the OAuth Client:
For each authenticating user, build a Base64-encoded SAML 2.0 Bearer Assertion signed with
private.pem. The assertion'srecipientmust behttps://my{tenant-id}.crm.ondemand.com/sap/bc/sec/oauth2/tokenand the assertion must reference the C4C business user that the agent should act asIn Blockbrain, paste:
Tenant URL / Host
Client ID
Company / Business User ID
[TODO confirm exact field name]SAML 2.0 Bearer Assertion (Base64)
Save. Blockbrain (via Nango's two-step flow) POSTs the assertion to the C4C token endpoint with
grant_type=urn:ietf:params:oauth:grant-type:saml2-bearerand stores the resulting token
When to choose this flow: Pick SAML 2.0 Bearer when (a) you must scope agent actions to a specific named business user rather than a single technical user, or (b) your IT policy disallows the Client Credentials grant for SAP integrations. Otherwise Client Credentials is simpler to operate.
Testing the SAP C4C Agent
Verification Steps
Connection Test:
Use Blockbrain's built-in connection testing tool
Verify that the first token request to
/sap/bc/sec/oauth2/tokensucceeds and a token is stored
Record Access:
Have a test user prompt the agent to list records for a known entity (e.g. Accounts, Contacts, or Opportunities)
Verify record content retrieval (e.g. reading the fields of a specific lead or ticket)
Create Functionality:
Test creating a new record in a safe/test entity (e.g. a sandbox Lead)
Verify that read-only fields are excluded from the payload
Confirm the new record appears in C4C
Update Functionality:
Test updating an existing record field (e.g. an opportunity stage or contact phone number)
Confirm the change is reflected directly in C4C
Entity Discovery:
Ask Blockbrain to identify an entity by a label (e.g. "Service Tickets" or "Sales Quotes")
Verify the agent correctly resolves it to the C4C OData collection name (e.g.
ServiceRequestCollection,SalesQuoteCollection)Confirm the resolved name is used in a subsequent operation
Common Integration Use Cases
Lead & Contact Management
Lead Search: Find and filter leads by name, status, account, qualification level, or creation date
Contact Lookup: Retrieve contact details for any account or individual
Record Creation: Add new leads or contacts directly from a Blockbrain conversation
Account & Opportunity Management
Account Research: Pull full account details, related contacts, and open opportunities
Pipeline Tracking: List opportunities by sales phase, expected close date, or owner
Deal Updates: Update opportunity sales phases, expected revenue, or close dates without leaving the chat
Service & Ticketing
Ticket Triage: Retrieve open service tickets by priority, processor, or service category
Ticket Updates: Change ticket status, add notes, or reassign the responsible processor from chat
Activity Logging: Create appointments, phone-call records, or tasks tied to accounts or tickets
CRM Data Analysis
Record Summaries: Get structured summaries of any C4C record
Field Extraction: Extract specific field values across multiple records
Custom Entity Support: Query and manage tenant-specific extension entities (KUT / SDK) using plain-language descriptions
Troubleshooting
Authentication Issues
invalid_client on the very first request
Wrong Client ID or Client Secret
Re-copy the Client ID and Client Secret from the C4C OAuth 2.0 Client Registration screen. Remember the secret is only shown once β re-issue if you lost it
unsupported_grant_type
OAuth Client created with the wrong issue method
In C4C, edit the OAuth 2.0 Client and set Issue Settings β Method = Client Credentials (or SAML 2.0 Bearer Assertion for the alt flow)
invalid_request: missing user binding
The OAuth Client is not bound to a business user
In C4C, open the OAuth Client and set the Binding β User to a valid technical/communication user
Connection test fails immediately after client creation
C4C propagation delay
Wait a few minutes after creating or editing the OAuth Client, then retry [TODO confirm typical delay]
403 Forbidden on every request despite valid token
The bound technical user lacks the required business role
In C4C, edit the technical user's Business Role and assign the work-centre views the agent needs (Accounts, Opportunities, Service, etc.)
401 Unauthorized after working fine for a while
OAuth Client secret rotated or expired
Regenerate the Client Secret in C4C, then update the Client Secret in Blockbrain and click Save
Why isn't there a browser pop-up?
Unlike Salesforce or Outlook, SAP C4C uses a server-to-server token grant. There is no OAuth consent screen, no user redirect, and no https://nango.theblockbrain.ai/oauth/callback whitelisting on the SAP side. If you are looking for a "Sign in with SAP" button after pressing Save, that's expected behaviour β the connection is already live as soon as the first token request succeeds.
Record Access Errors
403 Forbidden / no records returned
Bound user lacks business role / access context
Confirm the bound technical user can view the record directly in the C4C UI; check their business role and access restriction
Entity not visible
OData service not enabled
Verify the relevant OData service is published in Communication Arrangements for the tenant
Intermittent access issues
Wrong OAuth Client
Verify the OAuth Client used by the agent is bound to the correct technical user
400 Bad Request on filter
Wrong OData operator
C4C OData v2 only supports a subset of OData filter operators β simplify the filter and retry
Field & Write Errors
Record creates with missing fields
Fields are read-only or determined
Blockbrain skips read-only fields β check field editability in C4C Adaptation mode for the relevant view
No creatable fields provided error
All supplied fields are read-only
Supply at least one writable field; check the entity's $metadata for sap:creatable="true" annotations
Update fails silently
Field-level authorisation block
Confirm the bound user's business role permits editing the target field on that entity
Mandatory field missing on create
Required field not provided
Inspect the $metadata to identify all Nullable="false" properties on the entity and supply them
SAML 2.0 Bearer Assertion-Specific Issues
(Only applies if you chose the SAML 2.0 Bearer Assertion flow.)
invalid_assertion / invalid_signature
Assertion was not signed with the X.509 private key registered against the OAuth Client
Re-sign the assertion with the correct private.pem; confirm the cert.pem registered in C4C matches that key
assertion expired
Assertion's NotOnOrAfter is in the past
Regenerate the assertion immediately before pasting it into Blockbrain β assertion lifetimes are short by design
subject not found
The NameID in the assertion does not match any C4C business user
Check the nameIdentifier in your assertion-generation script β it must be a valid C4C user ID
Security and Compliance
Data Protection
Record Security: All SAP C4C data is handled according to Blockbrain's security policies
Field Privacy: Field-level access respects the C4C business role and access-restriction model
Token Security: OAuth tokens are securely stored and encrypted in Nango β credentials are never exposed to end users
Secret Hygiene: The C4C OAuth Client Secret is stored encrypted; if it is ever leaked, rotate it in C4C and re-paste into Blockbrain
Compliance Considerations
GDPR Compliance: CRM record access and processing follows GDPR requirements
Data Retention: No SAP C4C record content is permanently stored by Blockbrain β data is processed in real-time
Audit Logging: All SAP C4C Agent activities are logged for compliance reporting on the Blockbrain side. In addition, every OData call appears in the C4C audit log under the bound technical/communication user β your C4C admin can trace every action the agent takes back to that single principal
Access Control
Technical-user model (Client Credentials): every agent call inherits the business role and access restriction of the technical user bound to the OAuth Client β no privilege escalation is possible. Pick the user's role carefully β it sets a hard ceiling on what the agent can ever do
Per-user model (SAML 2.0 Bearer Assertion): every agent call is scoped to the named business user identified in the assertion β best for tenants that need per-user accountability in audit logs
Entity-Level Security: Respects C4C work-centre and view assignments
Field-Level Security: Read-only and access-restricted fields are automatically identified and excluded from write operations
Next Steps
After successful SAP C4C Agent configuration:
User Training: Share the SAP C4C Agent user guide with end users
Permission Review: Regularly audit the business role of the bound technical user (Client Credentials) or the IdP-issued certificates (SAML Bearer) to ensure they remain appropriate
Integration Monitoring: Monitor the OAuth connection for ongoing functionality β particularly Client Secret expiry and X.509 certificate validity
Feature Adoption: Encourage teams to leverage lead management, pipeline tracking, ticket triage, and custom-entity capabilities
Support and Resources
For assistance with SAP C4C Agent configuration:
Blockbrain Support: Contact your Customer Success Manager for feature-specific help
SAP Documentation: Reference the SAP Cloud for Customer OData API documentation and the SAP C4C OAuth 2.0 Client Registration help topic
[TODO replace with the current C4C OAuth help link]for detailed permission informationSAP C4C Administrators: For tenant-level OAuth client policies, communication-user provisioning, and business-role assignment, consult your SAP C4C Administrator
Last updated

