Docs / InMail
switch_sales_navigator_contract
Make another Sales Navigator contract the active one on an account.
This action can change or spend something, and when it does it happens right away. Read “Good to know” first.
What you give it
| Input | What it is | Where to get it |
|---|---|---|
connectionIdneeded | A connection id. The LinkedIn account id (list_linkedin_accounts / list_sales_navigator_contracts). | Run list_linkedin_accounts and use accounts[].id from its answer.15 more places to get it
|
contractIdneeded | A contract id. The Sales Navigator contract id to make active (from list_sales_navigator_contracts), e.g. "SALES_2062952500". | Run list_sales_navigator_contracts and use accounts[].contracts[].id from its answer.4 more places to get it
|
confirmoptional | True or false. false (default) = preview only, nothing changes. true = switch now (only after the user said yes). | You write it. |
Call it
curl -X POST https://api.heyreagent.com/v1/actions/switch_sales_navigator_contract \
-H "Authorization: Bearer YOUR_KEY" \
-H "content-type: application/json" \
-d '{"connectionId":"PASTE_CONNECTION_ID_HERE","contractId":"PASTE_CONTRACT_ID_HERE"}'The same call in JavaScript
const response = await fetch("https://api.heyreagent.com/v1/actions/switch_sales_navigator_contract", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_KEY",
"content-type": "application/json",
},
body: JSON.stringify({
"connectionId": "PASTE_CONNECTION_ID_HERE",
"contractId": "PASTE_CONTRACT_ID_HERE"
}),
});
const answer = await response.json();
console.log(answer);The same call in Python
import requests
response = requests.post(
"https://api.heyreagent.com/v1/actions/switch_sales_navigator_contract",
headers={"Authorization": "Bearer YOUR_KEY"},
json={
"connectionId": "PASTE_CONNECTION_ID_HERE",
"contractId": "PASTE_CONTRACT_ID_HERE",
},
)
print(response.json())The same call in n8n
Add an HTTP Request node and fill it in like this:
| Method | POST |
| URL | https://api.heyreagent.com/v1/actions/switch_sales_navigator_contract |
| Send Headers | On. Name Authorization, Value Bearer YOUR_KEY |
| Send Body | On. Body Content Type JSON, Specify Body Using JSON, then paste the body below |
{
"connectionId": "PASTE_CONNECTION_ID_HERE",
"contractId": "PASTE_CONTRACT_ID_HERE"
}Put your own key where it says YOUR_KEY. Put your own value where it says PASTE_…_HERE: the table above says where each one comes from. New here? Start with your first call.
What you get back
When it worked, the answer is { "ok": true, "result": { … } }. Inside result:
action | |
outcome | |
message |
A field that does not apply to an answer is left out, or is null.
When it did not work, the answer is { "ok": false, "error": "…", "message": "…" }. What each error means.
Good to know
- connectionId is required here.
- confirm false (the default) only previews. confirm true switches now.
- For 10 to 20 seconds after a switch every call on that account can fail; wait before the next one.
- The answer's outcome is switched, already_active, not_found, refused, timeout, busy or transient.
In Claude or ChatGPT
Once connected, ask in your own words. The assistant sees this action as a tool with the same name, switch_sales_navigator_contract, and the same inputs.