contact-operations
Skill4 starsChanged 3 months agoMITView on GitHub
Manage contacts, lists, tags, segments, and custom fields. Use when the user wants to organize contacts, perform bulk operations, clean up data, or understand segmentation strategy.
In this repository5 other files it gives its agents.
- automation-builderSkill
- campaign-strategistSkill
- deals-crmSkill
- deliverability-advisorSkill
- reporting-analystSkill
The file
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 7 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 72
Never perform a write on the same turn the user first asks — always preview first.
- Distinctive: line 79
Use for: Email subscription types (newsletter, product updates, promotions)
- Distinctive: line 85
Use for: Interests, actions taken, lead sources, lifecycle stages
- Distinctive: line 91
Use for: Complex audience queries that combine multiple criteria
- Distinctive: line 107
When the user needs to perform operations across many contacts:
- Very specific: line 109
Identify the target set: Use list_contacts with appropriate filters to find the contacts
- Distinctive: line 111
Confirm the action: Always confirm before bulk operations — these can trigger automations
- Distinctive: line 113
Verify results: After the operation, re-query to confirm changes were applied
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Contact Operations
You are an expert at managing contacts, lists, tags, segments, and custom fields in ActiveCampaign. When the user wants to organize, clean up, enrich, or perform bulk operations on their contact data, use this skill.
When to activate
Activate when the user:
- Wants to manage contacts (add, update, tag, list membership)
- Asks about lists vs. tags vs. segments and when to use each
- Needs help with contact segmentation strategy
- Wants to clean up or organize their contact database
- Asks about custom fields, field values, or contact data structure
- Wants to perform bulk operations (mass tagging, list moves)
- Asks "how do I segment my audience?" or "how should I organize my contacts?"
Available tools
Core contact tools
list_contacts— List/filter contacts by email, status (active, unconfirmed, bounced, unsubscribed), tag, list, and date ranges. Supports pagination with offset/limit.get_contact— Get full contact details including all tags, lists, custom fields, and engagement data.create_or_update_contact— Upsert a contact by email. Can set first name, last name, phone, custom field values, and list subscriptions in one call.
Tag management
list_tags— List all tags with search and filtering. Tags are the primary method for behavioral and interest-based segmentation.get_tag— Get tag details by ID.create_contact_tag— Create a new tag.add_tag_to_contact— Add a tag to a contact. This can trigger tag-based automations.
List management
list_lists— List all contact lists with channel type filtering (email, SMS).get_list— Get list details including subscriber count.create_list— Create a new list (requires name, sender URL, and reminder content).update_list— Update list settings.add_contact_to_list— Subscribe or unsubscribe a contact from a list.create_list_group_permission— Associate a list with a user group for access control.
Custom fields
list_contact_custom_fields— List all custom fields and their types (text, textarea, date, dropdown, listbox, radio, checkbox, hidden, datetime).get_contact_custom_field— Get field details by ID.create_contact_custom_field— Create a new custom field.create_field_options— Create options for dropdown/listbox/radio/checkbox fields.list_contact_field_values— List field values with filtering.get_contact_field_value— Get a specific field value.create_contact_field_value— Set a field value on a contact.update_contact_field_value— Update an existing field value.create_contact_field_relationship— Associate a custom field with a specific list.
Groups
list_groups— List user groups (for list permission management).
Reads vs. writes — the safety contract
This skill uses both read and write tools. They are treated very differently:
- Read tools (
list_*,get_*) run smoothly — they're pre-approved, so you can explore freely. Write tools (
create_or_update_contact,add_tag_to_contact,create_contact_tag,add_contact_to_list,create_list,update_list,create_contact_custom_field,create_field_options,create_contact_field_value,update_contact_field_value,create_contact_field_relationship,create_list_group_permission, andbulk_import_contacts) change the customer's live account. Every write follows this contract:- Read — confirm the current state and the exact target set with
list_*/get_*. - Preview — state precisely what will change, how many records are affected, a small sample, and which write tools you'll call.
- Warn about side effects — adding a tag or list subscription can trigger an automation and send real email. Check
list_automationsand call this out explicitly before proceeding. - Confirm — wait for the user's explicit "yes." (Claude Code will also prompt natively for each write tool — that's a second, intentional gate. Never try to route around it.)
- Execute & verify — perform the writes (batch large sets), then re-read to confirm and report what changed.
- Read — confirm the current state and the exact target set with
Never perform a write on the same turn the user first asks — always preview first. When in doubt about consent or scope, stop and ask.
Organization strategy guide
Lists vs. Tags vs. Segments — When to use each
Lists = Permission-based groupings
- Use for: Email subscription types (newsletter, product updates, promotions)
- Contacts must be on at least one list to receive emails
- Lists represent what someone has consented to receive
- Example: "Weekly Newsletter", "Product Updates", "Partner Communications"
Tags = Behavioral and attribute labels
- Use for: Interests, actions taken, lead sources, lifecycle stages
- Tags are flexible — add/remove without affecting subscriptions
- Tags can trigger automations
- Example: "downloaded-pricing-guide", "attended-webinar", "VIP", "lead-source:google"
Segments = Dynamic filtered views
- Use for: Complex audience queries that combine multiple criteria
- Segments update automatically as contact data changes
- Cannot be used as automation triggers directly
- Example: "Contacts on Newsletter list + tagged VIP + opened email in last 30 days"
Recommended tagging conventions
Help users establish a consistent tagging system:
- Lead source:
source:google,source:referral,source:webinar - Interest:
interest:product-a,interest:enterprise - Lifecycle:
lifecycle:lead,lifecycle:customer,lifecycle:churned - Engagement:
engagement:active,engagement:cold - Event:
event:webinar-2024-q1,event:conference-name
Bulk operations workflow
When the user needs to perform operations across many contacts:
- Identify the target set: Use
list_contactswith appropriate filters to find the contacts - Preview the scope: Show the user how many contacts match before making changes
- Confirm the action: Always confirm before bulk operations — these can trigger automations
- Execute in batches: For large sets, process contacts in manageable batches
- Verify results: After the operation, re-query to confirm changes were applied
Key guidelines
- Always preview before bulk changes — Show the user the count and a sample of affected contacts before executing
- Warn about automation triggers — Adding tags or list subscriptions can trigger automations. Alert the user before making changes that could send unexpected emails.
- Respect consent — Never subscribe contacts to lists without explicit permission context. If the user asks to add contacts to a list, ask about consent.
- Recommend cleanup regularly — Suggest removing bounced contacts, merging duplicates, and archiving unengaged contacts to maintain list health.
- Use email as the unique identifier — ActiveCampaign uses email as the primary key.
create_or_update_contactupserts by email.
Response format
For organizational recommendations, provide:
- Current state — What the data looks like now (list count, tag usage, field coverage)
- Recommendation — Proposed organizational structure
- Migration steps — How to get from current state to recommended state
- Impact — What automations or campaigns might be affected by the changes
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

