folk
BUSINESS · CRM & SUPPORT
People, companies, groups, deals, notes, and tasks in the CRM they connected.
Acts as the person, not as itself
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Credentials never touch the agent
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Every call on the record
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
folk_delete_v1_companies_company_idWRITEDelete an existing company in the workspace. Companies are folk's organisation records, linked to people and to deals.
folk_delete_v1_groups_group_id_members_user_idWRITERemoves a member from a group. Group members are WORKSPACE USERS with access to a group, not the contacts inside it. A public group is accessible to every workspace member.
folk_delete_v1_groups_group_id_object_type_object_idWRITEDelete an existing deal in the workspace. A group can hold any object type you define -- `Deals` is the default, and `Projects`, `Applications` and so on are custom objects. They all share one set of endpoints under /v1/groups/{groupId}/{objectType}, and `objectType` is the type's name exactly as the folk app spells it (the match is CASE-SENSITIVE). List the group's custom fields for `person` to find the available names.
folk_delete_v1_interactions_interaction_idWRITEDelete an existing logged interaction. Imported interactions cannot be deleted. This endpoint is currently in open beta. The API surface may change as we iterate based on feedback. Interactions are the logged history with a contact -- meetings, calls, emails. folk marks the past/upcoming/get/update/delete family OPEN BETA in its own schema, so the surface may change.
folk_delete_v1_notes_note_idWRITEDelete an existing note in the workspace. Notes are free-text entries attached to a person, company or object.
folk_delete_v1_people_person_idWRITEDelete an existing person in the workspace. People are folk's contact records. A person may belong to several groups and several companies at once.
folk_delete_v1_reminders_reminder_idWRITEDelete an existing reminder in the workspace. This endpoint is deprecated since August 13, 2026 and will be removed on February 13, 2027. Please use the Delete a task endpoint instead. DEPRECATED by folk since 13 August 2026 and scheduled for REMOVAL on 13 February 2027; the live response carries a `deprecations` array saying so. Use the Tasks tools instead for anything new -- this one still answers 200 today and will stop.
folk_delete_v1_tasks_task_idWRITEDelete an existing task in the workspace. Tasks are folk's to-dos, each attached to a person, company or object, with a due date, optional assignees and a done/to-do state.
folk_delete_v1_webhooks_webhook_idWRITEDelete an existing webhook in the workspace. Webhooks deliver workspace events to a URL you own. The per-webhook signing secret folk returns AT CREATION is shown once and is NOT a folk API credential: it verifies inbound deliveries to your handler (Standard Webhooks, HMAC-SHA256) and is never used to call folk.
folk_get_v1_companiesREADRetrieve a list of companies in the workspace. Companies are folk's organisation records, linked to people and to deals. `filter` is a JSON OBJECT SUPPLIED AS TEXT -- for example `{"fullName": {"like": "Horace"}}` or `{"groups": {"in": {"id": "grp_..."}}}`. Agentic Fabriq expands it into the bracketed form folk actually accepts (`filter[fullName][like]=Horace`); folk refuses the object sent any other way with 422. Each key is a filterable attribute and each inner key an operator (`eq`, `not_eq`, `like`, `not_like`, `gt`, `lt`, `in`, `all`, `empty`, `not_empty`); an attribute folk does not recognise is refused with 422 `unrecognized_keys` naming it. `combinator` decides whether several filters are ANDed or ORed.
folk_get_v1_companies_company_idREADRetrieve an existing company in the workspace. Companies are folk's organisation records, linked to people and to deals.
folk_get_v1_groupsREADReturns a list of workspace groups. Groups are folk's collections of contacts; a workspace is organised into them and most other resources are addressed through one.
folk_get_v1_groups_group_id_custom_fields_entity_typeREADReturns a list of group custom fields for an entity type. Group custom fields define the extra columns a group's people, companies and custom objects carry. Listing them for the `person` entity type is also how you discover a group's object types: every field of type `objectField` names one, and its `name` is what goes in `objectType`.
folk_get_v1_groups_group_id_custom_fields_entity_type_custom_field_nameREADReturns a detailed group custom field for an entity type. Group custom fields define the extra columns a group's people, companies and custom objects carry. Listing them for the `person` entity type is also how you discover a group's object types: every field of type `objectField` names one, and its `name` is what goes in `objectType`.
folk_get_v1_groups_group_id_membersREADReturns a list of the group members. For a public group, all workspace members are members of the group. Group members are WORKSPACE USERS with access to a group, not the contacts inside it. A public group is accessible to every workspace member.
folk_get_v1_groups_group_id_object_typeREADRetrieve a list of deals in the workspace. A group can hold any object type you define -- `Deals` is the default, and `Projects`, `Applications` and so on are custom objects. They all share one set of endpoints under /v1/groups/{groupId}/{objectType}, and `objectType` is the type's name exactly as the folk app spells it (the match is CASE-SENSITIVE). List the group's custom fields for `person` to find the available names. `filter` is a JSON OBJECT SUPPLIED AS TEXT -- for example `{"fullName": {"like": "Horace"}}` or `{"groups": {"in": {"id": "grp_..."}}}`. Agentic Fabriq expands it into the bracketed form folk actually accepts (`filter[fullName][like]=Horace`); folk refuses the object sent any other way with 422. Each key is a filterable attribute and each inner key an operator (`eq`, `not_eq`, `like`, `not_like`, `gt`, `lt`, `in`, `all`, `empty`, `not_empty`); an attribute folk does not recognise is refused with 422 `unrecognized_keys` naming it. `combinator` decides whether several filters are ANDed or ORed.
folk_get_v1_groups_group_id_object_type_object_idREADRetrieve an existing deal in the workspace. A group can hold any object type you define -- `Deals` is the default, and `Projects`, `Applications` and so on are custom objects. They all share one set of endpoints under /v1/groups/{groupId}/{objectType}, and `objectType` is the type's name exactly as the folk app spells it (the match is CASE-SENSITIVE). List the group's custom fields for `person` to find the available names.
folk_get_v1_interactions_interaction_idREADRetrieves a single interaction. Full email or calendar body is included when privacy rules allow it. This endpoint is currently in open beta. The API surface may change as we iterate based on feedback. Interactions are the logged history with a contact -- meetings, calls, emails. folk marks the past/upcoming/get/update/delete family OPEN BETA in its own schema, so the surface may change.
folk_get_v1_interactions_pastREADRetrieves paginated past interactions linked to a person, company, or object. This endpoint is currently in open beta. The API surface may change as we iterate based on feedback. Interactions are the logged history with a contact -- meetings, calls, emails. folk marks the past/upcoming/get/update/delete family OPEN BETA in its own schema, so the surface may change.
folk_get_v1_interactions_upcomingREADRetrieves paginated upcoming interactions linked to a person, company, or object. This endpoint is currently in open beta. The API surface may change as we iterate based on feedback. Interactions are the logged history with a contact -- meetings, calls, emails. folk marks the past/upcoming/get/update/delete family OPEN BETA in its own schema, so the surface may change.
folk_get_v1_notesREADRetrieve a list of notes in the workspace. Notes are free-text entries attached to a person, company or object.
folk_get_v1_notes_note_idREADRetrieve an existing note in the workspace. Notes are free-text entries attached to a person, company or object.
folk_get_v1_peopleREADRetrieve a list of people in the workspace. People are folk's contact records. A person may belong to several groups and several companies at once. `filter` is a JSON OBJECT SUPPLIED AS TEXT -- for example `{"fullName": {"like": "Horace"}}` or `{"groups": {"in": {"id": "grp_..."}}}`. Agentic Fabriq expands it into the bracketed form folk actually accepts (`filter[fullName][like]=Horace`); folk refuses the object sent any other way with 422. Each key is a filterable attribute and each inner key an operator (`eq`, `not_eq`, `like`, `not_like`, `gt`, `lt`, `in`, `all`, `empty`, `not_empty`); an attribute folk does not recognise is refused with 422 `unrecognized_keys` naming it. `combinator` decides whether several filters are ANDed or ORed.
folk_get_v1_people_person_idREADRetrieve an existing person in the workspace. People are folk's contact records. A person may belong to several groups and several companies at once.
folk_get_v1_remindersREADRetrieve a list of reminders in the workspace. This endpoint is deprecated since August 13, 2026 and will be removed on February 13, 2027. Please use the List tasks endpoint instead. DEPRECATED by folk since 13 August 2026 and scheduled for REMOVAL on 13 February 2027; the live response carries a `deprecations` array saying so. Use the Tasks tools instead for anything new -- this one still answers 200 today and will stop.
folk_get_v1_reminders_reminder_idREADRetrieve an existing reminder in the workspace. This endpoint is deprecated since August 13, 2026 and will be removed on February 13, 2027. Please use the Get a task endpoint instead. DEPRECATED by folk since 13 August 2026 and scheduled for REMOVAL on 13 February 2027; the live response carries a `deprecations` array saying so. Use the Tasks tools instead for anything new -- this one still answers 200 today and will stop.
folk_get_v1_tasksREADRetrieve a paginated list of tasks in the workspace, optionally filtered by attributes. Tasks are folk's to-dos, each attached to a person, company or object, with a due date, optional assignees and a done/to-do state. `filter` is a JSON OBJECT SUPPLIED AS TEXT -- for example `{"fullName": {"like": "Horace"}}` or `{"groups": {"in": {"id": "grp_..."}}}`. Agentic Fabriq expands it into the bracketed form folk actually accepts (`filter[fullName][like]=Horace`); folk refuses the object sent any other way with 422. Each key is a filterable attribute and each inner key an operator (`eq`, `not_eq`, `like`, `not_like`, `gt`, `lt`, `in`, `all`, `empty`, `not_empty`); an attribute folk does not recognise is refused with 422 `unrecognized_keys` naming it. `combinator` decides whether several filters are ANDed or ORed.
folk_get_v1_tasks_task_idREADRetrieve an existing task in the workspace. Tasks are folk's to-dos, each attached to a person, company or object, with a due date, optional assignees and a done/to-do state.
folk_get_v1_usersREADReturns a list of workspace users. Users are the people who work IN the folk workspace, not its contacts.
folk_get_v1_users_meREADReturns the current workspace user. Users are the people who work IN the folk workspace, not its contacts. This is also the credential probe: measured 2026-09-19 it answers 200 with the key's own user object, 401 UNAUTHORIZED to a malformed key and 401 to no Authorization header at all.
folk_get_v1_users_user_idREADReturns a workspace user. Users are the people who work IN the folk workspace, not its contacts.
folk_get_v1_webhooksREADRetrieve a list of webhooks in the workspace. Webhooks deliver workspace events to a URL you own. The per-webhook signing secret folk returns AT CREATION is shown once and is NOT a folk API credential: it verifies inbound deliveries to your handler (Standard Webhooks, HMAC-SHA256) and is never used to call folk.
folk_get_v1_webhooks_webhook_idREADRetrieve an existing webhook in the workspace. Webhooks deliver workspace events to a URL you own. The per-webhook signing secret folk returns AT CREATION is shown once and is NOT a folk API credential: it verifies inbound deliveries to your handler (Standard Webhooks, HMAC-SHA256) and is never used to call folk.
folk_patch_v1_companies_company_idWRITEUpdate an existing company in the workspace. Companies are folk's organisation records, linked to people and to deals.
folk_patch_v1_groups_group_idWRITEUpdate a group's name and/or visibility. Groups are folk's collections of contacts; a workspace is organised into them and most other resources are addressed through one.
folk_patch_v1_groups_group_id_custom_fields_entity_type_custom_field_nameWRITEUpdates a group custom field for an entity type. Group custom fields define the extra columns a group's people, companies and custom objects carry. Listing them for the `person` entity type is also how you discover a group's object types: every field of type `objectField` names one, and its `name` is what goes in `objectType`.
folk_patch_v1_groups_group_id_members_user_idWRITEUpdates a group member's role. Group members are WORKSPACE USERS with access to a group, not the contacts inside it. A public group is accessible to every workspace member.
folk_patch_v1_groups_group_id_object_type_object_idWRITEUpdate an existing deal in the workspace. A group can hold any object type you define -- `Deals` is the default, and `Projects`, `Applications` and so on are custom objects. They all share one set of endpoints under /v1/groups/{groupId}/{objectType}, and `objectType` is the type's name exactly as the folk app spells it (the match is CASE-SENSITIVE). List the group's custom fields for `person` to find the available names.
folk_patch_v1_interactions_interaction_idWRITEPartially update an existing logged interaction (title, content, date-time, activityType). Imported interactions cannot be updated. This endpoint is currently in open beta. The API surface may change as we iterate based on feedback. Interactions are the logged history with a contact -- meetings, calls, emails. folk marks the past/upcoming/get/update/delete family OPEN BETA in its own schema, so the surface may change.
folk_patch_v1_notes_note_idWRITEUpdate an existing note in the workspace. Notes are free-text entries attached to a person, company or object.
folk_patch_v1_people_person_idWRITEUpdate an existing person in the workspace. People are folk's contact records. A person may belong to several groups and several companies at once.
folk_patch_v1_reminders_reminder_idWRITEUpdate an existing reminder in the workspace. This endpoint is deprecated since August 13, 2026 and will be removed on February 13, 2027. Please use the Update a task endpoint instead. DEPRECATED by folk since 13 August 2026 and scheduled for REMOVAL on 13 February 2027; the live response carries a `deprecations` array saying so. Use the Tasks tools instead for anything new -- this one still answers 200 today and will stop.
folk_patch_v1_tasks_task_idWRITEUpdate an existing task in the workspace. Tasks are folk's to-dos, each attached to a person, company or object, with a due date, optional assignees and a done/to-do state.
folk_patch_v1_webhooks_webhook_idWRITEUpdate an existing webhook in the workspace. Webhooks deliver workspace events to a URL you own. The per-webhook signing secret folk returns AT CREATION is shown once and is NOT a folk API credential: it verifies inbound deliveries to your handler (Standard Webhooks, HMAC-SHA256) and is never used to call folk.
folk_post_v1_companiesWRITECreate a new company in the workspace. Companies are folk's organisation records, linked to people and to deals.
folk_post_v1_companies_searchWRITESearch for companies in the workspace. Companies are folk's organisation records, linked to people and to deals. `filter` is a JSON OBJECT SUPPLIED AS TEXT -- for example `{"fullName": {"like": "Horace"}}` or `{"groups": {"in": {"id": "grp_..."}}}`. Agentic Fabriq expands it into the bracketed form folk actually accepts (`filter[fullName][like]=Horace`); folk refuses the object sent any other way with 422. Each key is a filterable attribute and each inner key an operator (`eq`, `not_eq`, `like`, `not_like`, `gt`, `lt`, `in`, `all`, `empty`, `not_empty`); an attribute folk does not recognise is refused with 422 `unrecognized_keys` naming it. `combinator` decides whether several filters are ANDed or ORed.
folk_post_v1_groupsWRITECreate a new group in the workspace. A default "All people" table view is automatically created for the group. Groups are folk's collections of contacts; a workspace is organised into them and most other resources are addressed through one.
folk_post_v1_groups_group_id_custom_fields_entity_typeWRITECreates a new group custom field for an entity type. Group custom fields define the extra columns a group's people, companies and custom objects carry. Listing them for the `person` entity type is also how you discover a group's object types: every field of type `objectField` names one, and its `name` is what goes in `objectType`. folk declares this body as a `oneOf` over eight custom-field types. The union of their fields is shipped flat -- `type` is the discriminator and `options`/`config` belong to particular types -- and folk enforces the per-type rules itself, refusing a field the chosen type does not take with 422.
folk_post_v1_groups_group_id_membersWRITEAdds a member to a group. Group members are WORKSPACE USERS with access to a group, not the contacts inside it. A public group is accessible to every workspace member.
folk_post_v1_groups_group_id_object_typeWRITECreate a new deal in the workspace. A group can hold any object type you define -- `Deals` is the default, and `Projects`, `Applications` and so on are custom objects. They all share one set of endpoints under /v1/groups/{groupId}/{objectType}, and `objectType` is the type's name exactly as the folk app spells it (the match is CASE-SENSITIVE). List the group's custom fields for `person` to find the available names.
folk_post_v1_groups_group_id_object_type_searchWRITESearch deals in the workspace. A group can hold any object type you define -- `Deals` is the default, and `Projects`, `Applications` and so on are custom objects. They all share one set of endpoints under /v1/groups/{groupId}/{objectType}, and `objectType` is the type's name exactly as the folk app spells it (the match is CASE-SENSITIVE). List the group's custom fields for `person` to find the available names. `filter` is a JSON OBJECT SUPPLIED AS TEXT -- for example `{"fullName": {"like": "Horace"}}` or `{"groups": {"in": {"id": "grp_..."}}}`. Agentic Fabriq expands it into the bracketed form folk actually accepts (`filter[fullName][like]=Horace`); folk refuses the object sent any other way with 422. Each key is a filterable attribute and each inner key an operator (`eq`, `not_eq`, `like`, `not_like`, `gt`, `lt`, `in`, `all`, `empty`, `not_empty`); an attribute folk does not recognise is refused with 422 `unrecognized_keys` naming it. `combinator` decides whether several filters are ANDed or ORed.
folk_post_v1_interactionsWRITECreates a new interaction (https://help.folk.app/en/articles/7012167-log-a-new-interaction) with a person or a company. Interactions are the logged history with a contact -- meetings, calls, emails. folk marks the past/upcoming/get/update/delete family OPEN BETA in its own schema, so the surface may change.
folk_post_v1_notesWRITECreate a new note in the workspace. Notes are free-text entries attached to a person, company or object.
folk_post_v1_peopleWRITECreate a new person in the workspace. People are folk's contact records. A person may belong to several groups and several companies at once.
folk_post_v1_people_searchWRITESearch for people in the workspace. People are folk's contact records. A person may belong to several groups and several companies at once. `filter` is a JSON OBJECT SUPPLIED AS TEXT -- for example `{"fullName": {"like": "Horace"}}` or `{"groups": {"in": {"id": "grp_..."}}}`. Agentic Fabriq expands it into the bracketed form folk actually accepts (`filter[fullName][like]=Horace`); folk refuses the object sent any other way with 422. Each key is a filterable attribute and each inner key an operator (`eq`, `not_eq`, `like`, `not_like`, `gt`, `lt`, `in`, `all`, `empty`, `not_empty`); an attribute folk does not recognise is refused with 422 `unrecognized_keys` naming it. `combinator` decides whether several filters are ANDed or ORed.
folk_post_v1_remindersWRITECreate a new reminder in the workspace. This endpoint is deprecated since August 13, 2026 and will be removed on February 13, 2027. Please use the Create a task endpoint instead. DEPRECATED by folk since 13 August 2026 and scheduled for REMOVAL on 13 February 2027; the live response carries a `deprecations` array saying so. Use the Tasks tools instead for anything new -- this one still answers 200 today and will stop.
folk_post_v1_tasksWRITECreate a new task in the workspace. Tasks are folk's to-dos, each attached to a person, company or object, with a due date, optional assignees and a done/to-do state.
folk_post_v1_tasks_task_id_mark_as_doneWRITEMark an existing task as done. Tasks are folk's to-dos, each attached to a person, company or object, with a due date, optional assignees and a done/to-do state.
folk_post_v1_tasks_task_id_mark_as_todoWRITEMark an existing task as to do. Tasks are folk's to-dos, each attached to a person, company or object, with a due date, optional assignees and a done/to-do state.
folk_post_v1_webhooksWRITECreates a new webhook listening to workspace events. Webhooks deliver workspace events to a URL you own. The per-webhook signing secret folk returns AT CREATION is shown once and is NOT a folk API credential: it verifies inbound deliveries to your handler (Standard Webhooks, HMAC-SHA256) and is never used to call folk.
Often connected alongside
Put folk behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.