Skip to content

Marketing Automation

GetGist
API integration

Ship Marketing Automation features without building the integration. Full GetGist API access via Proxy and 50+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Talk to us
GetGist

Use Cases

Why integrate with GetGist

Common scenarios for SaaS companies building GetGist integrations for their customers.

01

Activate warehouse data in GetGist campaigns

Reverse ETL and CDP platforms can offer customers a native GetGist destination to sync contact attributes, tags, and product events — turning Snowflake or BigQuery data into triggers for marketing automations without custom engineering.

02

Power AI support agents on GetGist Inbox

AI copilots and ticket deflection tools can ingest the customer's GetGist knowledge base, monitor incoming conversations, auto-reply as a bot, and escalate to a human teammate — delivering an out-of-the-box GetGist connector to every customer.

03

Push qualified leads from forms and landing pages

Form builders, webinar platforms, and lead-gen tools can let users route submissions directly into GetGist contacts, forms, and campaign sequences — eliminating Zapier middleware for their customers.

04

Mirror conversations into CRMs and systems of record

Sales and CX platforms can sync GetGist conversations, tags, and assignments bi-directionally so reps see live chat context inside their CRM and update ticket state without leaving their workflow.

05

Centralize knowledge base content for docs and search tools

Documentation platforms, in-app search, and content governance tools can pull GetGist articles and collections to index, translate, or audit help content as part of a broader knowledge layer.

What You Can Build

Ship these features with Truto + GetGist

Concrete product features your team can ship faster by leveraging Truto’s GetGist integration instead of building from scratch.

01

Batch contact sync with status tracking

Upsert thousands of contacts asynchronously using batch endpoints and poll batch status to confirm successful ingestion into GetGist.

02

Event-triggered marketing automations

Stream product-led events like 'Plan Upgraded' or 'Usage Dropped' into GetGist to fire visual workflows and drip campaigns in real time.

03

Two-way conversation sync

List, search, reply to, assign, snooze, tag, prioritize, and close GetGist conversations from your app to keep an external inbox or CRM in lockstep.

04

Bot-authored replies and internal notes

Post AI-generated public replies as a bot or add internal notes on a conversation, with handoff to a human teammate when confidence is low.

05

Bulk tagging and segment orchestration

Apply or remove tags across up to 50 contacts per call to move cohorts into GetGist segments and trigger downstream campaigns.

06

Knowledge base ingestion for RAG and search

Pull every article and collection — including multi-locale content — to feed LLM retrieval, in-app search, or content audit pipelines.

SuperAI

GetGist AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_get_gist_articles

List all knowledgebase articles in your Gist workspace, sorted by creation date descending. Returns article records with id, parent_id, default_locale, statistics, and translations.

get_single_get_gist_article_by_id

Get a single Gist knowledgebase article by id. Returns the article record with id, parent_id, default_locale, statistics, and translations. Required: id.

create_a_get_gist_article

Create a new knowledgebase article in Gist with one or more locale translations. Returns: message.

update_a_get_gist_article_by_id

Update an existing Gist knowledgebase article by id. Returns: message. Required: id and translations with per-locale author_id, title, html_text, and status.

get_gist_articles_search

Search Gist knowledgebase articles by a text string. Returns matching article records with id, parent_id, default_locale, statistics, and translations. Required: search_text.

delete_a_get_gist_article_by_id

Delete an article from a Gist workspace by its id. Returns: message.g. "Article deleted successfully."). Required: id.

list_all_get_gist_collections

List all knowledgebase collections in the Gist workspace, sorted by creation date with the most recently created first. Returns collections with id, parent_id, default_locale, translations, created_at, and updated_at.

get_single_get_gist_collection_by_id

Get a single knowledgebase collection by id. Returns: collection, message. Required: id.

create_a_get_gist_collection

Create a knowledgebase collection in Gist. Returns: collection, message. Required: translations with per-locale name, description, and icon; parent_id is optional.

update_a_get_gist_collection_by_id

Update a knowledgebase collection by id in Gist. Returns: collection, message. Required: id. All body fields are optional.

