Saves follow-up information after contacting a client about a quotation. This endpoint helps track lead qualification, interest levels, and schedule future contact reminders.
Body Parameters
The ID of the quotation being followed up
Whether you were able to speak with the decision maker
Client’s perceived interest level. Values: high, medium, low, none
Assessed payment capacity. Values: high, medium, low, unknown
Contact’s decision-making authority. Values: full, partial, none, unknown
Current agreement status. Values: accepted, pending, negotiating, rejected
Type of reminder to set. Values: specific_date, interval, none
Specific date for next contact (ISO 8601 format). Required if contact_reminder_type is specific_date
contact_reminder_interval_value
Number of time units for the reminder interval. Required if contact_reminder_type is interval
contact_reminder_interval_unit
Time unit for the interval. Values: hours, days, weeks. Required if contact_reminder_type is interval
Contact method used. Values: phone, email, whatsapp, in_person, other
Response
Indicates if the follow-up was saved successfully
Unique identifier for the created follow-up record
Timestamp when the next follow-up reminder is scheduled (if applicable)
cURL (Specific Date)
cURL (Interval)
JavaScript
curl --request POST \
--url https://api.ambiotec.com/api/quotations/followup \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"quotation_id": 789,
"talked_with_lead": true,
"interest_perception": "high",
"payment_capacity": "medium",
"decision_power": "full",
"agreement": "negotiating",
"contact_reminder_type": "specific_date",
"contact_reminder_date": "2026-03-10T14:00:00Z",
"medium": "phone"
}'
{
"success" : true ,
"followup_id" : 456 ,
"next_reminder_at" : "2026-03-10T14:00:00Z" ,
"message" : "Seguimiento registrado exitosamente"
}
Business Logic
Lead Qualification Tracking
The follow-up system helps qualify leads by tracking:
Contact Success : Whether you reached the actual decision maker (talked_with_lead)
Interest Level : Client’s enthusiasm about the service (interest_perception)
Financial Capability : Ability to pay for services (payment_capacity)
Authority : Contact’s power to approve the quotation (decision_power)
Status : Current stage of negotiations (agreement)
Reminder Scheduling
The system supports two types of reminders:
Specific Date : Set an exact date/time for follow-up
Use for scheduled appointments or promised callbacks
Example: “Client said to call back on March 10 at 2 PM”
Interval-Based : Set a reminder after a time period
Use for general follow-ups without specific appointments
Example: “Follow up in 3 days if no response”
Calculation: next_reminder_at = NOW() + interval
Scheduler Integration
When a reminder is set:
The quotation followup scheduler is automatically refreshed (refreshQuotationFollowupScheduler())
The scheduler will trigger notifications when next_reminder_at is reached
Users receive alerts to contact the client again
Relationship to Quotation Lifecycle
Follow-ups are typically created:
Automatically 24 hours after a quotation is finalized (via initiateQuotationFollowupJob())
Manually by sales team after client contact
After each subsequent contact until the quotation is accepted or rejected
Notes
The follow-up is associated with the user who created it (created_by from auth token)
Multiple follow-ups can be recorded for the same quotation to track conversation history
The database function fn_insert_quotation_followup() handles all validation and reminder calculations
Reminder notifications help prevent quotations from going stale
Track all contact attempts, even unsuccessful ones, for better pipeline visibility