Overview
Gradial integrates with Salesforce Marketing Cloud to enable content synchronization with CloudPages, email templates, and content blocks. This integration allows you to push content updates directly to your Marketing Cloud assets and leverage your existing content infrastructure within Gradial workflows.Authentication Method
Salesforce Marketing Cloud uses OAuth 2.0 with the Server-to-Server (Client Credentials) flow for API authentication. This method requires creating an Installed Package in Marketing Cloud with appropriate permissions.OAuth 2.0 Server-to-Server
Required for all SFMC integrations. This authentication method uses a Client ID and Client Secret from an Installed Package to obtain access tokens. Gradial automatically handles token refresh as needed.Prerequisites
Before starting the integration, ensure you have:- Admin access to your Salesforce Marketing Cloud account
- Permission to create Installed Packages
- Your Marketing Cloud subdomain (found in your account URL)
- Knowledge of which Business Units you want to integrate
Integration Steps
Step 1: Create an Installed Package in Marketing Cloud
What this step does: Creates the OAuth application that generates the credentials Gradial will use to authenticate.- Log in to Salesforce Marketing Cloud
- Navigate to Setup (gear icon) → Platform Tools → Apps → Installed Packages
- Click New to create a new package
- Enter the package details:
- Name:
Gradial - Description:
Gradial CMS Integration
- Name:
- Click Save
Step 2: Add a Server-to-Server API Component
What this step does: Configures the authentication component and assigns the necessary permissions.- In the newly created package, click Add Component
- Select API Integration
- Choose Server-to-Server as the integration type
- Click Next
- Configure the required permissions (scopes):
| Category | Permission | Required |
|---|---|---|
| Content Builder | Read, Write | Yes |
| Saved Content | Read, Write | Yes |
| Documents and Images | Read, Write | Yes |
| CloudPages | Read, Write | Yes |
| Data Extensions | Read | Optional |
| Tracking Events | Read | Optional |
- Click Save
Note: Grant only the permissions required for your use case. You can modify permissions later if needed.
Step 3: Retrieve OAuth Credentials
What this step does: Obtains the Client ID, Client Secret, and authentication endpoints that Gradial needs.- In the Installed Package details page, locate the Server-to-Server component
- Note the following values:
- Client ID
- Client Secret
- Authentication Base URI (e.g.,
https://YOUR_SUBDOMAIN.auth.marketingcloudapis.com) - REST Base URI (e.g.,
https://YOUR_SUBDOMAIN.rest.marketingcloudapis.com) - SOAP Base URI (e.g.,
https://YOUR_SUBDOMAIN.soap.marketingcloudapis.com)
Important: Keep the Client Secret secure. If you navigate away from this page, the Client Secret will be hidden. You can regenerate it if needed, but this will invalidate any existing integrations using the old secret.
Step 4: Configure the Integration in Gradial
What this step does: Connects Gradial to your Salesforce Marketing Cloud instance using the credentials obtained in previous steps.- In Gradial, navigate to Settings → Integrations
- Click on Salesforce Marketing Cloud under Add Integration
- Fill in the integration form:
- Integration Name: A friendly name to identify this connection (e.g.,
My SFMC Instance) - SFMC Auth Base URL: Enter your Authentication Base URI from Step 3 (e.g.,
https://mcXXXXXX.auth.marketingcloudapis.com) - Authentication Type: Select OAuth 2.0 Client Credentials
- Client ID: Enter the Client ID from Step 3
- Client Secret: Enter the Client Secret from Step 3
- Integration Name: A friendly name to identify this connection (e.g.,
- Click Save
Testing the Integration
After saving the integration, Gradial will automatically attempt to authenticate with your Marketing Cloud instance. You can verify the connection status in the Integrations list.Expected Behavior
- Success: The integration shows a “Connected” status with a green indicator
- Authentication Error: Verify your Client ID, Client Secret, and Subdomain are correct
- Permission Error: Verify the Installed Package has the required scopes enabled
Common Issues
| Issue | Cause | Solution |
|---|---|---|
invalid_client error | Incorrect Client ID or Secret | Verify credentials in the Installed Package |
unauthorized error | Package lacks required permissions | Add missing scopes to the API component |
invalid_request error | Incorrect subdomain or Auth URI | Check the Authentication Base URI in your package |
insufficient_privileges error | MID doesn’t match package assignment | Verify the MID and Business Unit access |
API Permissions Reference
The following table details the SFMC API scopes and their use in Gradial:| Scope | Required | Purpose |
|---|---|---|
| Content Builder - Read/Write | Yes | Access and modify content blocks and assets |
| Saved Content - Read/Write | Yes | Manage saved content items |
| Documents and Images - Read/Write | Yes | Upload and manage media assets |
| CloudPages - Read/Write | Yes | Publish content to CloudPages |
| Data Extensions - Read | Optional | Access subscriber data for personalization |
| Tracking Events - Read | Optional | View engagement analytics |
Multi-Business Unit Configuration
If your organization uses multiple Business Units, you have two options: Option 1: Parent-Level Access Create one Installed Package at the Parent Business Unit level with access to all child Business Units. Use the Parent MID when configuring Gradial. Option 2: Business Unit-Specific Access Create separate Installed Packages for each Business Unit that requires isolation. Configure multiple integrations in Gradial, one for each Business Unit.Recommendation: For most organizations, Parent-Level Access provides the flexibility to manage content across all Business Units from a single integration.