import-contacts
Skill3 starsChanged 7 months agoMITView on GitHub
Import contacts into Nitrosend from inline records or CSV. Handles email opt-in, SMS TCPA compliance, list assignment, and tagging. Use when: "import contacts", "add subscribers", "upload contacts", "add to list", "bulk add contacts", or "import CSV".
1 other project uses a version of this.
Adopted by
Most recently taken up by
- michelgrolet/people-memory-mcptheir own version, first seen Aug 17, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- michelgrolet/people-memory-mcp★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository6 other files it gives its agents.
- build-flowSkill
- compose-emailSkill
- nitrosend-analyticsSkill
- nitrosend-setupSkill
- send-campaignSkill
- send-transactionalSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 3 are distinctive, and 10 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
Ask where contacts are coming from:
- Very specific: line 19
One by one: Use nitro_manage_audience with operation: "create_contact" for individual contacts
- Very specific: line 25
Call it with upload: {filename, content_type, byte_size, checksum} to reserve an authorized upload link
- Very specific: line 27
PUT the file bytes to the returned direct_upload.url, sending exactly the returned direct_upload.headers
- Very specific: line 29
Call nitro_import_contacts again with the returned signed_id (plus a columns mapping) to finalize.
- Very specific: line 38
Use nitro_import_contacts with records array:
- Very specific: line 52
SMS contacts: Must explicitly set opt_in: true (TCPA compliance)
- Very specific: line 56
Always offer dry_run: true first to preview.
- Very specific: line 61
Use nitro_manage_audience with operation: "manage_list":
- Very specific: line 62
Create a list: action: "create", name: "List Name"
- Very specific: line 63
Add contacts: action: "add_contacts", list_id, emails: [...] or contact_ids: [...]
- Distinctive: line 73
Only import contacts who have given consent to receive emails
- Distinctive: line 74
Never import purchased or scraped lists
≈ “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
Import Contacts
Help the user import contacts into Nitrosend.
Understand the Source
Ask where contacts are coming from:
- Inline records: User provides names/emails directly (up to 100 at a time)
- CSV file: Upload a local CSV through the direct-upload path (below)
- One by one: Use
nitro_manage_audiencewithoperation: "create_contact"for individual contacts
CSV Import (direct upload)
For a local CSV, nitro_import_contacts runs a three-step upload:
- Call it with
upload: {filename, content_type, byte_size, checksum}to reserve an authorized upload link - PUT the file bytes to the returned
direct_upload.url, sending exactly the returneddirect_upload.headers - Call
nitro_import_contactsagain with the returnedsigned_id(plus acolumnsmapping) to finalize; an existingimport_idcan also be processed
Large CSVs use the same async pipeline as the app/API/CLI: up to 250k rows
self-serve, sends held for review above 20k rows, larger files return
contact_sales.
Inline Import (< 100 contacts)
Use nitro_import_contacts with records array:
{
"records": [
{ "email": "alice@example.com", "first_name": "Alice", "last_name": "Smith" },
{ "email": "bob@example.com", "first_name": "Bob", "source": "product-webinar" }
]
}Important Rules
- Email contacts: New contacts are auto-subscribed by default; existing
contacts keep their current subscription state unless
opt_inis explicit - SMS contacts: Must explicitly set
opt_in: true(TCPA compliance) - Both channels: Include both
emailandphonefields - Source tracking: Set
sourceto track where contacts came from
Always offer dry_run: true first to preview.
After Import
Add to a List
Use nitro_manage_audience with operation: "manage_list":
- Create a list:
action: "create",name: "List Name" - Add contacts:
action: "add_contacts",list_id,emails: [...]orcontact_ids: [...]
Tag Contacts
Use nitro_manage_audience with operation: "bulk_tag":
contact_ids: [...]tags: ["webinar-attendee", "product-interest"]tag_action: "add"(default),"remove", or"set"
Compliance Reminders
- Only import contacts who have given consent to receive emails
- Never import purchased or scraped lists
- Include a source identifier for audit trails
- SMS contacts require explicit written consent (TCPA)
- GDPR: Ensure lawful basis for EU contacts
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.

