Home Integrations

Integrations

Everything you need to integrate your services. Explore the API documentation, MCP capabilities, and instructions for creating webhooks.
Alex Mishyn
By Alex Mishyn
3 articles

Working with Webhooks: Creation and Setup

Webhooks are a tool for automatically transferring data from your workspace to external systems (for example, to your CRM, Slack, or to orchestrator services like Make or Zapier) in real time, when a certain event occurs. How to create a Webhook To add a new integration, go to the general system settings (the gear icon on the left sidebar) and open the Webhooks section. 1. Click the Create webhook button in the top right corner of the screen. 2. In the modal window, fill in the required fields: - Name: Enter a clear name for the webhook. - Event: Select the trigger event from the list that will start the data transfer (see the detailed list below). - Target URL: Paste the link to the receiving side (the URL of your application or a link generated by Make/Zapier/etc). 3. Filters criteria (Optional): You can add filtering rules (Add rule / Add group). If you set up filters, the webhook will trigger not for all contacts, but only for those that match the specified criteria. 4. Click Create to save the settings. List of available triggers (Events) When creating a webhook, you can select one of many system events for it to react to. They can be roughly divided into several categories: - Contact actions: Contact Enriched (the contact has been enriched with data), Contact Accepted LinkedIn Connection Request (the connection request was accepted), Contact Replied (a reply on LinkedIn, Email, or InMail). - Sender actions (Sender Profile): A successfully sent connection request (Sent LinkedIn Connection Request) or a message through any channel (Sent LinkedIn Message, Email, InMail). - System notifications: Sender Profile Run Issue (an error occurred with a sender profile). - Custom Call: Contact Export and Account Export. 🟡 Note: Unlike the standard triggers, Custom Call events are used to set up special Webhook Call nodes inside your automations (for more details on how they work, read the article [How to Setup Webhook Call]), as well as for bulk exporting contacts on request from the CRM - Contacts section (the Export - Webhook button). Managing webhooks The main page of the section shows a table with all the webhooks you've created. For quick navigation, there's a search panel above the list: you can find the webhook you need by its name - the Search by name (1) field. Or filter the general list by a specific trigger - the Select event (2) dropdown. At the right end of each row, there's an actions menu - the three-dot icon (3). It lets you: - Test: Send a test request to check whether the receiving side gets your data correctly. - Edit: Open the modal window for editing the webhook settings. - Delete: Permanently delete the webhook from the system. Each row in the table contains comprehensive information about the webhook, split into the following columns: - Status: A toggle for quickly enabling or disabling the webhook without having to delete it. - Name: The webhook name you set. - Event: The trigger event that activates this webhook. - URL: The link to the receiving side (Target URL) where the data is sent. - Filters: Shows whether contact filtering rules are applied to this webhook. - Requests: Overall trigger statistics. It shows the number of both successful and failed requests. - Last Triggered: The date and time the webhook was last triggered. History and logging (History) Next to the main tab, there's the History tab. This is a system event log that records absolutely every trigger of your webhooks. Here you can check the status of each request, see the webhook name and the event, and also view a detailed log (View log) to figure out the reasons for an error if the data wasn't delivered. The lists in the history can be filtered by webhook name, status, or date range.

Last updated on Jul 22, 2026

Getting Started with the Grinfi API

The Grinfi Public API lets you seamlessly connect the platform to your own tools: CRM systems, internal dashboards, no-code platforms (such as Make or Zapier), or custom scripts. Almost everything you do in the Grinfi web app is also available over the API: managing contacts, running automations, sending LinkedIn messages and emails, and setting up webhooks to track events in real time. In this article, we'll go through the basics: how to create your first API key, make a test request, and what our API can do in general. Step 1. Create an API key To get started, you'll need a unique access key: 1. Log in to your Grinfi account at leadgen.grinfi.io. 2. Open the general settings and go to Settings -> API Keys. 3. Copy an existing key or click the button to create a new one. 🟡 Important security and access details: - Each API key is strictly tied to the team (workspace) that was active at the moment it was created. All requests made with that key will have access to the contacts, automations, and messages of that team only. - Keep your API key secret. Anyone who has access to it gains control over your account data. If a key is accidentally compromised, delete it immediately and generate a new one. Step 2. Make a request The base URL for all API requests is https://leadgen.grinfi.io. Every request must include your key in the authorization header: Authorization: Bearer YOUR_API_KEY. To quickly check that the API works, try searching for contacts in your account with this cURL request: curl -X POST "https://leadgen.grinfi.io/leads/api/leads/search" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"filter": {}, "limit": 5, "offset":0}' If everything is set up correctly, you'll get back JSON with the first five contacts from your CRM. 💡 Two things worth remembering when working with requests: - Always send the Content-Type: application/json header. Requests in form-encoded format will not pass the system's validation. - Large data sets are returned page by page using the limit and offset parameters. The server response always includes the total and has_more fields, so you know exactly when to stop paging through the results. What the Grinfi API can do Our API is logically divided into four main areas: | Area | What it covers | | ---------------- | ---------------------------------------------------------------------------- | | CRM | Contacts, companies, lists, tags, pipeline stages, custom fields, and notes. | | Outreach | Automations, tasks, and sender profiles. | | Messaging | LinkedIn messages, emails, mailboxes, and attachments. | | Integrations | Webhook setup for receiving real-time event notifications. | The most popular API use cases: - Syncing with your CRM: Create or update contacts along with custom fields using a single POST /leads/api/leads/upsert call. - Adding contacts to automations: Programmatically add contacts to a running sequence (for example, right after someone fills out a lead form on your website). - Sending messages directly: Send a LinkedIn message or an email to a specific contact straight from your own workflow. - Reacting to events in real time: Set up a webhook and get an HTTP call every time a contact replies, changes status, or is enriched with new data. - Bulk import and export: Upload CSV files to import a database in bulk, or queue exports of contacts and companies. Frequently asked questions (FAQ) I'm getting a 401 or 403 error. What should I do? It means the key is missing from the request, is invalid, or has expired. Check that the Authorization: Bearer header is passed correctly, and generate a new key in the API Keys section if needed. Are there rate limits? Yes, which is why we recommend using pagination and setting a reasonable request rate. For bulk data operations, it's far more efficient to use the dedicated mass-action endpoints and the CSV import/export tools instead of looping through dozens of separate small calls. Full documentation This article is only a basic overview. The complete technical API reference, with all endpoints, detailed request schemas, and server response examples, is available here: [Grinfi API Documentation].

