Reference · Tools

Monica CRM

Manage personal contacts, activities, calls, notes, conversations, journal entries, reminders, tags, and tasks in Monica CRM

Action Communication v1

The Monica CRM node manages the objects in a personal relationship CRM: contacts, activities, calls, notes, conversations, journal entries, reminders, tags and tasks. A typical build is logging every call automatically against the right contact so the history stays complete without manual entry.

Node type
Action
Parameters
75
Outputs
Output, Error
Credentials
Monica CRM API

Monica CRM

Manage contacts and personal relationships in Monica CRM

Overview

Monica CRM is an open-source personal relationship management tool. This tool supports 12 resources (Activity, Call, Contact, Contact Field, Contact Tag, Conversation, Conversation Message, Journal Entry, Note, Reminder, Tag, Task) with CRUD operations including create, get, get many, update, and delete. It connects to both cloud-hosted (app.monicahq.com) and self-hosted Monica instances via Bearer token authentication.

Category: Communication
Tool Name: monica_crm
Version: 1

Appearance: Icon: lucide-Heart | Color: #324058

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Monica CRM API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Activityactivity
Callcall
Contactcontact
Contact FieldcontactField
Contact TagcontactTag
Conversationconversation
Conversation MessageconversationMessage
Journal EntryjournalEntry
Notenote
Reminderreminder
Tagtag
Tasktask

Operations

OperationValueDescription
CreatecreateCreate an activity
DeletedeleteDelete an activity
GetgetGet an activity
Get ManygetAllList activities
UpdateupdateUpdate an activity
CreatecreateCreate a call
DeletedeleteDelete a call
GetgetGet a call
Get ManygetAllList calls
UpdateupdateUpdate a call
CreatecreateCreate a contact
DeletedeleteDelete a contact
GetgetGet a contact
Get ManygetAllList contacts
UpdateupdateUpdate a contact
CreatecreateCreate a contact field
DeletedeleteDelete a contact field
GetgetGet a contact field
UpdateupdateUpdate a contact field
AddaddAdd tags to a contact
RemoveremoveRemove tags from a contact
CreatecreateCreate a conversation
DeletedeleteDelete a conversation
GetgetGet a conversation
UpdateupdateUpdate a conversation
AddaddAdd a message to a conversation
UpdateupdateUpdate a conversation message
CreatecreateCreate a journal entry
DeletedeleteDelete a journal entry
GetgetGet a journal entry
Get ManygetAllList journal entries
UpdateupdateUpdate a journal entry
CreatecreateCreate a note
DeletedeleteDelete a note
GetgetGet a note
Get ManygetAllList notes
UpdateupdateUpdate a note
CreatecreateCreate a reminder
DeletedeleteDelete a reminder
GetgetGet a reminder
Get ManygetAllList reminders
UpdateupdateUpdate a reminder
CreatecreateCreate a tag
DeletedeleteDelete a tag
GetgetGet a tag
Get ManygetAllList tags
UpdateupdateUpdate a tag
CreatecreateCreate a task
DeletedeleteDelete a task
GetgetGet a task
Get ManygetAllList tasks
UpdateupdateUpdate a task

The operation list is scoped to the resource you pick, so most values appear once per resource. Contact Field and Conversation have no Get Many; Contact Tag offers only Add and Remove; Conversation Message offers only Add and Update.

Parameters

Activity: Create

ParameterTypeRequiredDefaultDescription
Activity Type IDstringYesID of the activity type. Retrieve available types from GET /activitytypes in your Monica CRM instance.
ContactsstringYesComma-separated list of IDs of the contacts to associate the activity with. Supports expressions.
Happened AtstringYesDate when the activity happened (ISO 8601 format). Supports expressions.
SummarystringYesBrief description of the activity - max 255 characters. Supports expressions.
Additional FieldscollectionNo{}Optional activity detail.
— DescriptionstringNoDescription of the activity - max 100,000 characters.

Activity: Delete

ParameterTypeRequiredDefaultDescription
Activity IDstringYesID of the activity. Supports expressions.

Activity: Get

ParameterTypeRequiredDefaultDescription
Activity IDstringYesID of the activity. Supports expressions.

Activity: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

Activity: Update

ParameterTypeRequiredDefaultDescription
Activity IDstringYesID of the activity. Supports expressions.
Update FieldscollectionNo{}The activity properties to change.
— Activity Type IDstringNoID of the activity type. Retrieve available types from GET /activitytypes in your Monica CRM instance.
— ContactsstringNoComma-separated IDs of the contacts to associate the activity with.
— DescriptionstringNoDescription of the activity - max 100,000 characters.
— Happened AtstringNoDate when the activity happened (ISO 8601 format).
— SummarystringNoBrief description of the activity - max 255 characters.