delete_a_get_gist_collection_by_id

Delete a knowledgebase collection by id in Gist. Returns: message. Required: id.

get_gist_contacts_upsert

Create or update a contact in getgist. Matches an existing contact by id, then user_id, then email and creates a new one when no match is found. Returns: contact, id, object, deleted. Requires email and user_id (both required when creating; one of the two when updating).

get_gist_contacts_batch_upsert

Create or update a batch of contacts in getgist. Returns: status. Requires contacts. The import is queued and processed asynchronously; use the returned batch_id to poll the batch status.

get_gist_contacts_get_batch_status

Get the status of a batch contact import in getgist. Returns: message. Required: batch_id. status is QUEUED, IN_PROGRESS or COMPLETED; imported_contacts and errors are only present when the status is COMPLETED.

get_single_get_gist_contact_by_id

Retrieve a single contact in getgist by id. Returns: contact, id, object, deleted. Required: id. Alternatively look up with user_id or email (email must be URL-encoded).

list_all_get_gist_contacts

List all contacts in getgist, sorted by created_at and ordered descending by default. Returns contact records with id, type, email, name, user_id, phone, created_at, signed_up_at, last_seen_at, location_data, segments, tags, and custom_properties. Optionally pass order and order_by to change sorting.

delete_a_get_gist_contact_by_id

Delete a contact in getgist by its id. Returns: id, object, deleted. Required: id.

get_gist_events_track

Track an event in Gist, recording that a contact performed it. Returns the tracked event object including its id, name, email, properties, and occurred_at. Required: event_name plus one contact reference — email, user_id, or id. occurred_at defaults to the current time when omitted.

list_all_get_gist_events

List the events a contact performed in Gist. Returns event records including their id, name, email, properties, and occurred_at. Required: person_id. Max 60 per page.

get_gist_tags_upsert

Create a new tag in getgist or update an existing tag's name. Returns the tag object under tag (id, name). Required: name. Repeated or case-variant names map to a single tag; include the tag's id to rename an existing tag.

delete_a_get_gist_tag_by_id

Delete a getgist tag by id. Returns the deleted tag object under tag (id, name). Required: id.

list_all_get_gist_tags

List all tags defined in a getgist workspace. Returns a paginated list of tag records, each with: id, name.

get_gist_tags_tag_contacts

Add a getgist tag to multiple contacts at once, creating the tag if it does not already exist. Returns: tag, message. Required: name, contacts (each entry identifies a contact by id, email or user_id). No more than 50 contacts per request is recommended.

get_gist_tags_untag_contacts

Remove a getgist tag from multiple contacts by adding untag: true to each contact object. Returns: tag, message. Required: name, contacts (each entry identifies a contact by id, email or user_id, with untag set to true).

list_all_get_gist_segments

List all segments in your Gist workspace. Returns each segment's id, name, created_at, and updated_at, plus the contact count when include_count is true.

get_single_get_gist_segment_by_id

Get a single Gist segment by id. Returns: id, name, created_at, updated_at, count, segment. Required: id.

list_all_get_gist_forms

List all forms in your getgist workspace. Returns each form's id, title, created_at, form_type, status, and fields.

get_single_get_gist_form_by_id

Get a single getgist form by id. Returns the form's id, title, created_at, form_type, status, and fields. Required: id.

get_gist_forms_subscribe

Subscribe a contact to a getgist form by submitting the form's field values. Returns: acknowledge_message_header, acknowledge_message, redirect_to_url. Required: form_id, fields.

get_gist_forms_list_submissions

List all submissions for a getgist form. Returns each submission's fields, submitted_at, page_url, ip_address, consent_to_process, consent_to_process_text, skip_validation, and confirmed_at. Required: form_id.

list_all_get_gist_campaigns

List all getgist campaigns in the workspace, most recently created first. Returns: id, status, name, created_at, updated_at, email_count, active_subscriber_count, unsubscribed_subscriber_count, email_open_rate, email_click_rate, href.

get_single_get_gist_campaign_by_id

