> ## Documentation Index
> Fetch the complete documentation index at: https://guide.rolodexcrm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API Workflows Guide

> Learn how to build automations with the Rolodex API. Covers all resources: Contacts, Companies, Tags, Notes, Lists, Tasks, and Custom Fields.

## Getting your API key

You can find your Rolodex API key in your workspace settings under **Settings → API**. Copy the key and store it securely — treat it like a password.

<Note>
  Keep your API key private. Do not expose it in client-side code or public repositories.
</Note>

***

## How the Rolodex API works

Most automation tools follow the same pattern:

**Trigger → call Rolodex with your API key → use the response → next action (Slack, Sheets, Notion, etc.)**

Here's a basic example fetching a contact by ID:

```bash theme={null}
curl -X GET https://api.rolodexcrm.com/v1/contacts/{id} \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

Two patterns to keep in mind while designing workflows:

* Many endpoints support `include=...` so you can fetch related context (for example: a tag plus its linked contacts/companies/tasks, or a note plus linked contacts).

<Warning>
  Several "relationship" fields use **replace-all** behavior. When you update a resource and provide related IDs (like contacts on a list, tags on a task, or contacts on a note), you're setting the **full final set** — not adding to it. Omitting an ID removes that relationship.
</Warning>

***

## Resources

<AccordionGroup>
  <Accordion title="Contacts" icon="user">
    ## GET Contacts

    * **Pre-meeting brief:** When a calendar event is about to start, fetch the contact and pull related context (emails, companies, notes) to post a short briefing in Slack/Teams.
    * **Weekly relationship review:** On a schedule, fetch a sorted contact list (e.g., by last interaction) and write "people to follow up with" into Google Sheets/Airtable.
    * **Context lookup inside internal tools:** When someone opens a record in Retool/Notion/Airtable, fetch the linked contact and show "who is this + what's the latest context" inline.

    ## POST Contacts

    * **Form capture → Rolodex:** New Typeform/Webflow/Google Form submission creates a contact automatically.
    * **Inbound "add this person" workflow:** A Slack workflow form ("Add new person") creates the contact and responds in-thread with confirmation.
    * **Event list intake:** A new row in a spreadsheet (conference list, networking list) creates a contact as soon as it appears.

    ## PUT Contacts

    * **Enrichment refresh:** When another system updates title/company/social links, update the contact in Rolodex to match.
    * **Move people between segments using Lists/Tags:** When a contact's status changes in another tool (customer, partner, candidate), update their connected tags/lists on the Rolodex contact record.
    * **Populate contact custom fields:** Create your custom field definitions first (see Custom Fields below), then write values to contacts in step with your business rules (e.g., "Priority", "Owner", "Follow-up date").

    ## DELETE Contacts

    * **Approved deletion request:** When a support ticket is marked "approved", delete the contact and log the action in your compliance tracker.
    * **Cleanup duplicates after review:** A reviewer marks a record as duplicate in an admin table, and your workflow deletes the old contact record.
  </Accordion>

  <Accordion title="Companies" icon="building">
    ## GET Companies

    * **Auto-build a "top accounts" directory:** Pull companies into a Sheet/Notion database so the team can browse accounts with linked contacts/tags/lists/custom fields.
    * **Company context in Slack:** When a teammate drops a company name in Slack (or selects it in a form), fetch the company and post the key context plus linked contacts.

    ## POST Companies

    * **Enrichment-driven company creation:** When your enrichment tool detects a new domain/company, create a company in Rolodex first, then attach contacts to it.
    * **"New vendor/partner" intake:** A procurement form submission creates a company record so it's searchable and usable across the workspace.

    ## PUT Companies

    * **Keep company data fresh:** When HQ location, website, or social profiles change in another system, update the company in Rolodex.
    * **Attach tags/lists/contacts to companies from external signals:** For example, if a company becomes "Partner" or "Target account", update the company's relationships accordingly (remember: replace-all behavior).

    ## DELETE Companies

    * **Remove invalid or duplicate company records:** Triggered by an admin approval step in Airtable/Sheets/support tooling.
  </Accordion>

  <Accordion title="Tags" icon="tag">
    ## GET Tags

    * **Tag audit:** On a schedule, fetch tags and export a "tag health" sheet (unused tags, duplicates, inconsistent naming).
    * **Show "everything connected to this tag":** In Slack/Notion/Retool, fetch a tag and include linked contacts/companies/tasks to quickly answer "who/what is in this segment?".

    ## POST Tags

    * **Create tags from team workflows:** If a team starts a new initiative (e.g., "Nordics Expansion"), automatically create the tag when the initiative is created in Notion/Jira/Asana.

    ## PUT Tags

    * **Rename or standardize tag names:** When someone updates taxonomy in your "tag dictionary" doc/sheet, rename tags in Rolodex to match.
    * **Maintain tag membership from another system:** Sync tag relationships so the tag always reflects the final set of linked contacts/companies/tasks.

    ## DELETE Tags

    * **Remove deprecated tags:** When a tag is marked "retired" in your taxonomy sheet, delete it in Rolodex.
  </Accordion>

  <Accordion title="Notes" icon="note-sticky">
    ## GET Notes

    * **Daily/weekly "what happened" digest:** Fetch latest notes and post a summary to Slack (or email) with linked contacts included.
    * **Export activity to knowledge tools:** Pull notes into Notion/Confluence as a lightweight relationship journal (optionally grouped by contact).

    ## POST Notes

    * **After-meeting capture:** When a Zoom/Google Meet event ends, prompt the user (Slack modal/form) to write a short recap that becomes a note linked to the relevant contact(s).
    * **Support-to-relationship context:** When a support ticket closes, create a note on the contact describing the outcome so future conversations have context.

    ## PUT Notes

    * **Upgrade rough notes into "clean" notes:** If someone edits a recap in Notion/Docs, update the matching note in Rolodex (and maintain its linked contacts — replace-all behavior applies).

    ## DELETE Notes

    * **Remove accidental notes:** If a note is flagged as incorrect in a review workflow, delete it.
  </Accordion>

  <Accordion title="Lists" icon="list">
    ## GET Lists

    * **Publish "key lists" outside Rolodex:** Sync list membership into Sheets/Notion so teams can work from a shared, read-friendly view.
    * **List-driven reporting:** Pull a list and generate weekly stats: new adds, removals, and who needs follow-up.

    ## POST Lists

    * **Create lists from projects/initiatives:** When a new project is created (Notion/Jira), automatically create a matching contact or company list for the stakeholders.

    ## PUT Lists

    * **Keep list membership in sync:** If list membership is maintained in another system (e.g., an Airtable "VIPs" table), push the final set of contact/company IDs to the Rolodex list (replace-all behavior).

    ## DELETE Lists

    * **Retire lists when initiatives end:** When a project is marked "done", delete or archive the corresponding list via automation.
  </Accordion>

  <Accordion title="Tasks" icon="list-check">
    ## GET Tasks

    * **Personal daily agenda:** Each morning, fetch tasks (sorted by due date) and DM the user a "today's follow-ups" list.
    * **Team queue dashboard:** Sync tasks into a shared board view in another tool (Notion/Airtable) to coordinate follow-ups.

    ## POST Tasks

    * **Create follow-ups from signals:** When something happens in another app (new inbound, meeting booked, form submitted), create a task linked to the relevant contact with a due date.
    * **"Keep-in-touch assistant" (external trigger):** If a weekly cadence says someone is due for outreach, create a task automatically for the owner.

    ## PUT Tasks

    * **Auto-complete tasks when work is done elsewhere:** When a "sent email" or "meeting held" event happens in another system, mark the related task complete.
    * **Tag tasks for routing:** Apply/update task tags to support triage (e.g., "Hiring", "Sales", "Partnerships") while keeping the final tag set consistent (replace-all behavior).

    ## DELETE Tasks

    * **Clean up duplicates / canceled follow-ups:** If a task is superseded by a new plan, delete it from an admin workflow.
  </Accordion>

  <Accordion title="Custom Fields" icon="sliders">
    Think of these endpoints as managing the **schema** — the fields themselves — so your workspace can standardize how it categorizes contacts and companies. Custom fields have a `field_type` (text, select, date, numeric, etc.) and an `entity_type` (contact or company).

    ## GET Custom Fields

    * **Generate dynamic forms:** Build a "Create/Update Contact" form in Retool that always mirrors the workspace's current custom field setup.

    ## POST Custom Fields

    * **Create fields when a team launches a new workflow:** A recruiting team creates "Candidate stage" (single select) or a partnerships team creates "Partner tier" (single select) automatically from a setup wizard.

    ## PUT Custom Fields

    * **Maintain select options centrally:** When your taxonomy changes (e.g., adding/removing options for a select field), update the field options. Note: select options are replaced by what you send.

    ## DELETE Custom Fields

    * **Retire unused fields safely:** When a field is marked "deprecated" in an admin approval flow, delete it to keep the workspace clean.
  </Accordion>
</AccordionGroup>