Call: Create

ParameterTypeRequiredDefaultDescription
Contact IDstringYesID of the contact to associate the call with. Supports expressions like {{ $json.contactId }}.
Called AtstringYesDate when the call happened (ISO 8601 format). Supports expressions.
Description (content)stringYesDescription of the call - max 100,000 characters. Supports expressions.

Call: Delete

ParameterTypeRequiredDefaultDescription
Call IDstringYesID of the call. Supports expressions.

Call: Get

ParameterTypeRequiredDefaultDescription
Call IDstringYesID of the call. Supports expressions.

Call: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

Call: Update

ParameterTypeRequiredDefaultDescription
Call IDstringYesID of the call. Supports expressions.
Update FieldscollectionNo{}The call properties to change.
— Called AtstringNoDate when the call happened (ISO 8601 format).
— Contact IDstringNoID of the contact to associate the call with.
— DescriptionstringNoDescription of the call - max 100,000 characters.

Contact: Create

ParameterTypeRequiredDefaultDescription
First NamestringYesThe contact’s first name. Supports expressions.
Gender IDstringYesID of the gender. Retrieve available genders from GET /genders in your Monica CRM instance.
Additional FieldscollectionNo{}The rest of the contact record.
— BirthdatestringNoBirthdate in ISO 8601 format (e.g. 1990-05-15).
— Deceased DatestringNoDeceased date in ISO 8601 format.
— Is DeceasedbooleanNofalseWhether the contact has passed away.
— Last NamestringNoThe contact’s last name.
— NicknamestringNoThe contact’s nickname.
— TypeoptionsNofalseWhether the contact gets their own contact sheet.
Options: false (Real — contact with their own contact sheet), true (Partial — contact without their own contact sheet)

Contact: Delete

ParameterTypeRequiredDefaultDescription
Contact IDstringYesID of the contact. Supports expressions.

Contact: Get

ParameterTypeRequiredDefaultDescription
Contact IDstringYesID of the contact. Supports expressions.

Contact: Get Many

ParameterTypeRequiredDefaultDescription
FilterscollectionNo{}Narrow and order the contacts returned.
— Search TermstringNoSearch term to filter results by.
— SortoptionsNoOrdering of the returned contacts.
Options: created_at (Ascended Created At), -created_at (Descended Created At), updated_at (Ascended Updated At), -updated_at (Descended Updated At)
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

Contact: Update

ParameterTypeRequiredDefaultDescription
Contact IDstringYesID of the contact. Supports expressions.
Update FieldscollectionNo{}The contact properties to change.
— BirthdatestringNoBirthdate in ISO 8601 format.
— Deceased DatestringNoDeceased date in ISO 8601 format.
— First NamestringNoThe contact’s first name.
— Gender IDstringNoID of the gender. Retrieve available genders from GET /genders.
— Is DeceasedbooleanNofalseWhether the contact has passed away.
— Last NamestringNoThe contact’s last name.
— NicknamestringNoThe contact’s nickname.
— TypeoptionsNofalseWhether the contact gets their own contact sheet.
Options: false (Real), true (Partial)

Contact Field: Create

ParameterTypeRequiredDefaultDescription
Contact IDstringYesID of the contact to associate the contact field with. Supports expressions.
Contact Field Type IDstringYesID of the contact field type. Retrieve available types from GET /contactfieldtypes in your Monica CRM instance.
Content (data)stringYesContent of the contact field - max 255 characters. Supports expressions.

Contact Field: Delete

ParameterTypeRequiredDefaultDescription
Contact Field IDstringYesID of the contact field. Supports expressions.

Contact Field: Get

ParameterTypeRequiredDefaultDescription
Contact Field IDstringYesID of the contact field. Supports expressions.

Contact Field: Update

ParameterTypeRequiredDefaultDescription
Contact IDstringYesID of the contact to associate the contact field with. Supports expressions.
Contact Field Type IDstringYesID of the contact field type. Retrieve available types from GET /contactfieldtypes in your Monica CRM instance.
Content (data)stringYesContent of the contact field - max 255 characters. Supports expressions.
Contact Field IDstringYesID of the contact field. Supports expressions.

Contact Tag: Add

