Ticketing
Linq
Connect Linq once and hand every teammate a governed MCP endpoint with 41 tools ready to call from Claude, ChatGPT, Cursor, or any MCP client, inside the same permissions they already have, with every call checked and logged.
Automations & dashboards
From answering questions to doing the work
A person no longer has to ask. A trigger starts the work, inside the same permissions and the same audit log as everything else. Automations and live dashboards ship on the Black plan.
Automations
Put Linq work on a schedule.
A trigger starts a sequence of steps: call a Linq tool, transform the result, branch, wait, and ask a person when it matters.
Linq digest
Run 418 · started 2 minutes ago · on behalf of Emma Laurent
-
✓
Schedule
Every weekday at 08:00
0.2s -
✓
Fetch messages
Linq
1.4s -
✓
Group by owner
Transform
0.1s -
✓
Draft the digest
Agent step
Ran with 4 tools, returned a structured summary
6.2s -
Approve the digest
Needs approval
Assigned to Michael Brennan
Approve Deny -
Post the digest
Linq
Queued
Collections and dashboards
Report on Linq without asking.
Collections hold your own data, written by an automation and read by a dashboard that refreshes on a schedule.
Linq health
Refreshed 4 minutes ago · every 15 minutes · from the messages collection
Messages
1,284 ↓ 12%
Chats
96 ↓ 8%
Needs attention
3 ↑ 2
Updated this week
412 ↑ 9%
Messages created
Last 14 days
By workspace
Share of activity
Engineering 34%
Product 27%
Support 21%
Sales 18%
AI tools
Linq tools for your AI agents
41 tools are ready to call through Elaichi's MCP endpoint the moment you connect Linq, governed by the same roles, restrictions, and audit log as everything else in Elaichi.
list_all_linq_chats
List all Linq chats for the authenticated partner. Returns a paginated list of chat objects including id, display_name, handles, service, and health_status. Optionally filter by from (sending phone number) or to (participant handle).
create_a_linq_chat
Create a new Linq chat with specified participants and send a required initial message. Returns the created chat object including id, display_name, handles, and service.parts. The first outbound message cannot contain a link or URL. Required: from, to, message.
get_single_linq_chat_by_id
Get a single Linq chat by id. Returns the chat object including id, display_name, handles, service, and health_status. Required: id.
update_a_linq_chat_by_id
Update a Linq chat's display name or group icon. Returns: status, chat_id. Accepted asynchronously (202); confirm the outcome via chat.group_name_updated or chat.group_icon_updated webhooks. Required: id.
create_a_linq_chat_participant
Add a participant to a linq group chat. Returns: status, trace_id, message. Group chats only; the new participant must support the same messaging service as the group. Required: chat_id, handle.
linq_chat_participants_bulk_delete
Remove a participant from a linq group chat. Returns: status, trace_id, message. Group chats only; the chat must have 3+ participants after removal. Required: chat_id, handle.
create_a_linq_chat_leaf
Leave a linq group chat. Removes your number from the group; after leaving, interaction endpoints for the chat return 409. Returns: status, trace_id, message. Supports iMessage group chats with 4 or more active participants; DM chats are not supported. Required: chat_id.
create_a_linq_chat_typing
Start a typing indicator in a linq chat. Returns an empty 204 response on success. Group chats are not supported, and the indicator may not reach inactive chats. Required: chat_id.
linq_chat_typings_bulk_delete
Stop a typing indicator in a linq chat. Returns an empty 204 response on success. Group chats are not supported. Required: chat_id.
create_a_linq_chat_read
Mark all messages in a chat as read in Linq. Returns an empty 204 response on success. Required: chat_id.
create_a_linq_chat_share_contact_card
Share your Linq contact card (Name and Photo Sharing) with a chat. Returns an empty 204 response on success. A contact card must be configured before sharing. Required: chat_id.
create_a_linq_message
Send a message in Linq without providing a from number; Linq auto-selects the sending line and target chat. Returns the send result including chat_id, message, from, and from_selection. Voice memos are not supported. Required: to, message.
get_single_linq_message_by_id
Get a message in Linq by id. Returns the full message including id, chat_id, delivery_status, parts, and service. Required: id.
update_a_linq_message_by_id
Edit a message part in Linq. Returns the updated message including id, chat_id, delivery_status, parts, and service. Edits allowed up to 5 times within 15 minutes of sending. Required: id, text.
delete_a_linq_message_by_id
Delete a message from Linq by id. Returns an empty 204 response on success. Note: this removes the message from the Linq API only, not from the recipient's chat. Required: id.
list_all_linq_message_threads
List all messages in a thread in Linq. Given any message id in the thread, returns the originator and all replies in chronological order. Returns: id, chat_id, service, preferred_service, from, from_handle, parts, reply_to, is_from_me, is_delivered, is_read, delivery_status, created_at, updated_at, sent_at, delivered_at, read_at, effect. Required: message_id.
create_a_linq_chat_voicememo
Send a voice memo to a chat in linq as an iMessage voice memo bubble. Returns the queued voice memo under the voice_memo key. Supported formats: MP3, M4A, AAC, CAF, WAV, AIFF, AMR. Max 10MB. Required: chat_id.
create_a_linq_message_update
Update an iMessage app card in place in Linq. Returns the new message version as chat_id and message (id, created_at, delivery_status, parts). The original card must be delivered and sent by you; only url, fallback_text, and layout are replaced. Required: message_id, layout.
create_a_linq_attachment
Pre-upload a file in Linq to obtain a presigned URL and a permanent attachment_id. Returns the upload payload including attachment_id, upload_url, download_url, http_method, expires_at, and required_headers. Max file size 100MB; WebP, SVG, FLAC, OGG, and executables are rejected. Required: filename, content_type, size_bytes.
get_single_linq_attachment_by_id
Get metadata for a specific Linq attachment by id. Returns the attachment object including id, filename, content_type, size_bytes, status, download_url, and created_at. The status field is deprecated. Required: id.
delete_a_linq_attachment_by_id
Permanently delete a Linq attachment by id. Returns an empty 204 response on success. Required: id.
list_all_linq_phonenumbers
List phone numbers assigned to the authenticated partner in Linq. Deprecated; use GET /v3/phone_numbers instead. Returns: id, phone_number, type, country_code, capabilities.
list_all_linq_phone_numbers
List phone numbers assigned to the authenticated Linq partner. Returns a list of phone numbers with id, phone_number, forwarding_number, reputation, and health_status. No required parameters.
update_a_linq_phone_number_by_id
Update the forwarding number for a Linq phone number. Returns the updated phone number with id, phone_number, forwarding_number, reputation, and health_status. Pass an empty string to clear forwarding. Required: id, forwarding_number.
list_all_linq_available_numbers
Get the best available Linq sending line (E.164). Returns: phone_number, vcf_url. Optionally pass to as a list of recipient handles (E.164 or email) to make the line choice sticky.
list_all_linq_webhook_events
List available webhook event types in linq. Returns an array of event strings such as message.sent, message.received, and message.delivered.
list_all_linq_webhook_subscriptions
List all webhook subscriptions in Linq. Returns: id, created_at, is_active, subscribed_events, target_url, updated_at, phone_numbers.
create_a_linq_webhook_subscription
Create a new webhook subscription in Linq. Returns: id, target_url, signing_secret, subscribed_events, phone_numbers, is_active, created_at, updated_at. Each target_url can only be used once per account; store the signing_secret securely as it is only returned once. Required: target_url, subscribed_events.
get_single_linq_webhook_subscription_by_id
Get a single Linq webhook subscription by id. Returns: id, target_url, subscribed_events, phone_numbers, is_active, created_at, updated_at. Required: id.
update_a_linq_webhook_subscription_by_id
Update a Linq webhook subscription by id. Returns: id, target_url, subscribed_events, phone_numbers, is_active, created_at, updated_at. The signing secret cannot be changed. Required: id.
delete_a_linq_webhook_subscription_by_id
Delete a Linq webhook subscription by id. Returns an empty 204 response on success. Required: id.
create_a_linq_capability_check_imessage
Check whether a recipient address is reachable via iMessage in Linq. Returns: address, available. Required: address.
create_a_linq_capability_check_rc
Check whether a recipient address supports RCS messaging in Linq. Returns: address, available. Required: address.
list_all_linq_contact_cards
List contact cards in Linq. Returns: phone_number, first_name, last_name, image_url, is_active. Optionally filter by phone_number.
create_a_linq_contact_card
Create a contact card in Linq for initial, one-time setup. Returns: phone_number, first_name, last_name, image_url, is_active. Use PATCH for later updates. Required: phone_number, first_name.
linq_contact_cards_bulk_update
Update an existing active contact card in Linq. Returns: phone_number, first_name, last_name, image_url, is_active. Omitted body fields keep their existing values. Required: phone_number.
create_a_linq_location_request
Send a location sharing request to a contact in a linq chat. Returns: success, message. Only works in 1:1 iMessage chats; group, SMS, or RCS chats return a 409 conflict. Required: chat_id.
list_all_linq_chat_locations
List live location-sharing features for a Linq chat. Returns a GeoJSON Feature array with type, Point geometry, and properties including handle, address, locality, and updated_at. Required: chat_id.
list_all_linq_chat_messages
List messages in a Linq chat thread. Returns: id, chat_id, service, preferred_service, from, from_handle, parts, reply_to, is_from_me, is_delivered, is_read, delivery_status, created_at, updated_at, sent_at, delivered_at, read_at, effect. Required: chat_id.
create_a_linq_chat_message
Send a message to an existing Linq chat. Returns the accepted message with chat_id and the message object (id, created_at, delivery_status, parts, from_handle).parts. Link and iMessage app parts must each be the only part in the message. Required: chat_id, message.
create_a_linq_message_reaction
Add or remove an emoji reaction to a Linq message. Returns: status, trace_id, message. Provide custom_emoji when type is custom; optionally target a specific part via part_index. Required: message_id, operation, type.
No tools match your search.
How it works
From Linq account to governed MCP endpoint
Connect
Link a Linq account through Elaichi's hosted connect flow. Credentials are vaulted, so nobody, including the AI, ever sees them.
Compose
The connection becomes a toolbox instantly. Curate which Linq tools are exposed, rename them, or freeze arguments.
Authorize
Point Claude, ChatGPT, Cursor, or any MCP client at the one Elaichi endpoint and sign in with OAuth, governed by roles, restrictions, and audit logs.
Put your agents to work in the tools you already use
Start a 14-day Gold trial. Connect a product, curate a toolbox, and paste a governed MCP endpoint into Claude, ChatGPT, or Cursor in minutes.