- A Unipile account (dashboard.unipile.com). Unipile is a paid service billed by Unipile directly. AgentSDR does not charge for it and this page lists no prices: check Unipile’s own pricing.
- The owner or admin role in AgentSDR.
- Your AgentSDR running at a public address (
BETTER_AUTH_URL) if you want webhooks registered automatically. - About 10 minutes.
Overview
Unipile powers:- LinkedIn: connection invitations, messages, search and inbox sync. See LinkedIn accounts.
- WhatsApp: messaging, the Numbers list and calling. See WhatsApp numbers.
- Webhooks: Unipile tells AgentSDR when an invitation is accepted or a message arrives.
Connect Unipile
Create or sign in to your Unipile account
Copy your DSN
api8.unipile.com:13851. Copy it as it appears. You can leave off https://: AgentSDR adds it.Generate an access token
Open the Connection page in AgentSDR

Three fields, then Connect and test.
Fill in the fields
Click Connect & test
What saving does
- Live verification. AgentSDR asks Unipile for one account (
GET /api/v1/accounts?limit=1) with your token. A wrong DSN or token fails here and nothing is saved. - Webhook registration. AgentSDR registers the webhooks it needs in your Unipile workspace through Unipile’s API, so you do not set anything up in the Unipile dashboard. Registration replaces earlier ones and never duplicates. It is skipped on a localhost address, because Unipile’s servers cannot reach it. Run AgentSDR at its public address and click Register again, or save again, to register.
Link accounts
Connecting Unipile gives AgentSDR access to your Unipile workspace. You then link the actual LinkedIn profiles and WhatsApp numbers.- LinkedIn
- WhatsApp
- Go to Settings → LinkedIn → Accounts and click Connect LinkedIn account.
- You are sent to Unipile’s hosted sign-in. Sign in to LinkedIn there and finish any verification. AgentSDR never sees your LinkedIn password. The link is single-use and short-lived (15 minutes), so use it right away.
- You return to the Accounts page, which syncs the account from Unipile.
Check that it works
- In the Unipile dashboard, open the webhooks list. You should see two entries named AgentSDR · LinkedIn connection accepted and AgentSDR · Messages (LinkedIn and WhatsApp), pointing at your public address with
?org=in the URL. - Link an account (above) and confirm it appears under Settings → LinkedIn → Accounts or Settings → WhatsApp → Numbers.
- Send yourself a WhatsApp message to a linked number. A message arriving is stored first in a webhook ledger, so even a failed delivery is retried by the
replay-webhooksjob (Self-hosting).
Troubleshooting
Could not reach Unipile at that API URL
Could not reach Unipile at that API URL
Unipile DSN must look like api8.unipile.com:13851
Unipile DSN must look like api8.unipile.com:13851
Unipile rejected the access token
Unipile rejected the access token
Unipile answered 500 (or another status)
Unipile answered 500 (or another status)
Unipile answered followed by the HTTP status. Try again later and check Unipile’s status. Any status other than 401 and 403 comes from Unipile, not from your credentials.Registration failed, or Not registered
Registration failed, or Not registered
Unipile answered shows what Unipile refused. If the Webhooks line says the address is local, BETTER_AUTH_URL is a localhost address: set it to your public URL and register again. If it says no public address, BETTER_AUTH_URL is not set. Or use Show URLs and secret and create the webhooks by hand in Unipile with the header x-unipile-secret.Unipile is not connected — connect it in Settings → LinkedIn → Connection
Unipile is not connected — connect it in Settings → LinkedIn → Connection
Messages or accepted invitations do not arrive
Messages or accepted invitations do not arrive
Connected, but the sync failed
Connected, but the sync failed