Projects portal invite
Give a client contact the portal: a new link, emailed unless send is false, and returned. With mailbox_id the onboarding email goes from that client mailbox.
POST/api/v1/projects/{id}/portal
This call sends email or changes what sends. A key needs the send scope, and the Try it panel asks you to confirm before it runs.
Parameters
Path
| Name | In | Description |
|---|---|---|
idrequired | path | The record's id. |
Body
A JSON object, required. Fields not listed are ignored.
| Name | In | Description |
|---|---|---|
emailrequired | body | The client's email. |
name | body | Their name. |
first_name | body | First name. |
last_name | body | Last name. |
company | body | Company. |
mailbox_id | body | A mailbox set to Client emails or Both. |
subject | body | Subject; the saved template when left out. |
body | body | Body; the saved template when left out. |
send | body, boolean | Email the link (default yes). |
Example
curl
curl -X POST "https://crm.ashwanth.dev/api/v1/projects/{id}/portal" \
-H "Authorization: Bearer $SALES_ENGINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "",
"name": "",
"first_name": "",
"last_name": "",
"company": "",
"mailbox_id": "",
"subject": "",
"body": "",
"send": false
}'CLI
sales-engine projects portal invite <id> --email "..."The JSON above lists every documented field with a typed placeholder; send only the ones you mean.
Response
A 200 with the result under data, on creation too. Errors come back as an error object with a stable code; see Errors.
Shape
{
"data": { ... }
}Run it below to see the live shape for your workspace.
Try it
Runs against this server, as the workspace behind the key. Kept in this page while you browse the docs, gone on reload, never stored. Signed in to the app? Leave it blank and the call runs as you.
Path
requiredThe record's id.
Every documented field is listed above; leave out the ones you do not need.
Request
POST /api/v1/projects/%7Bid%7D/portal
Fill the path first.