Last updated on Jul 22, 2026

Connecting Grinfi to Claude via the MCP Server

The Grinfi MCP Server builds a direct bridge between your Grinfi account and Claude, Anthropic's AI assistant. It's a unique way to manage every part of your outreach in plain language. Instead of hunting for the right section and clicking through the platform's interface, you can simply type a request into the chat: "Show me contacts with unread messages and draft a reply for each one". Claude securely connects to your workspace over the MCP protocol (Model Context Protocol), finds the data it needs, and performs the action. What you can do with the integration Once connected, Claude can work with almost every part of your Grinfi workspace: - Contacts and CRM: Search for, create, and update contacts. You can easily manage lists, assign tags, and move contacts between pipeline stages. - Automations: Review stats, start or stop automations. Add or remove contacts from automations right from the chat with Claude. - Inbox (Unibox): Read LinkedIn and email conversations, look for unread replies, and send messages instantly. - Analytics and account health: Get a quick overview of your workspace with a single question. Find out about today's activity, check the status of connected LinkedIn accounts and mailboxes, and keep an eye on active automations. - Troubleshooting: Analyze why tasks failed, and retry or skip actions in bulk. - Import and export: Upload CSV files, import contacts, or queue a database export. How to connect Claude to Grinfi There are two ways to set up the integration, and the one you choose depends on your Claude plan. Option 1. Cloud connection (recommended) If you're on a paid Claude plan (Pro, Team, or Enterprise), you don't need to install anything on your device: 1. Go to mcp.grinfi.io 2. Sign up and follow the on-screen steps to add Grinfi as a connector in your Claude account. 3. The Grinfi tools will appear in your chat, and every request will be securely tied to your personal account. Option 2. Local installation (Claude Desktop) If your plan doesn't support cloud connectors and you'd like to run the server on your own computer: 1. Copy your API key from the Grinfi platform (Settings -> API Keys section). 2. Download the server files from the repository (click the green Code button -> Download ZIP). 3. Double-click the installer for your operating system (install.sh on Mac or install.bat on Windows). 4. When the installer asks for it, paste the API key you copied. (Please note: the installer will download and install the Node.js environment on its own if you don't already have it on your device). 5. Fully quit and reopen the Claude Desktop app. grinfi will appear in the tools list. Popular use cases Here are a few examples of the tasks you can give the AI: 💡 Morning inbox review "Check my unread conversations and summarize who replied. Draft a follow-up for everyone who showed interest." 💡 Campaign management "Show me my automations. Pause the ones with a reply rate below 2% and show me their stats." 💡 Quick CRM work *"Find the contact with the email *john@example.com, add the 'warm lead' tag, and move them to the Engaging stage." 💡 System health check "Run a health check on my workspace - is everything okay with the LinkedIn accounts and mailboxes? Are there any failed tasks I should look at?" 💡 Bulk error fixes "Show me why tasks failed this week, and retry everything that failed because of a proxy error." Frequently asked questions (FAQ) Is it safe? Absolutely. The connection uses your personal Grinfi API key (for the local option) or a secure personal login (for the cloud one). Claude only has access to your own team's data. You can revoke access at any moment by simply deleting the key or the connector. Does Claude send messages automatically without my approval? No, Claude only performs actions on your direct instructions in the chat. Before doing anything that involves sending a real message to a contact, the AI will always show you a draft and ask for your confirmation. Which connection option should I choose? We recommend using the cloud connection via mcp.grinfi.io. It works seamlessly across both the web version and desktop app, requires no extra files on your device, and updates automatically. The local installation is only worth using when your current Claude plan doesn't support connectors.

Last updated on Jul 22, 2026