SAP Business One and Marketo integration
SAP Business One runs the P2P and order-to-cash processes for small-to-midsize companies. Marketo runs B2B lead nurturing and campaign management. Connecting the two means your finance team and marketing team work from the same customer and opportunity data. New prospects entered in Marketo sync to SAP Business One as potential business partners, and closed opportunities in Marketo feed back into SAP Business One's sales order pipeline without manual handoff. ml-connector handles the on-premise network complexity on the SAP side and keeps both systems in sync on a schedule that fits your sales cycle.
What moves between them
Business Partner records flow from SAP Business One to Marketo as Leads and Companies on a polling schedule aligned with your sales cycle. Opportunity records flow from Marketo back to SAP Business One, mapped to the corresponding Business Partner so the sales pipeline is visible in the ERP alongside order history and credit status. Updates to Company fields in Marketo (industry, revenue, location) sync back to the Business Partner in SAP Business One so customer master data stays aligned. The integration respects Marketo's read-only state on Opportunities when a CRM sync is active.
How ml-connector handles it
ml-connector accepts the customer's SAP Service Layer base URL (since each instance has a different hostname and port) and maintains the B1SESSION token, requesting a new session before the 30 minute inactivity timer expires so authentication never fails mid-batch. It also stores the Marketo OAuth2 credentials and requests a fresh Bearer token before each batch of API calls. Both systems use polling on a schedule you define: ml-connector queries BusinessPartners from SAP Business One with an UpdateDate filter to find new and changed records, and queries Marketo Leads and Opportunities with an updatedAt filter to find changes since the last poll. Business Partner data maps to Marketo Leads or Companies depending on the partner category in SAP Business One. When Marketo Opportunities reference a matching SAP Business One Business Partner, ml-connector creates or updates a corresponding PurchaseOrder or SalesOrder in SAP Business One so the deal appears in order entry. Every record carries a full audit trail and can be replayed if a network error or API timeout occurs.
A real-world example
A mid-sized B2B software reseller runs SAP Business One for order management, invoicing, and inventory, and Marketo for lead nurturing and deal progression. Before the integration, the sales director entered new deals into Marketo, but the finance team had to manually check SAP Business One for existing customer history, credit status, and shipping address before accepting the order. Weeks later, closed deals sat in Marketo with no visibility to fulfillment. With SAP Business One and Marketo connected, new prospects in Marketo sync to SAP Business One as Business Partners, and closed opportunities automatically create orders in SAP Business One. The finance team now has real-time visibility of what sales promised, and customer master data stays consistent across both systems.
What you can do
- Sync SAP Business One BusinessPartners to Marketo as Leads and Companies, keeping prospect data aligned between the ERP and the marketing platform.
- Sync Marketo Opportunities back to SAP Business One as sales orders, so the deal pipeline is visible in order entry alongside customer history and credit limits.
- Manage SAP Business One session tokens automatically, handling 30 minute inactivity timeouts so authentication never fails mid-integration.
- Poll both systems on a schedule tied to your sales cycle, with duplicate detection via Document Number and Change Tracking Date filters.
- Track every record change in a full audit trail and replay failed syncs without data loss or duplication.
Questions
- Which records move from SAP Business One to Marketo and which direction for Opportunities?
- BusinessPartners from SAP Business One become Leads and Companies in Marketo. Opportunities flow the opposite direction: from Marketo back into SAP Business One as sales orders so the ERP reflects what sales has committed. Company and Business Partner master data synchronizes in both directions so neither system drifts.
- Why does ml-connector need the full SAP Service Layer URL for each customer instead of a global endpoint?
- SAP Business One is deployed on-premise or partner-hosted, and each customer instance has a unique hostname and port. SAP publishes no shared global endpoint, so ml-connector must accept the customer's specific Service Layer URL (for example, https://customer-server:50001/b1s/v2/) and maintain it per customer. This also means the customer must expose the Service Layer port to the connector's network or allow connector access through their firewall.
- How does the integration handle SAP Business One session tokens and Marketo OAuth2 separately?
- ml-connector stores the SAP Business One login credentials and maintains a B1SESSION token, requesting a fresh session before the 30 minute inactivity timeout expires so a batch never fails due to expired authentication. For Marketo, ml-connector stores the OAuth2 Client ID and Secret, exchanges them for a Bearer token with 3600 second max expiry, and refreshes before it expires. Both credential sets are encrypted at rest, and each is refreshed independently on its own schedule.
Related integrations
More SAP Business One integrations
Other systems that connect to Marketo
Connect SAP Business One and Marketo
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started