ワンクリックで
crm
Local contact memory and interaction log for operator-reviewed phone follow-up
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Local contact memory and interaction log for operator-reviewed phone follow-up
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Real phone assistant runtime with Twilio/OpenAI Realtime calling, inbound screening, confirmed outbound calls, local call logs/transcripts, optional local CRM/contact memory, calendar booking, contacts lookup, MCP tools, and a loopback-only dashboard.
Screen incoming phone calls with an AI receptionist. Amber answers calls, identifies the caller, determines the purpose, takes a message, and delivers a structured summary. Use when the user wants to set up call screening, check screened call results, or customize screening behavior.
Contact memory and interaction log. Remembers callers across calls, stores personal context, and logs every conversation. Use when looking up a contact, adding notes about someone, or reviewing interaction history.
Query and manage the operator's calendar — check availability and create new entries
Give Hermes Agent real phone capabilities through Amber's Twilio/OpenAI voice bridge and MCP tools.
Give Hermes Agent real phone capabilities through Amber's Twilio/OpenAI voice bridge and MCP tools.
| name | crm |
| version | 1.0.0 |
| description | Local contact memory and interaction log for operator-reviewed phone follow-up |
| 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"]}}}} |
Stores local, operator-reviewed caller context and interaction history for phone follow-up.
crm with lookup_contact using the caller's phone number (from Twilio caller ID) only under the operator's caller notice/consent and retention policy.context_notes only when relevant to the call purpose. Avoid surprising rapport-building from intimate or unnecessary details.When someone shares their name, email, company, or relevant follow-up details, upsert it via crm.upsert_contact only if that fits the operator's caller notice/consent and retention policy. Avoid collecting sensitive or unnecessary personal details.
log_interaction with summary + outcomeSame exact flow: lookup at start, upsert + log_interaction at end.
| Action | Purpose |
|---|---|
lookup_contact | Fetch contact + last 5 interactions + context_notes. Returns null if not found. |
upsert_contact | Create or update a contact by phone. Only provided fields are updated. |
log_interaction | Log a call: summary, outcome, details. Auto-creates contact if needed. |
get_history | Get past interactions for a contact (sorted newest-first). |
search_contacts | Search by name, email, company, notes. |
tag_contact | Add/remove tags (e.g. "vip", "callback_later"). |
context_notes field is for Amber's internal memory, not for sharing call transcripts. Use it to inform conversation, not to recite it.Greeting a known caller:
Amber: "Hi Sarah, good to hear from you again. I have you down as preferring afternoon callbacks."
[context_notes remembered: "Prefers afternoon callbacks for appointment changes."]
Capturing relevant follow-up context:
Caller: "By the way, I got married last month!"
Amber: [only records this if it is relevant and appropriate under the operator's retention policy]
Amber (aloud): "That's wonderful! Congrats!"
End-of-call log:
Amber: [calls log_interaction: summary="Called to reschedule Friday appointment", outcome="appointment_booked"]
Amber: [calls upsert_contact with context_notes: "Prefers afternoon callbacks. Usually calls to reschedule appointments."]