ParameterTypeRequiredDefaultDescription
Contact IDstringYesID of the contact. Supports expressions.
Tags to AddstringYesComma-separated tag names to add to the contact. These are tag names (strings), not IDs.

Contact Tag: Remove

ParameterTypeRequiredDefaultDescription
Contact IDstringYesID of the contact. Supports expressions.
Tags to RemovestringYesComma-separated tag IDs to remove from the contact. Use numeric tag IDs, not names.

Conversation: Create

ParameterTypeRequiredDefaultDescription
Contact IDstringYesID of the contact to associate the conversation with. Supports expressions.
Contact Field Type IDstringYesID of the contact field type representing the communication channel. Retrieve from GET /contactfieldtypes.
Happened AtstringYesDate when the conversation happened (ISO 8601 format). Supports expressions.

Conversation: Delete

ParameterTypeRequiredDefaultDescription
Conversation IDstringYesID of the conversation. Supports expressions.

Conversation: Get

ParameterTypeRequiredDefaultDescription
Conversation IDstringYesID of the conversation. Supports expressions.

Conversation: Update

ParameterTypeRequiredDefaultDescription
Contact Field Type IDstringYesID of the contact field type representing the communication channel. Retrieve from GET /contactfieldtypes.
Happened AtstringYesDate when the conversation happened (ISO 8601 format). Supports expressions.
Conversation IDstringYesID of the conversation. Supports expressions.

Conversation Message: Add

ParameterTypeRequiredDefaultDescription
Conversation IDstringYesID of the conversation. Supports expressions like {{ $json.id }}.
Content (content)stringYesContent of the message. Supports expressions.
Written AtstringYesDate when the message was written (ISO 8601 format). Supports expressions.
Written ByoptionsYestrueAuthor of the message.
Options: true (User), false (Contact)

Conversation Message: Update

ParameterTypeRequiredDefaultDescription
Conversation IDstringYesID of the conversation. Supports expressions.
Message IDstringYesID of the message to update. Supports expressions.
Update FieldscollectionNo{}The message properties to change.
— Contact IDstringNoID of the contact to associate the message with.
— ContentstringNoContent of the message.
— Written AtstringNoDate when the message was written.
— Written ByoptionsNotrueAuthor of the message.
Options: true (User), false (Contact)

Journal Entry: Create

ParameterTypeRequiredDefaultDescription
TitlestringYesTitle of the journal entry - max 250 characters. Supports expressions.
Content (post)stringYesContent of the journal entry - max 100,000 characters. Supports expressions.

Journal Entry: Delete

ParameterTypeRequiredDefaultDescription
Journal Entry IDstringYesID of the journal entry. Supports expressions.

Journal Entry: Get

ParameterTypeRequiredDefaultDescription
Journal Entry IDstringYesID of the journal entry. Supports expressions.

Journal Entry: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

Journal Entry: Update

ParameterTypeRequiredDefaultDescription
Journal Entry IDstringYesID of the journal entry. Supports expressions.
Update FieldscollectionNo{}The journal entry properties to change.
— ContentstringNoContent of the journal entry - max 100,000 characters.
— TitlestringNoTitle of the journal entry - max 250 characters.

Note: Create

ParameterTypeRequiredDefaultDescription
Contact IDstringYesID of the contact to associate the note with. Supports expressions.
BodystringYesBody of the note - max 100,000 characters. Supports expressions.
Additional FieldscollectionNo{}Optional note settings.
— Is FavoritedbooleanNofalseWhether the note has been favorited.

Note: Delete

ParameterTypeRequiredDefaultDescription
Note IDstringYesID of the note. Supports expressions.

Note: Get

ParameterTypeRequiredDefaultDescription
Note IDstringYesID of the note. Supports expressions.

Note: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

Note: Update

ParameterTypeRequiredDefaultDescription
Note IDstringYesID of the note. Supports expressions.
Update FieldscollectionNo{}The note properties to change.
— BodystringNoBody of the note - max 100,000 characters.
— Contact IDstringNoID of the contact to associate the note with.
— Is FavoritedbooleanNofalseWhether the note has been favorited.

Reminder: Create

ParameterTypeRequiredDefaultDescription
Contact IDstringNoID of the contact to associate the reminder with. Supports expressions.
Frequency TypeoptionsYesone_timeType of frequency of the reminder.
Options: one_time (Once), week (Weekly), month (Monthly), year (Yearly)
Recurring IntervalnumberNo0Interval for the reminder (e.g. every 2 weeks). (shown when Frequency Type is week, month, year)
Initial DatestringYesDate of the reminder (ISO 8601 format). Supports expressions.
TitlestringYesTitle of the reminder - max 100,000 characters. Supports expressions.
Additional FieldscollectionNo{}Optional reminder detail.
— DescriptionstringNoDescription about the reminder - max 100,000 characters.

