Skip to content

Survey · Beta

Alchemer
API integration

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

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
Alchemer

Use Cases

Why integrate with Alchemer

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

01

Trigger post-event surveys from your product

Let your customers automatically enroll their end users into Alchemer campaigns when key events happen in your app — like ticket resolution, onboarding milestones, or feature usage — without your team rebuilding Alchemer's delivery, reminder, and branching logic.

02

Sync survey responses into customer records

Pull Alchemer survey responses into your platform so CSAT, NPS, or feedback data lives alongside the customer profile, account, or ticket it belongs to. This powers health scoring, churn alerts, and CX dashboards inside your product.

03

Keep contact lists and rosters in sync

Push your customers' user, employee, or contact lists into Alchemer Contact Lists with mapped custom fields. This keeps audiences current for recurring feedback programs without manual CSV uploads.

04

Expose survey structure for field mapping

Read surveys, pages, questions, and options so your users can visually map Alchemer questions to fields in your product (e.g., 'map this NPS question to our health score field'). This makes the integration configurable without engineering involvement.

05

Stream survey data into analytics destinations

If you're a BI, ETL, or data platform, ingest Alchemer's question schema and response rows into a warehouse so your customers can join survey sentiment with product usage, revenue, and support data.

What You Can Build

Ship these features with Truto + Alchemer

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

01

Event-driven survey enrollment

Add a contact to an active Alchemer survey campaign whenever a trigger fires in your product, letting Alchemer handle email/SMS delivery and reminders.

02

Response sync with field mapping UI

Let users pick a survey, browse its pages and questions, and map each question to a field in your app — then continuously pull new responses against that mapping.

03

File attachment ingestion

Retrieve files uploaded by survey respondents (screenshots, documents, recordings) and attach them to the matching record in your platform.

04

Contact list and custom field sync

Create and update Alchemer contact lists, contacts, and contact custom fields from your product so your customers' audiences stay current for segmented campaigns.

05

Survey reporting widgets

Surface Alchemer survey reports and statistics inside your product's dashboards so users see aggregate scores without leaving your app.

06

Team and user provisioning

Manage Alchemer account users, teams, and team membership programmatically so admin actions in your product stay in sync with Alchemer access.

SuperAI

Alchemer 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_alchemer_account_teams

List all account teams in Alchemer. Returns a collection of account team objects.

get_single_alchemer_account_team_by_id

Get a single Alchemer account team by id. Returns the account team object. Required: id.

create_a_alchemer_account_team

Create a new account team in Alchemer. Returns the created account team object.

update_a_alchemer_account_team_by_id

Update an existing Alchemer account team by id. Returns the updated account team object. Required: id.

delete_a_alchemer_account_team_by_id

Delete an Alchemer account team by id. Returns an empty response on success. Required: id.

list_all_alchemer_account_team_users

List all users belonging to a specific alchemer account team. Returns user records associated with the team. Required: team_id.

create_a_alchemer_account_team_user

Add users to a specific alchemer account team. Returns the resulting team user records after the operation. Required: team_id.

update_a_alchemer_account_team_user_by_id

Update users associated with a specific alchemer account team. Returns the updated team user records after the operation. Required: team_id.

delete_a_alchemer_account_team_user_by_id

Remove users from a specific alchemer account team. Returns the remaining team user data after the operation. Required: team_id.

list_all_alchemer_account_users

List all account users in Alchemer. Returns a collection of account user records.

get_single_alchemer_account_user_by_id

Get a single Alchemer account user by id. Returns the account user record. Required: id.

create_a_alchemer_account_user

Create a new account user in Alchemer. Returns the created account user record.

update_a_alchemer_account_user_by_id

Update an existing Alchemer account user by id. Returns the updated account user record. Required: id.

delete_a_alchemer_account_user_by_id

Delete an Alchemer account user by id. Returns an empty response on success. Required: id.

list_all_alchemer_account_user_teams

List teams associated with a specific alchemer account user. Returns the collection of team records assigned to the user. Required: user_id.

create_a_alchemer_account_user_team

Assign teams to a specific alchemer account user. Uses a PUT request to set the team associations for the given user. Required: user_id.

update_a_alchemer_account_user_team_by_id

Update the team assignments for a specific alchemer account user. Uses a PUT request to replace the existing team associations for the given user. Required: user_id.

