Reference · built on requestConnectorCRM & sales

Keap

Contacts, companies, opportunities, tasks, and orders from Keap through its REST v2 API and REST Hooks.

About

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.

    With Stale Pipeline, Quote Follow-up

  • Respond to a new lead

    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.

    With Lead Response

  • Prompt a reorder

    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.

    With Reorder Prompt

  • Follow up a missed subscription payment

    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.

    With Payment Retry, Dunning Cadence

Requirements

  • 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.

Request Keap ↗

Questions and answers

Do REST Hooks include the changed record?
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.

For project-specific requirements, contact Fibric.