Keap is a CRM and marketing automation product for small businesses. An app holds contacts and companies, opportunities with stages, tasks, notes, tags, orders and subscriptions, and the automations that act on them. Keap's REST v2 API at api.infusionsoft.com/crm/rest/v2 lists each object with filters, page tokens, and order_by, and REST Hooks post a change notice to your endpoint when a subscribed event occurs.
Through Fibric, an operator reads a contact's opportunities, tasks, and orders together, then proposes what to do: apply a tag that starts an automation, open a task for the owner, or record a note. You approve each one. The connector writes to Keap once, never twice, and leaves a receipt: what changed, why, and how to undo it.
This is a reference listing. It documents what Fibric would read from Keap and what it could propose, based on the vendor's published interfaces. Fibric builds it under a managed deployment when you request it; selecting it here installs nothing.
Inputs
Contacts through GET /rest/v2/contacts, filtered by email, given_name, family_name, or update_time, with each contact's tags and links
Companies through GET /rest/v2/companies, filtered by name, email, or city
Opportunities and their stages, and the stage-move history through GET /rest/v2/opportunities/stageMoves
Tasks through GET /rest/v2/tasks, filtered by contact_id, user_id, is_completed, priority, and has_due_date
Orders, order items, and payments through GET /rest/v2/orders, filtered by contact_id, paid, or creation time
REST Hook notices carrying the event_key, object_type, and the ids and timestamps of changed objects
Automations, campaigns, sequences, and goals, and each contact's leadScore
Proposed actions
Target capability: propose applying or removing a tag through POST /rest/v2/tags/{tag_id}/contacts:applyTags and :removeTags
Target capability: propose a note on a contact through POST /rest/v2/contacts/{contact_id}/notes
Target capability: propose a task through POST /rest/v2/tasks, or an update through PATCH /rest/v2/tasks/{task_id}
Target capability: propose an opportunity update through PATCH /rest/v2/opportunities/{opportunity_id} with an update_mask
Target capability: propose adding contacts to an automation sequence through the sequences :addContacts endpoint
Proposed actions are target capabilities. Every action runs propose-first and needs a validated deployment and the appropriate permissions.
What you can build
Start the follow-up automation on a stalled deal
Opportunities with no stage move within your window are listed from stageMoves. The operator proposes a tag that starts your follow-up sequence, for approval, and records the reason as a note.
A contact.add hook arrives. The operator reads the contact and its lead source, drafts the first reply, and proposes a task for the owner and a tag for the welcome sequence.
Orders read through /rest/v2/orders show a contact's last purchase and cadence. When the interval passes, the operator proposes a reorder message and a tag, for approval.
Subscriptions and payments show a missed charge. The operator proposes a task for the account owner and a note on the contact with the amount and date.
A Keap app and either a registered OAuth app with client_id and client_secret, or a Personal Access Token or Service Account Key from API Settings
An admin to create a Service Account Key; a Personal Access Token carries only the creating user's visibility and edit rights
An HTTPS hookUrl that answers the X-Hook-Secret handshake within 30 seconds so REST Hook subscriptions activate
An HTTPS redirect_uri for the OAuth callback, and storage for the rotated refresh_token on every refresh
Authentication
OAuth 2.0 Authorization Code with scope=full from the Keap developer portal, or a Personal Access Token or Service Account Key sent as a Bearer token.
Limits
REST Hooks are part of the v1 API. Each event key needs its own subscription, and payloads carry ids and timestamps, not the record.
A hook payload holds at most 1,000 objects. Delivery is attempted four times; a 410 response deactivates the subscription.
OAuth refresh tokens rotate: each refresh returns a new refresh_token that must replace the stored one.
Legacy opportunity field names only work when the legacy opportunities feature is enabled in the app.
Access and pricing
Reference listing. Fibric builds the connector under a managed deployment when you request it. Your quote covers the build, capabilities, usage, and support.
No. A hook notice carries event_key, object_type, and object_keys with each id, timestamp, and apiUrl. The connector then reads each object through REST v2. Notices batch up to 1,000 objects of one event type.
What happens when a hook endpoint is down?
Keap retries four times: after 30 to 60 seconds, again after 30 to 60 seconds, then 5 minutes, then 30 minutes. A response slower than 30 seconds or a status outside 200 to 399 counts as a failure. After four failures the subscription goes Inactive until re-verification; a 410 deactivates it at once.
Which credential should a server-side connector use?
A Service Account Key. Only an admin can create one, and it carries admin access to the app's data, so store it as a secret. A Personal Access Token is limited to the creating user's permissions. Both are sent as a Bearer token and work with REST v1 and v2.
Ask about Keap
Ask about the capabilities and requirements in this listing.
This connector listing is developed, published, and supported by Fibric. It describes integration with Keap through published interfaces. Third-party names and logos identify the systems an integration connects to; they are the property of their respective owners, who are not affiliated with Fibric and do not sponsor or endorse this listing. Trademark policy