| metadata | {"amber":{"capabilities":["read","act"],"confirmation_required":false,"timeout_ms":3000,"permissions":{"local_binaries":[],"telegram":false,"openclaw_action":false,"network":false},"function_schema":{"name":"crm","description":"Manage local contacts and interaction history for operator-reviewed phone follow-up. Use lookup_contact at the start of inbound calls (automatic, using caller ID) to check if the caller is known and retrieve relevant operator-approved context. Use upsert_contact to save caller-volunteered contact details (name, email, company) when appropriate under the operator's caller notice/consent policy. Use log_interaction at the end of every call to record what happened (summary, outcome). Use context_notes for concise, relevant follow-up context; avoid sensitive, intimate, or unnecessary personal details. Do not ask robotic CRM questions; capture only details naturally relevant to the call purpose and retention policy.","parameters":{"type":"object","properties":{"action":{"type":"string","enum":["lookup_contact","upsert_contact","log_interaction","get_history","search_contacts","tag_contact"],"description":"The CRM action to perform"},"phone":{"type":"string","description":"Contact phone number in E.164 format (e.g. +14165551234)","pattern":"^\\+[1-9]\\d{6,14}$|^$"},"name":{"type":"string","maxLength":200},"email":{"type":"string","maxLength":200},"company":{"type":"string","maxLength":200},"context_notes":{"type":"string","maxLength":1000,"description":"Concise operator-reviewed follow-up context. Avoid sensitive, intimate, or unnecessary personal details."},"summary":{"type":"string","maxLength":500,"description":"One-liner: what the call was about"},"outcome":{"type":"string","enum":["message_left","appointment_booked","info_provided","callback_requested","transferred","other"],"description":"Call outcome"},"details":{"type":"object","description":"Structured extras as key-value pairs (e.g. appointment_date, purpose)"},"query":{"type":"string","maxLength":200},"limit":{"type":"integer","minimum":1,"maximum":50,"default":10},"add":{"type":"array","items":{"type":"string","maxLength":50},"maxItems":10},"remove":{"type":"array","items":{"type":"string","maxLength":50},"maxItems":10}},"required":["action"]}}}} |