delete_a_alchemer_account_user_team_by_id

Remove team associations from a specific alchemer account user. Required: user_id.

list_all_alchemer_contact_custom_fields

List all contact custom fields defined in Alchemer. Returns a collection of contact custom field objects.

get_single_alchemer_contact_custom_field_by_id

Get a single Alchemer contact custom field by id. Returns the matching contact custom field object. Required: id.

create_a_alchemer_contact_custom_field

Create a new contact custom field in Alchemer. Returns the created contact custom field object including its id.

update_a_alchemer_contact_custom_field_by_id

Update an existing Alchemer contact custom field by id. Returns the updated contact custom field object. Required: id.

delete_a_alchemer_contact_custom_field_by_id

Delete an Alchemer contact custom field by id. Returns an empty response on success. Required: id.

list_all_alchemer_contact_lists

List all contact lists in Alchemer. Returns a collection of contact list objects.

get_single_alchemer_contact_list_by_id

Get a single Alchemer contact list by id. Returns the contact list object. Required: id.

create_a_alchemer_contact_list

Create a new contact list in Alchemer. Returns the created contact list object.

update_a_alchemer_contact_list_by_id

Update an existing Alchemer contact list by id. Returns the updated contact list object. Required: id.

delete_a_alchemer_contact_list_by_id

Delete an Alchemer contact list by id. Required: id.

list_all_alchemer_contact_list_contacts

List all contacts in an Alchemer contact list. Required: contactlist_id.

get_single_alchemer_contact_list_contact_by_id

Get a single contact from an Alchemer contact list by id. Required: contactlist_id and id.

create_a_alchemer_contact_list_contact

Create a new contact in an Alchemer contact list. Required: contactlist_id.

update_a_alchemer_contact_list_contact_by_id

Update an existing contact in an Alchemer contact list by id. Required: contactlist_id and id.

delete_a_alchemer_contact_list_contact_by_id

Delete a contact from an Alchemer contact list by id. Returns an empty 204 response on success. Required: contactlist_id and id.

list_all_alchemer_domains

List all domains in Alchemer. Returns a collection of domain objects.

get_single_alchemer_domain_by_id

Get a single Alchemer domain by id. Returns the domain object for the specified id. Required: id.

create_a_alchemer_domain

Create a new domain in Alchemer. Returns the created domain object.

update_a_alchemer_domain_by_id

Update an existing Alchemer domain by id. Returns the updated domain object. Required: id.

delete_a_alchemer_domain_by_id

Delete an Alchemer domain by id. Required: id.

list_all_alchemer_sso_integrations

List all SSO integrations configured in Alchemer. Returns a collection of SSO integration objects from the account.

get_single_alchemer_sso_integration_by_id

Get a single Alchemer SSO integration by id. Returns the full SSO integration object for the specified id. Required: id.

create_a_alchemer_sso_integration

Create a new SSO integration in Alchemer. Returns the created SSO integration object including its id and configuration details.

update_a_alchemer_sso_integration_by_id

Update an existing Alchemer SSO integration by id. Returns the updated SSO integration object. Required: id.

delete_a_alchemer_sso_integration_by_id

Delete an Alchemer SSO integration by id. Returns an empty response on success. Required: id.

list_all_alchemer_surveys

List all surveys in alchemer. Returns a collection of survey objects including id and related metadata.

get_single_alchemer_survey_by_id

Get a single alchemer survey by id. Returns the full survey object including id and related metadata. Required: id.

create_a_alchemer_survey

Create a new survey in alchemer. Returns the created survey object including its id.

update_a_alchemer_survey_by_id

Update an existing alchemer survey by id. Returns the updated survey object. Required: id.

delete_a_alchemer_survey_by_id

Delete an alchemer survey by id. Returns an empty response on success. Required: id.

list_all_alchemer_survey_campaigns

List all survey campaigns for an alchemer survey. Returns campaign objects associated with the specified survey. Required: survey_id.

get_single_alchemer_survey_campaign_by_id

Get a single alchemer survey campaign by id. Returns the campaign object for the specified survey. Required: survey_id, id.

create_a_alchemer_survey_campaign

Create a new campaign for an alchemer survey. Returns the created campaign object. Required: survey_id.

update_a_alchemer_survey_campaign_by_id

