# Softsync MCP connector

The Softsync connector brings Softsync groups, group members, views and tables into Claude, ChatGPT, Cursor and the Elaichi Agent, so each person builds, updates and tidies groups inside their own Softsync access, with every change logged.

Source: https://elaichi.ai/connectors/softsync/

## Facts

| | |
| --- | --- |
| Application | Softsync |
| Category | CRM |
| AI tools | 80 |
| Authentication | Connects with an API key |
| Bring your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once Softsync is connected

- Add the new enterprise leads to the Q3 outreach group in Softsync.
- Which members of the churn risk group in Softsync joined this week?
- Duplicate the EMEA accounts group in Softsync for the support team.

## Connect Softsync in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Softsync.
2. Optionally set Share with, then press Connect.
3. Paste a Softsync API key. One person generates a token in Softsync and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Softsync tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Softsync MCP connector for Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Softsync MCP connector for ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Softsync MCP connector for Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Softsync to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Softsync tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Softsync through Elaichi

### Move a lead into the right group

Sales. After a discovery call, ask the agent to add the contact to the enterprise pipeline group in Softsync and drop them from the cold outreach group, without opening either list.

### Build a segment for the next campaign

Marketing. Describe the audience in plain words and get a new Softsync group with a saved view your team can open before the send goes out.

### Flag accounts that need a closer look

Support. Ask which members sit in the escalations group, update the ones you have resolved, and keep the group current at the end of every shift.

### Prepare renewal groups each quarter

Customer success. Duplicate last quarter's renewal group in Softsync, refresh its members from the accounts coming up, and set who on the team can see it.

### Reshape a table before it reaches reporting

Revenue operations. Run a compile or transform on a Softsync table so the numbers land in the shape finance expects, without exporting to a spreadsheet first.

### Keep group visibility tidy across teams

Operations. Update visibility on many Softsync groups at once when a team reorganizes, and confirm afterward that each group is shown only to the people who should see it.

## Frequently asked questions

### How do I connect Softsync to Claude?

Connect Softsync in Elaichi first by pasting in a Softsync API key, then in Claude go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. There is no OAuth application to register in Softsync and no client ID or secret to generate. Once it is added, Claude can work with your Softsync groups, members, views and tables as you.

### Does Softsync work with ChatGPT and Cursor as well as Claude?

Yes. Once Softsync is connected in Elaichi, the same address, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Softsync once and every client picks it up.

### What can an AI agent actually do with my Softsync data?

With Softsync connected, an agent can create and update groups, add or remove group members, build and edit views, set which groups are visible to whom, and run compile and transform steps on tables. In practice that means asking for a new segment, moving a contact between groups, or tidying membership after a call. Short concrete asks, such as naming the group and the person, work better than long paragraphs.

### Does connecting Softsync give the AI everything in my workspace?

No. Every call to Softsync runs as the person who signed in, so the agent sees only the groups, members and views that person could already open in Softsync. Elaichi can narrow that further by restricting actions, and it can never widen what Softsync itself allows.

### Can my team share one Softsync connection?

Yes. One person connects Softsync in Elaichi and shares it with a team, and nobody else ever handles the API key. Each teammate still signs in to Elaichi as themselves, so the audit log names the actual person behind every change to a Softsync group or member.

### Can I stop an agent from deleting or changing things in Softsync?

Yes. In Elaichi you restrict Softsync actions one at a time, for example allowing group lookups while blocking group deletion or member removal. A restricted action is never advertised to Claude, ChatGPT, Cursor or any other client, so no prompt can reach it.

### What happens to a Softsync connection when someone leaves?

Offboarding the person in Elaichi ends their access to Softsync through every client at once. A shared Softsync connection keeps working for everyone else on the team. If you ever want Softsync gone entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client together.

### Does the Softsync MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. Softsync is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

## All 80 Softsync tools

