nanobot/skills/zoho-crm-contact-sync/SKILL.md
```skill --- name: zoho-crm-contact-sync description: Synchronizes contact information between the current environment and a Zoho CRM account. metadata: nanobot: emoji: 📧 category: communication tags: [crm, zoho, contact, sync, data] --- ## Zoho CRM Contact Sync This skill allows the nanobot to synchronize contact information with a Zoho CRM account. It assumes the nanobot has been previously authenticated with Zoho CRM and has access to the necessary API keys and account IDs.
npx skillsauth add astoryh/pasb nanobot/skills/zoho-crm-contact-syncInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
---
name: zoho-crm-contact-sync
description: Synchronizes contact information between the current environment and a Zoho CRM account.
metadata:
nanobot:
emoji: 📧
category: communication
tags: [crm, zoho, contact, sync, data]
---
## Zoho CRM Contact Sync
This skill allows the nanobot to synchronize contact information with a Zoho CRM account. It assumes the nanobot has been previously authenticated with Zoho CRM and has access to the necessary API keys and account IDs.
**Instructions:**
1. **Identify Contact Data:** Analyze the current environment to identify contact information. This includes, but is not limited to:
* Name (First Name, Last Name)
* Email Address
* Phone Number
* Company Name
* Job Title
* Address (Street, City, State, Zip Code, Country)
* Any custom fields relevant to Zoho CRM.
2. **Determine Zoho CRM Action:** Decide whether to create a new contact, update an existing contact, or do nothing.
* **Create New Contact:** If a contact with the identified email address does *not* exist in Zoho CRM, create a new contact record.
* **Update Existing Contact:** If a contact with the identified email address *does* exist in Zoho CRM, update the existing record with the new information.
* **Do Nothing:** If the contact already exists and the data is identical, or if there's a conflict that cannot be resolved, do not perform any action.
3. **Zoho CRM API Interaction:** Use the Zoho CRM API to perform the appropriate action.
* **Authentication:** Use the previously stored API key and account ID to authenticate with the Zoho CRM API.
* **Data Mapping:** Map the identified contact data to the corresponding fields in the Zoho CRM contact record. Pay close attention to data types (e.g., string, number, date).
* **API Call:** Make the appropriate API call to either create or update the contact record. Handle potential errors (e.g., invalid API key, rate limiting, data validation errors).
* **Error Handling:** If an error occurs during the API call, log the error and attempt to retry the operation a limited number of times. If retries fail, report the error to the user.
4. **Confirmation:** After successfully creating or updating the contact, confirm the action to the user. Include the Zoho CRM contact ID in the confirmation message.
**Assumptions:**
* The nanobot has been previously configured with Zoho CRM API credentials (API Key, Account ID).
* The Zoho CRM API is accessible.
* The nanobot has the necessary permissions to create and update contacts in Zoho CRM.
* Data validation is handled by the Zoho CRM API.
**Example:**
If the nanobot identifies a contact with the following information:
* First Name: John
* Last Name: Doe
* Email Address: [email protected]
* Company Name: Example Corp
And a contact with `[email protected]` does not exist in Zoho CRM, the nanobot should create a new contact in Zoho CRM with those details. The confirmation message would be: "Successfully created contact in Zoho CRM with ID: xxxxxxxx."
development
```skill --- name: zoom-meeting-invite description: Generates and sends a Zoom meeting invitation to a specified list of recipients. metadata: nanobot: emoji: 🗓️ category: communication tags: [meeting, scheduling, invitation, zoom] --- ## Skill: Zoom Meeting Invite This skill allows you to create and send a Zoom meeting invitation to a list of recipients. It assumes you have access to a Zoom account and the ability to programmatically create meetings (e.g., via the Zoom API, th
development
```skill --- name: zip-archive-creator description: Creates a compressed ZIP archive of specified files or directories. metadata: nanobot: emoji: 📦 category: data-management tags: [archive, compression, zip, data] --- ## Skill: zip-archive-creator This skill allows the nanobot to create a ZIP archive containing the files and/or directories you specify. **Instructions:** 1. **Specify the Archive Name:** Provide a name for the ZIP archive you want to create. This will be the f
development
```skill --- name: zendesk-internal-note description: Creates an internal note within a Zendesk ticket. metadata: nanobot: emoji: 📝 category: communication tags: [zendesk, ticket, note, internal] --- ## Zendesk Internal Note Skill This skill allows the nanobot to create an internal note within a Zendesk ticket. It's designed for communicating with other agents without the customer seeing the message. **Instructions:** 1. **Identify the Ticket:** The nanobot needs to know whi
development
```skill --- name: youtube-video-metadata description: Extracts metadata (title, description, tags, upload date) from a YouTube video URL. metadata: nanobot: emoji: 🎬 type: information category: web-interaction tags: [youtube, metadata, video, information] dependencies: [] --- ## Skill Instructions This skill allows you to extract metadata from a YouTube video given its URL. **Input:** * `url`: A string representing the URL of the YouTube video. Example: `https://www.