Claude-skill-registry bel-contact-creator
This skill should be used when the user asks to create a contact in Outlook from freeform text data (e.g., business cards, email signatures, addresses). It handles parsing contact information and creating properly structured Outlook contacts that sync to mobile devices.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/bel-contact-creator" ~/.claude/skills/majiayu000-claude-skill-registry-bel-contact-creator && rm -rf "$T"
skills/data/bel-contact-creator/SKILL.mdContact Creator
Purpose
This skill enables creating Outlook contacts from freeform text input (business cards, email signatures, address blocks). It extracts contact information, structures it according to Microsoft 365 API requirements, and creates contacts that automatically sync to the user's mobile devices.
When to Use
Use this skill when:
- User provides contact information in freeform text
- User asks to "create a contact" or "add to contacts"
- User provides business card information
- User wants contact information saved to Outlook
Workflow
Step 1: Verify MS365 Login
Before creating contacts, verify the user is logged into Microsoft 365:
mcp__ms365__login
If already logged in, the response will indicate success with user details.
Step 2: Extract Contact Information
Parse the freeform text to extract:
Required fields:
- Full name (e.g., "Dr. Mathias Bach")displayName
- Array of email objects withemailAddresses
andnameaddress
Common optional fields:
- First namegivenName
- Last namesurname
- Title (e.g., "Dr.", "Prof.")title
- Position (e.g., "Leiter Forschung & Entwicklung")jobTitle
- Company namecompanyName
- Array of phone numbersbusinessPhones
- Object withbusinessAddress
,street
,city
,postalCodecountryOrRegion
- Website URLbusinessHomePage
Field mapping guidelines:
- Extract titles (Dr., Prof., etc.) to both
and include intitledisplayName - Mobile numbers go in
array (MS365 API doesn't always expose separate mobile field)businessPhones - Format addresses as objects with separate street, city, postal code, country
- Include website without protocol (e.g., "www.example.com")
Refer to
references/contact_fields.md for complete field specifications.
Step 3: Create Contact
Call the MS365 API to create the contact:
mcp__ms365__create-outlook-contact
Pass the structured contact data as JSON in the
body parameter.
Step 4: Confirm Creation
Display a confirmation to the user with:
- Contact name
- Key details (position, company, phone, email)
- Note about mobile sync
Example confirmation:
✅ Dr. Mathias Bach wurde zu Ihren Outlook-Kontakten hinzugefügt Gespeicherte Daten: - Name: Dr. Mathias Bach - Position: Leiter Forschung & Entwicklung - Firma: Herrmann Ultraschalltechnik GmbH & Co. KG - Telefon: +49 175 2043181 - E-Mail: mathias.bach@herrmannultraschall.com - Adresse: Descostr. 3-11, 76307 Karlsbad, Germany Der Kontakt wird automatisch mit Ihrem Handy synchronisiert.
Error Handling
MS365 not logged in:
- Run
and follow authentication flowmcp__ms365__login - Retry contact creation after successful login
Missing required fields:
- At minimum,
and one email address are requireddisplayName - If missing, ask user for clarification
API errors:
- Display error message to user
- Suggest checking MS365 connection or permissions
Tips
- German business contacts often have titles (Dr., Prof.) - include these
- Phone numbers can be stored with formatting (e.g., "+49 (7248) 79 1097")
- Fax numbers are not supported in the standard contact fields via API
- Website URLs work with or without "http://" prefix
- The skill handles both individual contacts and can be used multiple times for batch import
Resources
references/
This skill includes detailed documentation of Microsoft 365 contact fields in
references/contact_fields.md. Refer to this file for complete API specifications and field mapping details.