Update an existing alchemer survey campaign by id. Returns the updated campaign object. Required: survey_id, id.

delete_a_alchemer_survey_campaign_by_id

Delete an alchemer survey campaign by id. Returns an empty response on success. Required: survey_id, id.

list_all_alchemer_survey_contacts

List alchemer survey contacts belonging to a specific survey campaign. Returns contact records for the campaign. Required: survey_id, campaign_id.

get_single_alchemer_survey_contact_by_id

Get a single alchemer survey contact by id within a specific survey campaign. Returns the contact record for the given id. Required: survey_id, campaign_id, id.

create_a_alchemer_survey_contact

Create a new contact in an alchemer survey campaign. Returns the created contact record. Required: survey_id, campaign_id.

update_a_alchemer_survey_contact_by_id

Update an existing alchemer survey contact within a survey campaign. Returns the updated contact record. Required: survey_id, campaign_id, id.

delete_a_alchemer_survey_contact_by_id

Delete an alchemer survey contact from a survey campaign by id. Returns an empty response on success. Required: survey_id, campaign_id, id.

list_all_alchemer_email_messages

List all email messages belonging to a specific Alchemer survey campaign. Required: survey_id, campaign_id.

get_single_alchemer_email_message_by_id

Get a single email message by id from an Alchemer survey campaign. Required: survey_id, campaign_id, id.

create_a_alchemer_email_message

Create a new email message within an Alchemer survey campaign. Required: survey_id, campaign_id.

update_a_alchemer_email_message_by_id

Update an existing email message by id within an Alchemer survey campaign. Required: survey_id, campaign_id, id.

delete_a_alchemer_email_message_by_id

Delete an email message by id from an Alchemer survey campaign. Returns an empty 204 response on success. Required: survey_id, campaign_id, id.

list_all_alchemer_survey_pages

List all pages in an alchemer survey. Returns the collection of survey page objects for the specified survey. Required: survey_id.

get_single_alchemer_survey_page_by_id

Get a single alchemer survey page by id. Returns the survey page object for the specified page within the given survey. Required: survey_id, id.

create_a_alchemer_survey_page

Create a new page in an alchemer survey. Returns the created survey page object. Required: survey_id.

update_a_alchemer_survey_page_by_id

Update an existing alchemer survey page by id. Returns the updated survey page object. Required: survey_id, id.

delete_a_alchemer_survey_page_by_id

Delete an alchemer survey page by id. Returns the result of the deletion operation. Required: survey_id, id.

list_all_alchemer_survey_questions

List all survey questions for a given alchemer survey. Returns a collection of survey question objects. Required: survey_id.

get_single_alchemer_survey_question_by_id

Get a single alchemer survey question by id from a specific survey page. Returns the question object. Required: survey_id, page_id, id.

create_a_alchemer_survey_question

Create a new survey question on a specific alchemer survey page. Returns the created question object. Required: survey_id, page_id.

update_a_alchemer_survey_question_by_id

Update an existing alchemer survey question by id on a specific survey page. Returns the updated question object. Required: survey_id, page_id, id.

delete_a_alchemer_survey_question_by_id

Delete an alchemer survey question by id from a specific survey page. Returns an empty response on success. Required: survey_id, page_id, id.

list_all_alchemer_survey_options

List all survey options for a specific question in an alchemer survey. Returns the collection of survey option objects for the given question. Required: survey_id, page_id, question_id.

get_single_alchemer_survey_option_by_id

Get a single survey option by id for a specific question in an alchemer survey. Returns the survey option object. Required: survey_id, page_id, question_id, id.

create_a_alchemer_survey_option

Create a new survey option for a specific question in an alchemer survey. Returns the created survey option object. Required: survey_id, page_id, question_id.

update_a_alchemer_survey_option_by_id

Update an existing survey option by id for a specific question in an alchemer survey. Returns the updated survey option object. Required: survey_id, page_id, question_id, id.

delete_a_alchemer_survey_option_by_id

Delete a survey option by id from a specific question in an alchemer survey. Returns an empty response on success. Required: survey_id, page_id, question_id, id.

list_all_alchemer_survey_responses

List all survey responses for a given alchemer survey. Returns a collection of survey response objects. Required: survey_id.

get_single_alchemer_survey_response_by_id

Get a single alchemer survey response by id. Returns the full survey response object. Required: survey_id and id.

