v1
latestOpenAPI 3.0.12026-07-22120163333.7 KBSend Opportunity Alert
Sends an in-app notification to the agent(s) assigned to the given lead, representing a buyer/seller activity signal (e.g. viewed a listing, saved a search, requested CMA). Certain notificationType values also trigger SMS and Email delivery.
Use case: a partner system observes a user action on its own site and wants that action to surface as an opportunity in the assigned agent's Lofty inbox.
Delivery channels
| Channel | Trigger |
|---|---|
| In-app push | All notificationType values |
| SMS + Email | Browse (11/48/138), Saved listing (9/52/136), Saved search (27/140), Mortgage calculator (89), Return-to-site (166) |
If the lead belongs to a lead pond, the notification is broadcast to all pond members instead of the single assignee.
Important notes
- The leadId must belong to the caller's own team.
- Agents whose team has the OPPORTUNITY resource disabled are silently skipped.
- This endpoint is not idempotent. Repeated calls produce repeated deliveries.
- The data field in the response is a best-effort success hint, not a strict delivery confirmation. See the 200 response description for details.
Headers
Bearer [access_token]
application/json
Request body
Example request
{
"leadId": 100001,
"description": "123 Main St, San Francisco, CA 94102",
"link": "https://example.com/listing/123",
"message": "I'd like to schedule a tour this weekend.",
"notificationType": 11
}Response
Request accepted. Response body = {status:{code:0,msg:"success"}, data:<bool>}. data=true => notification(s) dispatched to at least one assignee (non-pond path). data=false => one of the silent-failure conditions: leadId=0, notificationType=null, lead not found, no agent-role assignee, or the lead is a lead-pond lead (where broadcast is still triggered but the API returns false due to a known quirk). Callers SHOULD NOT rely on data=true/false as a strict delivery confirmation.
Example response
{
"status": {
"msg": "success"
},
"data": true
}