Reminder: Delete

ParameterTypeRequiredDefaultDescription
Reminder IDstringYesID of the reminder. Supports expressions.

Reminder: Get

ParameterTypeRequiredDefaultDescription
Reminder IDstringYesID of the reminder. Supports expressions.

Reminder: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

Reminder: Update

ParameterTypeRequiredDefaultDescription
Reminder IDstringYesID of the reminder. Supports expressions.
Update FieldscollectionNo{}The reminder properties to change.
— Contact IDstringNoID of the contact to associate the reminder with.
— DescriptionstringNoDescription about the reminder - max 100,000 characters.
— Frequency TypeoptionsNoone_timeFrequency of the reminder.
Options: one_time (One Time), week (Week), month (Month), year (Year)
— Initial DatestringNoDate of the reminder (ISO 8601 format).
— Recurring IntervalnumberNo0Interval for the reminder.
— TitlestringNoTitle of the reminder - max 100,000 characters.

Tag: Create

ParameterTypeRequiredDefaultDescription
NamestringYesName of the tag - max 250 characters. Supports expressions.

Tag: Delete

ParameterTypeRequiredDefaultDescription
Tag IDstringYesID of the tag. Supports expressions.

Tag: Get

ParameterTypeRequiredDefaultDescription
Tag IDstringYesID of the tag. Supports expressions.

Tag: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

Tag: Update

ParameterTypeRequiredDefaultDescription
NamestringYesName of the tag - max 250 characters. Supports expressions.
Tag IDstringYesID of the tag. Supports expressions.

Task: Create

ParameterTypeRequiredDefaultDescription
Contact IDstringYesID of the contact to associate the task with. Supports expressions.
TitlestringYesTitle of the task - max 250 characters. Supports expressions.
Additional FieldscollectionNo{}Optional task detail.
— DescriptionstringNoDescription of the task - max 100,000 characters.

Task: Delete

ParameterTypeRequiredDefaultDescription
Task IDstringYesID of the task. Supports expressions.

Task: Get

ParameterTypeRequiredDefaultDescription
Task IDstringYesID of the task. Supports expressions.

Task: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

Task: Update

ParameterTypeRequiredDefaultDescription
Task IDstringYesID of the task. Supports expressions.
Update FieldscollectionNo{}The task properties to change.
— CompletedbooleanNofalseWhether the task has been completed.
— Contact IDstringNoID of the contact to associate the task with.
— DescriptionstringNoDescription of the task - max 100,000 characters.
— TitlestringNoTitle of the task - max 250 characters.

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

This node never fans out — every operation produces exactly one output item per input item. The Monica API envelope is unwrapped for you, so what you get is the record itself, not a wrapper.

Operation shapeWhat lands on the item
Any getAllitems — the array of records. Use a Split Out node on items if you want one workflow item per record
create, get, update, add, removeThe record merged into the item JSON at the top level
Any deletesuccess: true

Because single-record results are merged at the top level, the created record’s id is available to the next node straight away — chain a create into a note or a tag with {{ $json.id }}.

The rest of the item JSON passes through unchanged and binary data is forwarded.

Usage Examples

  • Create a new contact in Monica CRM
  • Get all activities from Monica CRM
  • Update a reminder for a contact
  • Add tags to a contact
  • Create a journal entry

Example Configuration

Create a contact:

{
  "type": "monica_crm",
  "parameters": {
    "resource": "contact",
    "operation": "create",
    "firstName": "John",
    "genderId": "1",
    "additionalFields": {
      "last_name": "Doe",
      "birthdate": "1990-05-15",
      "nickname": "Johnny"
    }
  }
}

Log an activity against two contacts:

{
  "type": "monica_crm",
  "parameters": {
    "resource": "activity",
    "operation": "create",
    "activityTypeId": "2",
    "contacts": "123,456",
    "happenedAt": "2023-12-01T10:00:00Z",
    "summary": "Meeting about project planning",
    "additionalFields": {
      "description": "Discussed project timeline and resource allocation"
    }
  }
}

Record a call:

{
  "type": "monica_crm",
  "parameters": {
    "resource": "call",
    "operation": "create",
    "contactId": "123",
    "calledAt": "2023-12-01T14:30:00Z",
    "content": "Discussed upcoming meeting and shared project updates"
  }
}