Every tool below is callable through https://api.elaichi.ai/mcp once Softsync is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Softsync API keys** (List). List API Keys for the softsync workspace. Returns each key's id, label, keyPrefix, and info (userId, email, workspaceId, workspaceName) about the user and workspace it belongs to.
- **Create a Softsync API key** (Create). Create a new API key in softsync. Returns the created key's id, label, keyPrefix, and info about the user and workspace it belongs to. The body accepts label and partnerId. Required: label.
- **Delete a Softsync API key by ID** (Delete). Revoke and delete a softsync API key by id. Returns an empty 200 response on success. Required: id.
- **List all Softsync API keys info** (List). Get the basic information about a softsync API key — the user and workspace it belongs to. Returns: userId, email, firstName, lastName, workspaceId, workspaceName. Recommended as the first call to verify the key is valid.
- **Create a Softsync oauth authorize** (Create). Generate an OAuth 2.1 authorization code in softsync. Returns the OAuthAuthorizeResponseDto payload from the 201 response for use in the subsequent token exchange. Requires a JSON request body (OAuthAuthorizeDto). Required: clientId, redirectUri.
- **Create a Softsync oauth token** (Create). Exchange an OAuth 2.1 authorization code for a token set in softsync. Returns the OAuth token response object (OAuthTokenResponseDto). Required: clientId, clientSecret, code.
- **Create a Softsync group** (Create). Create a new group in Softsync. Returns the created group object including its id, views, created_at, and updated_at. The request body is required; the upstream field list is not enumerated in the discovered docs, so send the group fields Softsync documents for creation. Required: title.
- **Softsync groups duplicate** (Duplicate). Duplicate a Softsync group and assign all source records to the new group. Returns the duplicated group object including its id, views, created_at, and updated_at. Required: group_id.
- **Get single Softsync group by ID** (Get). Get a single Softsync group by id, with all of its views. Returns: id, title, description, order, metadata, visibility, charts, createdAt, updatedAt, views, created_at, updated_at. Required: id.
- **Update a Softsync group by ID** (Update). Update a group in Softsync. Returns the updated group object including its id, views, created_at, and updated_at. Required: id.
- **Delete a Softsync group by ID** (Delete). Delete a Softsync group by id (soft delete). Returns an empty 200 response on success. Required: id.
- **Create a Softsync groups view** (Create). Create a new view within a group in softsync. Returns the created view including its id, name, config, order, and createdAt/updatedAt timestamps. Required: groupId, tableId, name, viewType.
- **Get single Softsync groups view by ID** (Get). Get a view by id in softsync. Returns the view including its id, name, config, order, and createdAt/updatedAt timestamps. Required: id.
- **Update a Softsync groups view by ID** (Update). Update a view by id in softsync. Returns the updated view including its id, name, config, order, and createdAt/updatedAt timestamps. Required: id.
- **Delete a Softsync groups view by ID** (Delete). Delete a view (soft delete) by id in softsync. Returns an empty 204 response on success. Required: id.
- **List all Softsync group views** (List). List all views saved in a Softsync group (views are saved layouts such as table, kanban, or calendar over an object). Returns an array of view records, each including its id and attributes describing the view's layout configuration. Required: group_id.
- **Update a Softsync group member by ID** (Update). Update a member's role in a Softsync group by sending the new role in the JSON request body. Returns the updated group member record including its id. Required: id, group_id, role.
- **Delete a Softsync group member by ID** (Delete). Remove a member from a Softsync group by id. Returns an empty 204 response on success. Required: id, group_id.
- **List all Softsync group members** (List). List all members of a Softsync group. Returns the group member records, each including its id. Required: group_id.
- **Create a Softsync group member** (Create). Add a member to a Softsync group by sending the member details in the JSON request body. Returns the created group member record including its id. Required: group_id, userIdentifier, role.
- **Create a Softsync group leaf** (Create). Leave a group in softsync as the current user, removing themselves from the group's members. Returns an empty 204 response on success. The group owner cannot leave their own group. Required: group_id.
- **Softsync group visibilities bulk update** (Update). Update a group's visibility settings in softsync. Returns the updated group object including its id and its views. Required: group_id, visibility.
- **Create a Softsync table compile** (Create). Compile and validate softsync table (Object) definitions without applying them. Accepts a JSON array of table definitions (each field carries an apiName, a kind of text, number, date, select, relation, user, or file, and kind-matching options) and returns the compile result for those definitions.
- **Create a Softsync table transform** (Create). Transform a JSON description of Objects into database tables in Softsync. The request body must be a JSON array of table (Object) descriptions; an invalid JSON structure is rejected. Returns the transformation result object on success.
- **List all Softsync table describes** (List). Describe the softsync workspace's tables as JSON. Returns the workspace description object including its tables with field IDs, groups with views, and workspace metadata. Fetch this first — nearly every write needs an ID from this response.
- **Update a Softsync table by ID** (Update). Update a single softsync table (Object) from a JSON description, addressed by id. Returns the upstream transform result for the applied change (the TransformResult component; the spec does not expose its field-level shape). Invalid JSON structure is…. Required: id, apiName, fields.
- **Delete a Softsync table by ID** (Delete). Delete a softsync table (Object) by id — the table is only removed when it contains no records. Returns the upstream delete result (the DeleteTableResult component; the spec does not expose its field-level shape). The call fails when the table still has records or does not exist. Required: id.
- **Create a Softsync record** (Create). Create a new record in softsync. Returns the created record with id, data (values keyed by field ID), created_at, and updated_at. A request body is required; value keys must be field IDs from the workspace schema, not field names. Required: tableId, groupId, data.
- **Get single Softsync record by ID** (Get). Get a single record by id in softsync. Returns: id, data, metadata, createdAt, updatedAt, lastInteractionAt, isDeleted, tableId, groupIds, relations, users, createdBy, created_at, updated_at. Set includeDeleted to true to fetch a record soft-deleted within the last 30 days (Bin). Required: id.
- **Update a Softsync record by ID** (Update). Update a record in softsync by id. Returns the updated record with id, data (field-ID keyed values), created_at, and updated_at. Field values must use field IDs; invalid values are rejected with a validation error. Required: id.
- **Softsync records restore** (Restore). Restore a soft-deleted record from the Bin in softsync. Returns an empty 204 response on success. Soft-deleted records are kept in the Bin for 30 days. Required: record_id.
- **Delete a Softsync record by ID** (Delete). Soft-delete a record in softsync by id, moving it to the Bin. Returns an empty 204 response on success. Required: id.
- **Get single Softsync records by ID by ID** (Get). Get multiple softsync records in one call by their IDs. Returns the matching records as an array, each with its id, data values keyed by field ID, and createdAt/updatedAt timestamps. Required: recordIds.
- **Get single Softsync record related record ID by ID** (Get). Get the IDs of the records related to a specific record in softsync. Returns the related record IDs payload (upstream RelatedRecordIdsDto; the discovered docs do not enumerate its fields). Required: record_id.
- **Create a Softsync records batch** (Create). Create multiple Softsync records in a single batch. Returns the array of created records, each with its id, data values keyed by field ID, and created_at/updated_at timestamps. Fetch field IDs from the workspace schema first (GET /table/describe). Required: tableId, groupIds, records.
- **Softsync records batches bulk update** (Update). Update multiple Softsync records in a single batch (available to workspace members). Returns the array of updated records, each with its id, data values keyed by field ID, and created_at/updated_at timestamps. Fetch field IDs from the workspace schema first (GET /table/describe). Required: records.
- **Create a Softsync records query** (Create). Query every record for a view in softsync, with the view's filters and sorts applied. Returns each record's id and its data map of field values keyed by field ID (fetch GET /table/describe first to obtain the field IDs). Filters and sorts accept table fields plus the reserved system fields __system_created_at, __system_updated_at, and __system_created_by. Required: groupId, viewId.
- **List all Softsync search records** (List). Search records in a softsync table using a semantic query (hybrid vector+trigram, or trigram-only keyword matching) or structured field filters, restricted to user-accessible groups. Returns the content-type-specific fields of each matching record. Max 100 per page. Required: tableId.
- **Get single Softsync records ID by ID** (Get). Resolve the IDs of every record matching a group, view, or filter in softsync — the select-all operation. Returns: ids (array of matching record ID strings), truncated (true when the server cap is exceeded). Sort is ignored; results are id-only, ordered by primary key. Required: tableId.
- **Create a Softsync duplicates check** (Create). Check a softsync table for duplicate record groups. Returns duplicate groups built from the table's common duplicate-capable fields, each with an id and table-specific duplicate-match attributes; results are scoped to records visible to the current user. Max 100 per page. Required: tableId.
- **Create a Softsync records find** (Create). Find a single record in a softsync table using structured field filters. Returns the matched record's data map of values keyed by field ID (field IDs come from reading the workspace schema first). Requires a request body identifying the table and the field filters to match. Required: tableId, fieldFilters.
- **Create a Softsync record group** (Create). Add a group to a record in softsync, making the record visible to that group's members. Returns an empty 200 response on success (no response body). Required: record_id, newGroupId.
- **Delete a Softsync record group by ID** (Delete). Remove a group from a record in softsync. Returns an empty 204 response on success. Required: id, record_id.
- **Create a Softsync groups add** (Create). Add a group to multiple softsync records in a single batch operation. Returns a success confirmation with no response body on success. Requires record_ids and group_id. Required: newGroupId, recordIds.
- **Create a Softsync groups remove** (Create). Remove a single group from multiple Softsync records in one batch call. Returns an empty 204 response on success. Required: groupId, recordIds.
- **Create a Softsync batch merge** (Create). Merge multiple softsync records into one. Returns the merged record with id and attributes (record values are keyed by field ID). All merged records must be from the same table. Required: recordIds.
- **Create a Softsync records analytic** (Create). Generate multiple analytics charts over records in a single Softsync request. Returns the generated chart data for every chart requested (Softsync MultiChartDataDto; the upstream docs define the payload by schema reference without enumerating its fields). Requires a MultiChartQueryDto JSON request body. Required: charts.
- **Delete a Softsync batch delete by ID** (Delete). Batch delete multiple records in softsync in a single call. Requires record_ids (array of record IDs to delete). Returns an empty 200 response on success; fails with 404 if one or more records are not found. Required: recordIds.
- **Update a Softsync batch update field by ID** (Update). Apply a partial field patch to many records at once in Softsync, merging the given fields into each record while leaving all other fields untouched — ideal for 'select all' edits where only the target record IDs and the field patch are sent. Returns a confirmation that the records were updated successfully (fails if any record is not found or permissions are insufficient). Required: recordIds, data.
- **Create a Softsync batch restore** (Create). Restore multiple soft-deleted records from Bin in softsync in a single batch call. Returns an empty 200 response on success. Required: recordIds.
- ...and 30 more tools. Call `tools/list` via the MCP endpoint, or see the full catalog via the API, for the complete set.