Get a single getgist campaign by id. Returns the campaign object including id, name, status, active_subscriber_count, and email_open_rate. Required: id.

get_gist_campaigns_subscribe

Subscribe a contact to a getgist campaign. Returns the campaign object including id, name, status, email_count, active_subscriber_count, and email_open_rate. Required: campaign_id and email; user_id may be sent instead of email.

get_gist_campaigns_unsubscribe

Unsubscribe a contact from a getgist campaign. Returns the campaign object including id, name, status, email_count, active_subscriber_count, and email_open_rate. Required: campaign_id and email; user_id may be sent instead of email.

get_gist_campaigns_list_subscribers

List all contacts subscribed to a getgist campaign. Returns: id, name, email, user_id, phone, created_at, signed_up_at, last_seen_at, updated_at, last_contacted_at, session_count, avatar, landing_url, original_referrer, last_seen_ip, last_seen_user_agent, location_data, segments, tags, social_profiles, subscription_types, custom_properties, unsubscribed_from_emails. Required: campaign_id.

list_all_get_gist_subscription_types

List all subscription types in getgist. Returns subscription types with id, name, description, people_count, status, and display_order.

get_single_get_gist_subscription_type_by_id

Get a single getgist subscription type by id. Returns: id, message. Required: id.

get_gist_subscription_types_attach

Attach a contact to a getgist subscription type. Returns the subscription type including id, name, description, people_count, status, and display_order. Required: subscription_type_id and subscribed_status (true to add); identify the contact by user_id, email, or contact_id.

get_gist_subscription_types_detach

Detach a contact from a getgist subscription type. Returns the subscription type including id, name, description, people_count, status, and display_order. Required: subscription_type_id and subscribed_status (false to remove); identify the contact by user_id, email, or contact_id.

create_a_get_gist_conversation

Create a conversation in Gist initiated by a contact, identified by Gist id, your user_id or email. Useful for mirroring activity from other systems. Returns the created conversation. Required: from, body.

get_single_get_gist_conversation_by_id

Get a single Gist conversation by id, including its state, assignee, contacts, teammates, tags and custom properties. Returns: conversation. Required: id.

get_gist_conversations_list_messages

List the messages in a Gist conversation, oldest first, optionally including internal notes. Returns message records with id, message_type, body, from, created_at and attachments. Required: conversation_id.

get_gist_conversations_reply

Reply to a Gist conversation as a contact, a teammate or a bot, or add an internal note (teammates only). Contact replies pass from.type=contact with the contact id, user_id or email; teammate replies pass from.type=teammate and teammate_id. Returns the created message. Required: conversation_id, message_type, from, body.

delete_a_get_gist_conversation_by_id

Delete a Gist conversation by id. Returns an empty response on success. Required: id.

get_gist_conversations_assign

Assign a Gist conversation to a teammate or a team. Only teammates can assign, so teammate_id identifies who is assigning; set assignee_type=team when assigning to a team. Returns the updated conversation. Required: conversation_id, teammate_id, assignee_id.

get_gist_conversations_unassign

Unassign a Gist conversation so any teammate can pick it up when the contact replies. Sends assignee_id as null on behalf of the acting teammate. Returns the updated conversation. Required: conversation_id, teammate_id.

get_gist_conversations_snooze

Snooze a Gist conversation by setting its state to snoozed, acting as a teammate (teammate_id) or as a bot (type=bot). Requires snoozed_until, the Unix time the conversation should reopen. Returns the updated conversation. Required: conversation_id, state, snoozed_until.

get_gist_conversations_unsnooze

Unsnooze (reopen) a Gist conversation by setting its state to open, acting as a teammate (teammate_id) or as a bot (type=bot). Returns the updated conversation. Required: conversation_id, state.

get_gist_conversations_close

Close a Gist conversation by setting its state to closed, acting as a teammate (teammate_id) or as a bot (type=bot). Returns the updated conversation. Required: conversation_id, state.

get_gist_conversations_prioritize

Mark a Gist conversation as priority or not_priority, acting as a teammate or a bot. Returns the updated conversation. Required: conversation_id, priority.

