Marketo
Email MarketingConnect AI agents to Adobe Marketo Engage. Agents sync leads, manage list membership, run and schedule smart campaigns, work with assets and CRM objects, and run bulk import/export jobs.
What This Integration Enables
An agent can push new contacts from forms, CRMs, or spreadsheets into Marketo as leads, add and remove leads from static lists to drive nurture, and trigger or schedule a smart campaign with optional My-Token overrides. It reads lead activities like form fills, clicks, and opens into a flow for routing or reporting, and it creates, queries, and deletes custom-object and CRM records such as opportunities, companies, sales persons, and named accounts. The integration also reaches Marketo's asset layer, where the agent clones programs, emails, forms, and landing pages, manages folders, My-Tokens, smart lists, and snippets, and approves or unapproves them for go-live. It merges duplicate leads, runs bulk import and export jobs with status polling, and reacts to four real-time triggers: On New Lead, On New Activity, On Lead Field Change, and On Deleted Lead. That breadth is what lets a marketing ops team run Marketo as an orchestrated system rather than a series of manual clicks.
Without FlowRunner
With FlowRunner
Use Case Scenarios
Alert Sales on a New Lead
When the On New Lead trigger fires, the agent alerts the sales team through [Slack](/integrations/slack) Send Message To Channel and adds the lead to a follow-up list with [Google Sheets](/integrations/google-sheets) Add Row. Sales sees the lead in real time, and it is captured where the team can work it.
Load Event Registrants Into Nurture
The agent reads a list of registrants with [Google Sheets](/integrations/google-sheets) Get Rows, then calls Sync Leads and Add Leads to List to load them into a nurture program. A registration export becomes a running nurture track without a marketing coordinator loading rows.
Score Change Runs a Campaign
When the On Lead Field Change trigger fires on a lead-score field, the agent calls Request Campaign to run a smart campaign, then posts to the account owner through [Slack](/integrations/slack). Before a campaign that would send to a large audience, the agent pauses and asks marketing ops to approve the send.
Human-in-Loop Highlight
A smart campaign send is a one-way action at scale: once it runs, thousands of emails go out and cannot be recalled. On large audiences, that send is exactly the moment marketing ops wants a human gate. When the agent is about to call Request Campaign or Schedule Campaign against an audience above a size you set, it treats the send as a [human-in-the-loop](/concepts/human-in-the-loop/) step: it pauses, shows the campaign, the audience size, and any My-Token overrides, and routes the decision to marketing ops through Slack or email. Ops approves, and the campaign runs. Ops holds, and nothing sends. Small, targeted campaigns flow through automatically; the mass sends get a person's sign-off.
Agent Capabilities
116 actionsLeads
9- Sync Leads Creates or updates lead (person) records in bulk. Each record is a free-form object of Marketo field API names (e.g. email, firstName, company). Use this to push contacts into Marketo; choose Create or Update to upsert on the lookup field. Up to 300 records per call.
- Get Lead by ID Retrieves a single lead (person) by its Marketo ID. Use it after Get Leads or Sync Leads to fetch the full record. Optionally restrict the returned fields.
- Get Leads Searches leads by a filter field and a list of values (e.g. all leads matching a set of emails or IDs). Use this to find leads before acting on them. For date-window lookups ("leads changed since T"), use the On New Lead trigger, Get Lead Field Changes, or Bulk Lead Export - timestamp ranges are not a valid Get Leads filter. Returns up to 300 per page with a Next Page Token for paging.
- Delete Leads Permanently deletes leads by their Marketo IDs (up to 300). Skipped rows return a per-row reason. Use Get Leads to find the IDs first.
- Describe Lead Fields Returns the full schema of lead fields in this instance - each field's API name, display name, and data type. Use it to discover the exact field names to put in Sync Leads or the Fields parameter of Get Lead.
- Merge Leads Merges up to 25 losing leads into a winning lead, then permanently destroys the losing records. IRREVERSIBLE.
- Push Lead Pushes lead records into a program, logging a "Push Lead to Marketo" activity. Up to 300 records.
- Submit Form Submits data to a Marketo form on behalf of a lead, triggering the form's fill-out flows just like a real submission.
- Associate Lead Associates an anonymous web session (via its Munchkin cookie) with a known Marketo lead.
Lists
6- Get Lists Returns static lists in the instance, optionally filtered by name or program. Use this to find a list before adding or removing members. Returns up to 300 per page.
- Get List by ID Retrieves a single static list by ID, including its name, description, and parent program. The List field is a dropdown backed by a dictionary.
- Get Leads by List Returns the lead members of a static list. Use it to read who is on a list before removing or processing them. Returns up to 300 per page with a Next Page Token for paging.
- Add Leads to List Adds existing leads to a static list (up to 300). Lead IDs are sent as repeated id query parameters per the Marketo membership API. Skipped rows return a per-row reason.
- Remove Leads from List Removes leads from a static list (up to 300). Lead IDs are sent as repeated id query parameters. Skipped rows return a per-row reason.
- Member of List Checks whether each given lead is a member of a static list (up to 300). Returns memberof / notmemberof / skipped per lead. Use it to branch a flow on list membership.
Campaigns
4- Get Campaigns Returns smart campaigns in the instance, optionally filtered by name, program, or whether they are triggerable via the API. Use it to find a campaign before requesting or scheduling it.
- Get Campaign by ID Retrieves a single smart campaign by ID, including its type (trigger or batch) and parent program. The Campaign field is a dropdown backed by a dictionary.
- Request Campaign Runs the given leads through a trigger smart campaign immediately. The campaign must have an active "Campaign is Requested: Source = Web Service API" trigger step. Up to 100 leads per call; My-Token overrides must already exist under the program's My Tokens tab.
- Schedule Campaign Schedules a batch smart campaign to run at a future time (default: 5 minutes from now; must be at least 5 minutes out). Optionally clones the parent program and applies My-Token overrides. The target must be a batch (not trigger) campaign.
Activities
3- Get Activity Types Returns the activity types available in this instance, each with its ID, name, and attributes. Use it to discover the activity type IDs needed for Get Lead Activities.
- Get Paging Token Returns a paging token that anchors an activity stream at a given start time. Pass the token to Get Lead Activities to begin reading activities from that point.
- Get Lead Activities Returns lead activities of the chosen type(s) from a paging token (get the first token from Get Paging Token). Use it to read the activity log stream - form fills, clicks, etc. Optionally scope to specific leads or a list.
Custom Objects
5- List Custom Object Types Returns the custom object types defined in this instance, each with its API name, dedupe fields, and ID field. Use it to discover the API name needed for Query/Sync/Describe Custom Object. Requires a subscription that includes Custom Objects.
- Describe Custom Object Returns the schema of a custom object type - its fields, ID field, and dedupe fields. Use it to discover the exact field names to put in Sync/Query Custom Object. The Custom Object field is a dropdown backed by a dictionary.
- Query Custom Objects Searches records of a custom object type by a filter field and values. Use Describe Custom Object to learn the filterable field names. Returns up to 300 per page with a Next Page Token for paging.
- Sync Custom Objects Creates or updates custom object records in bulk (up to 300). Each record is a free-form object of the object type's field API names (discover them via Describe Custom Object). Choose Create or Update to upsert on the dedupe fields.
- Delete Custom Objects Deletes custom object records in bulk (up to 300). Each record identifies a row by its dedupe field(s) or marketoGUID per the Delete By setting. Skipped rows return a per-row reason.
Assets
55- Browse Programs Returns programs from the instance with offset paging. Use it to find a program before reading, cloning, or approving it.
- Get Program by ID Retrieves a single program by ID. The Program field is a dropdown backed by a dictionary.
- Create Program Creates a new program in the chosen folder. The name must be unique within the folder.
- Update Program Updates a program's name and/or description.
- Clone Program Clones a program into a destination folder under a new globally-unique name. Programs with Push/In-App/Reports/Social assets cannot be cloned.
- Delete Program Permanently deletes a program.
- Approve Email Program Approve an Email program for send. Requires start/end dates plus a valid approved email and smart list (set in Marketo).
- Unapprove Email Program Unapprove a previously-approved Email program.
- Browse Folders Returns folders under a root folder, traversing to a chosen depth. Use it to navigate the asset tree.
- Get Folder by ID Retrieves a single folder by ID.
- Create Folder Creates a new folder under a parent folder.
- Update Folder Updates a folder's name, description, or archive state.
- Delete Folder Deletes an (empty) folder. Programs and system folders cannot be deleted.
- Get Tokens by Folder Lists the My-Tokens defined on a folder or program.
- Create Token Adds a My-Token to a folder or program.
- Delete Token Deletes a My-Token from a folder or program.
- Browse Emails Returns email assets with offset paging, optionally filtered by status or folder.
- Get Email by ID Retrieves a single email asset by ID.
- Get Email Content Retrieves the content sections of an email asset.
- Create Email Creates a new email asset from an email template in the chosen folder.
- Update Email Updates an email asset's name and/or description.
- Clone Email Clones an email asset into a destination folder under a new name.
- Delete Email Permanently deletes an email asset.
- Approve Email Approve the email draft for send. Requires from-name, from-email, reply-to, and subject to be set.
- Unapprove Email Unapprove a previously-approved email asset.
- Send Sample Email Sends a sample of an email asset to a recipient, optionally rendered as a specific lead.
- Browse Forms Returns form assets with offset paging, optionally filtered by status.
- Get Form by ID Retrieves a single form asset by ID.
- Get Form Fields Lists the fields on a form asset.
- Create Form Creates a new form asset in the chosen folder.
- Update Form Updates a form asset's metadata.
- Clone Form Clones a form asset into a destination folder under a new name.
- Approve Form Approves a form asset.
- Unapprove Form Unapproves a form asset.
- Delete Form Deletes a form asset. The form must be unapproved first.
- Browse Landing Pages Returns landing page assets with offset paging, optionally filtered by status or folder.
- Get Landing Page by ID Retrieves a single landing page asset by ID.
- Get Landing Page Content Retrieves the content sections of a landing page asset.
- Create Landing Page Creates a new landing page asset from an LP template in the chosen folder.
- Update Landing Page Updates a landing page asset's metadata.
- Clone Landing Page Clones a landing page asset into a destination folder under a new name.
- Approve Landing Page Approves a landing page asset.
- Unapprove Landing Page Unapproves a landing page asset.
- Delete Landing Page Deletes a landing page asset. The page must be unapproved and unreferenced.
- Browse Smart Lists Returns user-created smart list assets in a folder (built-in/system smart lists are not supported by this API).
- Get Smart List by ID Retrieves a single smart list asset by ID, optionally including its rule definitions.
- Clone Smart List Clones a smart list asset into a destination folder under a new name.
- Delete Smart List Deletes a user-created smart list asset.
- Get Snippet by ID Retrieves a single snippet asset by ID (no browse-list endpoint; supply the id).
- Get Snippet Content Retrieves the content of a snippet asset.
- Create Snippet Creates a new snippet asset in the chosen folder.
- Update Snippet Updates a snippet asset's metadata.
- Update Snippet Content Sets the HTML content of a snippet asset.
- Approve Snippet Draft Approves the draft of a snippet asset.
- Delete Snippet Deletes a snippet asset.
CRM Objects
20- Describe Opportunity Returns the Opportunity object schema - its fields, idField, and dedupe fields. Requires a CRM-sync-enabled subscription.
- Query Opportunities Searches Opportunity records by a searchable field and values. Returns up to 300 per page with a Next Page Token.
- Sync Opportunities Creates or updates Opportunity records in bulk (up to 300). externalOpportunityId is required for create; name must not be null.
- Delete Opportunities Deletes Opportunity records in bulk (up to 300) by dedupe field(s) or marketoGUID.
- Describe Opportunity Role Returns the Opportunity Role object schema. Requires a CRM-sync-enabled subscription.
- Query Opportunity Roles Searches Opportunity Role records by a searchable field and values.
- Sync Opportunity Roles Creates or updates Opportunity Role records (up to 300). Dedupes on the composite { externalOpportunityId, leadId, role }.
- Delete Opportunity Roles Deletes Opportunity Role records (up to 300) by dedupe field(s) or marketoGUID.
- Describe Company Returns the Company object schema. Requires a CRM-sync-enabled subscription.
- Query Companies Searches Company records by a searchable field and values.
- Sync Companies Creates or updates Company records in bulk (up to 300). Dedupes on externalCompanyId.
- Delete Companies Deletes Company records in bulk (up to 300) by dedupe field(s) or marketoGUID.
- Describe Sales Person Returns the Sales Person object schema. Requires a CRM-sync-enabled subscription.
- Query Sales Persons Searches Sales Person records by a searchable field and values.
- Sync Sales Persons Creates or updates Sales Person records in bulk (up to 300). Dedupes on externalSalesPersonId.
- Delete Sales Persons Deletes Sales Person records in bulk (up to 300) by dedupe field(s) or marketoGUID.
- Describe Named Account Returns the Named Account object schema. Requires the Marketo ABM / Account-Based add-on.
- Query Named Accounts Searches Named Account records by a searchable field and values. Requires the ABM add-on.
- Sync Named Accounts Creates or updates Named Account records in bulk (up to 300). Dedupes on name. Requires the ABM add-on.
- Delete Named Accounts Deletes Named Account records in bulk (up to 300) by name or marketoGUID. Requires the ABM add-on.
Bulk
14- Import Leads Imports a lead file (CSV/TSV) into Marketo asynchronously. The first row must be a header of Marketo field API names; the file must be under 10MB. Returns a batch id to poll for status.
- Get Import Lead Status Returns the status of a lead-import batch (Queued / Importing / Complete / Failed) with row counts.
- Get Import Lead Failures Returns the failed rows of a lead-import batch as raw CSV (with a reason column).
- Get Import Lead Warnings Returns the warning rows of a lead-import batch as raw CSV (with a reason column).
- Create Lead Export Creates a bulk lead export job (does not start it - use Enqueue Lead Export). Define the columns and an optional date window or static list. Limits: 500MB/day, 2 concurrent + 10 queued.
- Enqueue Lead Export Starts (enqueues) a created lead export job so Marketo begins processing it.
- Get Lead Export Status Returns the status of a lead export job (Created / Queued / Processing / Completed / Failed / Canceled).
- Get Lead Export File Returns the exported lead file as raw delimited text. Only valid once the job status is Completed.
- Cancel Lead Export Cancels a queued or processing lead export job.
- Create Activity Export Creates a bulk activity export job (does not start it - use Enqueue Activity Export). Requires a createdAt date window (31-day max).
- Enqueue Activity Export Starts (enqueues) a created activity export job.
- Get Activity Export Status Returns the status of an activity export job.
- Get Activity Export File Returns the exported activity file as raw delimited text. Only valid once the job status is Completed.
- Cancel Activity Export Cancels a queued or processing activity export job.
Triggers
4 triggersEvent Triggers
4- On New Lead Fires when a new lead is created in Marketo. Starts a flow to route, enrich, or notify on the new lead.
- On New Activity Fires when a new lead activity is recorded in Marketo, such as a form fill, click, or email open. Starts a flow to react to engagement.
- On Lead Field Change Fires when a watched lead field changes in Marketo, such as a lead-score update. Starts a flow to run a campaign or route the lead.
- On Deleted Lead Fires when a lead is deleted in Marketo. Starts a flow to reconcile the deletion in connected systems.
Start building with Marketo
$100 in credits. No card required. Connect in minutes.