Kartra
Kartra is an all-in-one marketing platform designed for entrepreneurs and businesses. It provides tools for building websites, sales funnels, email marketing campaigns, and membership sites. Users can manage their entire online business from a single platform.
Official docs: https://help.kartra.com/
Kartra Overview
- Members
- Tags
- Products
- Pages
- Funnels
- Helpdesks
- Affiliates
- Videos
- Calendars
- Forms
- Automations
- Sequences
- Broadcasts
- Membership Levels
- Integrations
- Agency
- Settings
- Billing
- Kartra Support
- Assets
- Communications
- Checkouts
- Courses
- List Imports
- Logs
- API
- Campaigns
- Custom Fields
- Email Lists
- Helpdesk Articles
- Helpdesk Categories
- Membership Tiers
- Notifications
- Tracking Links
- User Roles
- Webhooks
- Split Tests
- Teams
- Tasks
- Subscriptions
- Coupons
- Downloads
- Email Templates
- Files
- Invoices
- Lead Tags
- Mailboxes
- Offers
- Portals
- Refunds
- Rules
- Shipping Profiles
- Surveys
- Thank You Pages
- Upsells
- Variants
- Vendors
- Appointments
- Blog Posts
- Comments
- Customer Records
- Dashboards
- Event Logs
- Feedback
- Gateways
- Hosting
- Images
- Knowledge Bases
- Landing Pages
- Media
- Pipelines
- Reports
- Sales Pages
- Support Tickets
- Testimonials
- Training
- User Groups
- Webinars
- Cancellations
- Chargebacks
- Commissions
- Contracts
- Conversions
- Deliverability
- Enrollments
- Exits
- Funnels
- Goals
- Impressions
- Journeys
- Key Performance Indicators (KPIs)
- Leads
- Metrics
- Opportunities
- Orders
- Partners
- Payments
- Projections
- Ratings
- Registrations
- Revenue
- Segments
- Sessions
- Shares
- Statistics
- Subscribers
- Transactions
- Trials
- Views
- Visits
- Workflows
Working with Kartra
This skill uses the Membrane CLI to interact with Kartra. Membrane handles authentication and credentials refresh automatically — so you can focus on the integration logic rather than auth plumbing.
Install the CLI
Install the Membrane CLI so you can run membrane from the terminal:
npm install -g @membranehq/cli@latest
Authentication
membrane login --tenant --clientName=<agentType>
This will either open a browser for authentication or print an authorization URL to the console, depending on whether interactive mode is available.
Headless environments: The command will print an authorization URL. Ask the user to open it in a browser. When they see a code after completing login, finish with:
membrane login complete <code>
Add --json to any command for machine-readable JSON output.
Agent Types : claude, openclaw, codex, warp, windsurf, etc. Those will be used to adjust tooling to be used best with your harness
Connecting to Kartra
Use membrane connection ensure to find or create a connection by app URL or domain:
membrane connection ensure "https://kartra.com/" --json
The user completes authentication in the browser. The output contains the new connection id.
This is the fastest way to get a connection. The URL is normalized to a domain and matched against known apps. If no app is found, one is created and a connector is built automatically.
If the returned connection has state: "READY", skip to Step 2.
1b. Wait for the connection to be ready
If the connection is in BUILDING state, poll until it's ready:
npx @membranehq/cli connection get <id> --wait --json
The --wait flag long-polls (up to --timeout seconds, default 30) until the state changes. Keep polling until state is no longer BUILDING.
The resulting state tells you what to do next:
READY— connection is fully set up. Skip to Step 2.CLIENT_ACTION_REQUIRED— the user or agent needs to do something. TheclientActionobject describes the required action:clientAction.type— the kind of action needed:"connect"— user needs to authenticate (OAuth, API key, etc.). This covers initial authentication and re-authentication for disconnected connections."provide-input"— more information is needed (e.g. which app to connect to).clientAction.description— human-readable explanation of what's needed.clientAction.uiUrl(optional) — URL to a pre-built UI where the user can complete the action. Show this to the user when present.clientAction.agentInstructions(optional) — instructions for the AI agent on how to proceed programmatically.
After the user completes the action (e.g. authenticates in the browser), poll again with membrane connection get <id> --json to check if the state moved to READY.
CONFIGURATION_ERRORorSETUP_FAILED— something went wrong. Check theerrorfield for details.
Searching for actions
Search using a natural language description of what you want to do:
membrane action list --connectionId=CONNECTION_ID --intent "QUERY" --limit 10 --json
You should always search for actions in the context of a specific connection.
Each result includes id, name, description, inputSchema (what parameters the action accepts), and outputSchema (what it returns).
Popular actions
| Name | Key | Description | |---|---|---| | List All Pages | retrieve-account-pages | Retrieves all pages in your Kartra account | | List All Custom Fields | retrieve-account-custom-fields | Retrieves all custom fields defined in your Kartra account | | List All Sequences | retrieve-account-sequences | Retrieves all email sequences in your Kartra account | | List All Tags | retrieve-account-tags | Retrieves all tags in your Kartra account | | List All Lists | retrieve-account-lists | Retrieves all mailing lists in your Kartra account | | Get Lead Details | get-lead | Retrieves comprehensive profile information for a specific lead. | | Get Transaction Details | get-transaction-details | Retrieves detailed information about a specific payment transaction. | | Get Lead Transactions | retrieve-transactions-from-lead | Retrieves all payment transactions for a specific lead | | Create Lead | create-lead | Creates a new lead in your Kartra account with contact information and optional custom fields | | Edit Lead | edit-lead | Updates an existing lead's information in your Kartra account | | Assign Tag to Lead | assign-tag | Assigns a tag to a lead. | | Subscribe Lead to List | subscribe-lead-to-list | Subscribes a lead to a specific mailing list. | | Subscribe Lead to Sequence | subscribe-lead-to-sequence | Subscribes a lead to an email sequence starting at a specific step. | | Unsubscribe Lead from List | unsubscribe-lead-from-list | Removes a lead from a specific mailing list | | Unsubscribe Lead from Sequence | unsubscribe-lead-from-sequence | Removes a lead from a lead from an email sequence | | Remove Tag from Lead | unassign-tag | Removes a tag from a lead | | Cancel Subscription | cancel-subscription | Cancels a recurring payment subscription | | Refund Transaction | refund-transaction | Processes a refund for a payment transaction | | Grant Membership Access | grant-membership-access | Grants a lead access to a membership at a specific access level | | Revoke Membership Access | revoke-membership-access | Revokes a lead's access to a membership |
Running actions
membrane action run <actionId> --connectionId=CONNECTION_ID --json
To pass JSON parameters:
membrane action run <actionId> --connectionId=CONNECTION_ID --input '{"key": "value"}' --json
The result is in the output field of the response.
##