Keap
Keap (Infusionsoft) contacts, tags, companies, email records and files (v1 REST API, OAuth2 refresh-token grant).
OCNORA ships 23 typed Keap operations and 1 trigger. Each node has a schema-driven form, input and output tables beside its settings, and is pre-flighted by Workflow Health before your first real run.
Before you connect Keap
- Authentication
- OAuth 2.0
- Credential
- {"client_id", "client_secret", "refresh_token"}{"client_id": "…", "client_secret": "…", "refresh_token": "…"}
- Connection test
- Available: the stored credential can be checked against the provider when you add it. This is not a record that a test was run or passed.
- Prerequisites
- Publishing needs MANTLE_APP_PUBLIC_BASE_URL set to a public https URL — Keap POSTs to it to confirm the subscription while the create call is in flight, and a subscription it cannot confirm is sent nothing. Keap rotates its refresh token on every mint; a connection whose stored token has already been spent must be re-authorised.
Prerequisites are taken from the connection notes in this provider’s node contracts; each node’s reference page says which apply to it.
What you can do with Keap
Operations, grouped by what they do to your data, plus 1 trigger that start a run.
Create and send 6
Read and search 10
Delete and cancel 4
A sample Keap workflow
- 1Eventtrigger.keap_eventStart a run when Keap (Infusionsoft) reports a change to a record.
- 2Get Companykeap.get_companyRetrieve one Keap company by its id.
- 3Apply Tags to Contactkeap.apply_tagsApply one or more Keap tags to a contact and report the outcome Keap gave for each tag separately.
An outline built from this provider’s node contracts, not a recorded run. Each step’s output fields are available to the next in the field picker.
Every node below has a reference page: what it does, the connection it needs, its config fields with types, constraints and examples, and the shapes it emits.
Operations 23
- Apply Tags to ContactApply one or more Keap tags to a contact and report the outcome Keap gave for each tag separately.keap.apply_tags
- Create CompanyCreate a company in Keap from an object of Keap's own field names; company_name is required.keap.create_company
- Create ContactCreate a contact in Keap from an object of Keap's own field names, such as given_name, family_name and email_addresses.keap.create_contact
- Create Email RecordRecord an email that was sent elsewhere against a Keap contact, so it appears in that contact's history.keap.create_email_record
- Delete ContactDelete a contact from Keap by its id.keap.delete_contact
- Delete Email RecordDelete one email record from Keap by its id.keap.delete_email
- Delete FileDelete one file from the Keap file box by its id.keap.delete_file
- Get CompanyRetrieve one Keap company by its id.keap.get_company
- Get ContactRetrieve one Keap contact by its id, with its full record.keap.get_contact
- Get Email RecordRetrieve one Keap email record with its body, decoding Keap's base64 content into readable html and plain_text.keap.get_email
- Get FileRetrieve one Keap file's descriptor, and its bytes as a base64 blob when the contents are asked for.keap.get_file
- List Contact TagsList the Keap tags currently applied to one contact.keap.list_applied_tags
- List CompaniesList companies from Keap, optionally filtered by company name.keap.list_companies
- List ContactsList contacts from Keap, optionally filtered by email address, given name, family name or last-modified window.keap.list_contacts
- List Email RecordsList the email records Keap holds, optionally for one contact, one address or one sent-date window.keap.list_emails
- List FilesList the files in the Keap file box, optionally filtered by name, contact, type, permission or visibility.keap.list_files
- List TagsList the tags defined in the Keap account, so a workflow can resolve a tag name to the id the tagging nodes need.keap.list_tags
- Remove Tag from ContactRemove one applied Keap tag from a contact.keap.remove_tag
- Send EmailQueue an email to one or more Keap contacts, sent on behalf of a Keap user, with optional base64 attachments.keap.send_email
- Update CompanyUpdate the given properties of an existing Keap company.keap.update_company
- Update ContactUpdate an existing Keap contact, optionally restricting the write to the properties named in the update mask.keap.update_contact
- Upload FileUpload a base64-encoded file into the Keap file box, optionally attaching it to a contact record.keap.upload_file
- Create or Update ContactCreate a contact in Keap, or update the existing contact Keap matches as a duplicate, and return the resulting record.keap.upsert_contact
Keap questions
- How does OCNORA authenticate with Keap?
- With a stored OAuth 2.0 credential, shaped {"client_id", "client_secret", "refresh_token"} or {"client_id": "…", "client_secret": "…", "refresh_token": "…"}. A connection test can check it when you add it.
- What can I automate with Keap?
- 23 typed operations and 1 trigger, each with a reference page listing its config fields and the shapes it emits.
- What if the Keap operation I need is not listed?
- Where Keap has an HTTP API, call it from the HTTP node with the same credential, or describe the step to the AI builder, which asks our team for a typed node when one is missing.
- Are there templates that use Keap?
- Not yet. Start from a blank workflow, or describe the workflow to Build with AI.
- How are Keap calls controlled?
- Every call and every run step is audited, runs count against the execution budget, and Workflow Health pre-flights the workflow when you save it.
See your first Keap workflow run.
Book a technical demo. We add the connection, pick a template or describe the workflow to Build with AI, and Workflow Health checks it before it runs.