Create a note and mark it a favourite:

{
  "type": "monica_crm",
  "parameters": {
    "resource": "note",
    "operation": "create",
    "contactId": "123",
    "body": "Remember to follow up on the project proposal discussed during our last meeting",
    "additionalFields": {
      "isFavorited": true
    }
  }
}

Add tags to a contact — tag names, not IDs:

{
  "type": "monica_crm",
  "parameters": {
    "resource": "contactTag",
    "operation": "add",
    "contactId": "123",
    "tagsToAdd": "client,important,vip"
  }
}

Create a recurring reminder:

{
  "type": "monica_crm",
  "parameters": {
    "resource": "reminder",
    "operation": "create",
    "contactId": "123",
    "frequencyType": "month",
    "frequencyNumber": 3,
    "initialDate": "2024-01-15T09:00:00Z",
    "title": "Quarterly check-in call",
    "additionalFields": {
      "description": "Schedule quarterly business review with client"
    }
  }
}

Update contact information:

{
  "type": "monica_crm",
  "parameters": {
    "resource": "contact",
    "operation": "update",
    "contactId": "123",
    "updateFields": {
      "first_name": "Jonathan",
      "last_name": "Smith",
      "birthdate": "1990-05-20"
    }
  }
}

List contacts matching a search, oldest first:

{
  "type": "monica_crm",
  "parameters": {
    "resource": "contact",
    "operation": "getAll",
    "filters": {
      "query": "john",
      "sort": "created_at"
    },
    "returnAll": false,
    "limit": 50
  }
}

Chaining nodes. A create returns the new record on the item, so the node that follows can read its id directly. Put these two nodes in sequence to create a contact and immediately attach a note to it:

{
  "type": "monica_crm",
  "parameters": {
    "resource": "contact",
    "operation": "create",
    "firstName": "Sarah",
    "genderId": "2",
    "additionalFields": {
      "last_name": "Johnson",
      "birthdate": "1985-08-22",
      "nickname": "SJ"
    }
  }
}
{
  "type": "monica_crm",
  "parameters": {
    "resource": "note",
    "operation": "create",
    "contactId": "{{ $json.id }}",
    "body": "Initial contact established through networking event"
  }
}

The same pattern opens a conversation and posts its first message:

{
  "type": "monica_crm",
  "parameters": {
    "resource": "conversation",
    "operation": "create",
    "contactId": "123",
    "contactFieldTypeId": "5",
    "happenedAt": "2023-12-01T15:00:00Z"
  }
}
{
  "type": "monica_crm",
  "parameters": {
    "resource": "conversationMessage",
    "operation": "add",
    "conversationId": "{{ $json.id }}",
    "content": "Hi Sarah, thanks for the meeting today. Here are the action items we discussed...",
    "writtenAt": "2023-12-01T15:05:00Z",
    "writtenByMe": true
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage personal contacts, activities, calls, notes, conversations, journal entries, reminders, tags, and tasks in Monica CRM.

Key Notes

  • Look up the reference IDs first. Activity Type ID, Gender ID and Contact Field Type ID are numeric IDs from your own instance — read them from /activitytypes, /genders and /contactfieldtypes in Monica before hard-coding them.
  • Tags add by name, remove by ID. Tags to Add takes tag names; Tags to Remove takes numeric tag IDs. They are not interchangeable.
  • Written By is a boolean, not a string. true means you wrote the message, false means the contact did.
  • Recurring Interval only appears for recurring reminders — pick week, month or year in Frequency Type first.
  • Update Fields use snake_case keys (first_name, happened_at, is_favorited) even though the create fields use camelCase.
  • List results are not separate items. Every Get Many returns one item with the array on items; add a Split Out node on items when downstream nodes should see one record at a time.

Frequently asked questions

Where do I find the numeric reference IDs?

Activity Type ID, Gender ID and Contact Field Type ID are numeric IDs from your own instance. Read them from `/activitytypes`, `/genders` and `/contactfieldtypes` in Monica before hard-coding them — they differ per installation.

Why is my tag removal not working?

Tags add by name but remove by ID. Tags to Add takes tag names; Tags to Remove takes numeric tag IDs. They are not interchangeable.

What can it manage besides contacts?

Activities, calls, notes, conversations, journal entries, reminders, tags and tasks — the full set of things Monica tracks around a person.

Which credential does it need?

A Monica CRM API credential pointing at your instance.

Build with the Monica CRM node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Monica CRM API credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.