get_gist_conversations_get_counts

Get workspace-wide conversation counts by state: open, closed, snoozed, unassigned and assigned. A state with zero conversations is omitted. Returns: conversation_count. Takes no parameters.

get_gist_conversations_get_team_counts

Get per-team conversation counts in the Gist workspace: each team's id, name and number of open, snoozed and closed conversations assigned to it. Returns: conversation_count.teams. Takes no parameters.

get_gist_conversations_get_teammate_counts

Get per-teammate conversation counts in the Gist workspace: each teammate's id, name and number of open, snoozed and closed conversations assigned to them. Returns: conversation_count.teammates. Takes no parameters.

get_gist_conversations_tag

Apply one or more tags (comma-separated names) to a Gist conversation, optionally to a specific message; without message_id the tags go on the last message. Returns the updated conversation. Required: conversation_id, tags.

get_gist_conversations_untag

Remove a tag from a Gist conversation by tag id, from one message or, without message_id, from every message in the conversation. Returns the updated conversation. Required: conversation_id, tag_id.

list_all_get_gist_conversations

List conversations in the Gist workspace, newest updated first by default. Filter by status (open, closed, snoozed) and sort by created_at, updated_at or waiting_longest. Returns conversation records with id, created_at, updated_at, channel, title, contacts, teammates, assignee, open, state, read, waiting_since, snoozed_until, priority, tags and custom_properties.

get_gist_conversations_search

Search Gist conversations with a structured filter_query: an array of groups (OR between groups) each holding criteria (AND within a group) of key, operator and value. Keys include contact.id, contact.email, teammate_assigned_id, team_assigned_id, channel, state, tags and custom properties; operators include =, !=, IN, NIN, >, <. Results are sorted by updated_at descending; use status and page to narrow. Returns matching conversation records. Required: filter_query.

get_gist_conversations_bulk_update

Update a single Gist conversation's title or custom properties (despite the method name, this acts on one conversation). Returns the updated conversation. Required: conversation_id.

get_gist_workspaces_upsert_token

Retrieve workspace meta for the current Gist workspace via POST /token. Returns: created_at, message. An expires_in of 0 may indicate no expiration on the token. Required: none.

Why Truto

Why use Truto’s MCP server for GetGist

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with GetGist in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s GetGist account

Use Truto’s frontend SDK to connect your customer’s GetGist account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call GetGist

Truto’s Proxy API is a 1-to-1 mapping of the GetGist API. You call us, we call GetGist, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate GetGist’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about GetGist on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How does authentication work for GetGist through Truto?

Truto handles the GetGist auth handshake and token storage for each of your end users. Your app initiates a connection through Truto's link flow, and Truto returns a connection ID you use to make authenticated calls — no credential management on your side.

Can I sync large volumes of contacts without hitting rate limits?

Yes. Use the batch upsert tool to send contacts asynchronously and the batch status tool to track progress. Truto also manages retries and backoff behavior transparently so you don't have to handle GetGist's rate limiting directly.

What conversation operations are supported?

You can list, search, create, reply, assign, unassign, snooze, unsnooze, close, prioritize, tag, untag, bulk update, and delete conversations. You can also fetch conversation counts by team or teammate and list messages within a thread.

Can replies be posted as a bot versus a human teammate?

Yes. The reply tool supports posting as a contact, a teammate, or a bot, and can also create internal notes — which is the standard pattern for AI copilots that auto-respond and then hand off to a human.

How fresh is the data — is it polling or real-time?

The current GetGist integration exposes REST tools, so data freshness depends on how often you poll endpoints like list conversations or search. For event ingestion into GetGist, writes are made synchronously via the track and upsert tools.

Does the integration support knowledge base articles and collections?

Yes. You can list, read, create, update, delete, and search articles, and manage collections with full CRUD. This covers the common AI training and content indexing use cases.

GetGist

Get GetGist integrated into your app

Our team understands what it takes to make a GetGist integration successful. A short, crisp 30 minute call with folks who understand the problem.