create_a_alchemer_survey_response

Create a new survey response in an alchemer survey. Returns the created survey response object. Required: survey_id.

update_a_alchemer_survey_response_by_id

Update an existing alchemer survey response by id. Returns the updated survey response object. Required: survey_id and id.

delete_a_alchemer_survey_response_by_id

Delete an alchemer survey response by id. Returns an empty response on success. Required: survey_id and id.

get_single_alchemer_survey_response_file_by_id

Get a specific file attached to an alchemer survey response by its id. Returns file data from the response. Required: survey_id, response_id, id.

list_all_alchemer_survey_reports

List all survey reports for an alchemer survey. Returns a collection of survey report objects. Required: survey_id.

get_single_alchemer_survey_report_by_id

Get a single alchemer survey report by id. Returns the survey report object for the specified survey. Required: survey_id, id.

update_a_alchemer_survey_report_by_id

Update an existing alchemer survey report by id. Returns the updated survey report object. Required: survey_id, id.

delete_a_alchemer_survey_report_by_id

Delete an alchemer survey report by id. Returns an empty response on success. Required: survey_id, id.

list_all_alchemer_survey_statistics

List statistics for an alchemer survey. Returns survey statistic records for the specified survey. Required: survey_id.

list_all_alchemer_survey_themes

List all survey themes in alchemer. Returns an array of survey theme objects.

get_single_alchemer_survey_theme_by_id

Get a single alchemer survey theme by id. Returns the survey theme object. Required: id.

create_a_alchemer_survey_theme

Create a new survey theme in alchemer. Returns the created survey theme object including its id.

update_a_alchemer_survey_theme_by_id

Update an existing alchemer survey theme by id. Returns the updated survey theme object. Required: id.

delete_a_alchemer_survey_theme_by_id

Delete an alchemer survey theme by id. Returns an empty response on success. Required: id.

list_all_alchemer_quotas

List all quotas for an Alchemer survey. Returns quota objects associated with the specified survey. Required: survey_id.

get_single_alchemer_quota_by_id

Get a single Alchemer survey quota by id. Returns the quota object for the specified survey. Required: survey_id and id.

create_a_alchemer_quota

Create a new quota for an Alchemer survey. Returns the created quota object. Required: survey_id.

update_a_alchemer_quota_by_id

Update an existing quota for an Alchemer survey by id. Returns the updated quota object. Required: survey_id and id.

delete_a_alchemer_quota_by_id

Delete an Alchemer survey quota by id. Returns an empty response on success. Required: survey_id and id.

Why Truto

Why use Truto’s MCP server for Alchemer

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 500+ 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 Alchemer in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Alchemer account

Use Truto’s frontend SDK to connect your customer’s Alchemer 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 Alchemer

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

04

Unified response format

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

FAQs

Common questions about Alchemer on Truto

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

How does authentication work for the Alchemer integration?

Truto handles the Alchemer auth flow on your behalf, so your end users connect their Alchemer account through a hosted flow without you managing API keys or token refresh. You call Truto's tools using a single connected-account identifier.

Can we read the full structure of a survey, not just responses?

Yes. The integration exposes surveys, survey pages, survey questions, and survey options as separate resources, so you can build mapping UIs that let users target specific questions or answer choices.

Can we download files that respondents upload to a survey?

Yes. Use get_single_alchemer_survey_response_file_by_id to securely retrieve files attached to a survey response, such as screenshots or supporting documents.

How do we add a user to an existing Alchemer email campaign?

Use create_a_alchemer_survey_contact with the relevant survey and campaign identifiers. Alchemer then handles delivery, reminders, and branching logic configured by the marketer — you don't need to send the email yourself.

Are custom contact fields supported?

Yes. You can list, create, update, and delete contact custom fields via the contact custom field tools, and set their values when creating or updating contacts inside contact lists.

How fresh is the survey response data?

Truto fetches responses on demand via list_all_alchemer_survey_responses, so freshness depends on your polling cadence. You can paginate and filter to pull only new responses since your last sync.

Can we get aggregated metrics without processing raw responses?

Yes. The integration supports survey reports and survey statistics endpoints, which return higher-level aggregates suitable for dashboards without computing them from raw response data.

Alchemer

Get Alchemer integrated into your app

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

Talk to us