Troubleshooting
My AI assistant keeps asking me to sign in
The browser sign-in did not finish. If your tool lets you set headers (Cursor, Claude Code), switch to an API key, which does not expire.It worked before, and now everything fails
Your connection probably expired, which happens with browser sign-in. Reconnect the Groovin connector in your AI tool, or switch to an API key. This is not a Groovin outage, nor a LinkedIn restriction.”Couldn’t register with Groovin’s sign-in service”
The automatic setup of the connector failed. See Sign-in fails.The tools do not show up
Check that the address is exactlyhttps://api.groovin.ai/functions/v1/mcp-server, that your config file is valid, and that your plan allows custom connectors. Then fully restart the app.
I get a 429
LinkedIn or your CRM is slowing you down. Stop, wait at least 5 minutes, and space your calls out. See Limits and quotas.The assistant says someone has not read my message, but they have
LinkedIn read receipts are only a hint, and a missing one does not mean unread.- LinkedIn shows none when either of you turned off Delivery and typing indicators.
- InMails, and messages to people you are not connected with, often get none.
- The receipt goes on the latest message someone saw, so older messages usually show as not seen even when they were read.
- A receipt can take a while to appear.
seen: true on that message or on a later one you sent. In a group chat, seen only means at least one member did.
A contact was not created
An item failed when itscrm_contact_id is null, even in an HTTP 200 answer. Read its outcome and error. multiple_*_matches and uniqueness_conflict mean the person probably already exists in your CRM: review the records in matched_crm_contact_ids.
My webhook stopped
Groovin turns a webhook off after 3 days of failures. You get an email when it happens. See Delivery and retries.I do not see the Webhooks card
Webhooks are being rolled out by organization. Contact support if you need them.Known limitations
These are how things work today. Plan around them. No test mode. Everything acts on your real LinkedIn account and CRM. Only the connections import has a preview, and even a preview reads your CRM, saves matches in Groovin and emails you. No undo. A sent message or invitation cannot be taken back. Stopping an import does not remove what it created. No protection against repeats. There are no idempotency keys. After a failed send, you must check by hand. See A send failed. No daily counter for LinkedIn. Groovin does not count your messages, invitations or profile views against LinkedIn’s limits. See Limits and quotas. No rate-limit headers. Answers do not say how much allowance you have left. Some routes report what they used, throughlinkedin_requests.
No error codes. Use the HTTP status. See Errors.
Reads use POST. Every route uses POST, including those that only read.
Most lists have no next page. See Long lists.
Field names vary between routes. See Data models.
Unknown fields are ignored. On most routes, a misspelled optional field is ignored without an error, so check your field names.
Invalid JSON is not refused. A body that is not valid JSON is read as {}, with no error. On linkedin/relations, that reads your whole network: check your JSON before sending.
Name matches can link a namesake. When creating contacts, a single same-name contact with no LinkedIn URL is linked and gets this URL. Check who already exists first.
Blocked people. crm/contacts does not enforce your per-person creation blocklist. Check is_crm_contact_creation_blocked yourself.
Webhooks are managed in the extension only. There is no route to set them up.
Affinity has fewer features. Creating contacts and importing connections work with Attio and HubSpot only, and Affinity has no live CRM search.