Search all guides

Reference · Tools

Monica CRM integration

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.

Works as
Action
Tool name
monica_crm
Operations
52 — Create , Delete , Get , Get Many , Update and 47 more
Parameters
75
Outputs
Output, Error
Credentials
Monica CRM API

What you can build with Monica CRM

  • 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.

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.

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 IDstringYes—ID of the activity type. Retrieve available types from GET /activitytypes in your Monica CRM instance.
ContactsstringYes—Comma-separated list of IDs of the contacts to associate the activity with. Supports expressions.
Happened AtstringYes—Date when the activity happened (ISO 8601 format). Supports expressions.
SummarystringYes—Brief description of the activity - max 255 characters. Supports expressions.
Additional FieldscollectionNo{}Optional activity detail.
— DescriptionstringNo—Description of the activity - max 100,000 characters.

Activity: Delete

ParameterTypeRequiredDefaultDescription
Activity IDstringYes—ID of the activity. Supports expressions.

Activity: Get

ParameterTypeRequiredDefaultDescription
Activity IDstringYes—ID 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 IDstringYes—ID of the activity. Supports expressions.
Update FieldscollectionNo{}The activity properties to change.
— Activity Type IDstringNo—ID of the activity type. Retrieve available types from GET /activitytypes in your Monica CRM instance.
— ContactsstringNo—Comma-separated IDs of the contacts to associate the activity with.
— DescriptionstringNo—Description of the activity - max 100,000 characters.
— Happened AtstringNo—Date when the activity happened (ISO 8601 format).
— SummarystringNo—Brief description of the activity - max 255 characters.

Call: Create

ParameterTypeRequiredDefaultDescription
Contact IDstringYes—ID of the contact to associate the call with. Supports expressions like {{ $json.contactId }}.
Called AtstringYes—Date when the call happened (ISO 8601 format). Supports expressions.
Description (content)stringYes—Description of the call - max 100,000 characters. Supports expressions.

Call: Delete

ParameterTypeRequiredDefaultDescription
Call IDstringYes—ID of the call. Supports expressions.

Call: Get

ParameterTypeRequiredDefaultDescription
Call IDstringYes—ID 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 IDstringYes—ID of the call. Supports expressions.
Update FieldscollectionNo{}The call properties to change.
— Called AtstringNo—Date when the call happened (ISO 8601 format).
— Contact IDstringNo—ID of the contact to associate the call with.
— DescriptionstringNo—Description of the call - max 100,000 characters.

Contact: Create

ParameterTypeRequiredDefaultDescription
First NamestringYes—The contact’s first name. Supports expressions.
Gender IDstringYes—ID of the gender. Retrieve available genders from GET /genders in your Monica CRM instance.
Additional FieldscollectionNo{}The rest of the contact record.
— BirthdatestringNo—Birthdate in ISO 8601 format (e.g. 1990-05-15).
— Deceased DatestringNo—Deceased date in ISO 8601 format.
— Is DeceasedbooleanNofalseWhether the contact has passed away.
— Last NamestringNo—The contact’s last name.
— NicknamestringNo—The 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 IDstringYes—ID of the contact. Supports expressions.

Contact: Get

ParameterTypeRequiredDefaultDescription
Contact IDstringYes—ID of the contact. Supports expressions.

Contact: Get Many

ParameterTypeRequiredDefaultDescription
FilterscollectionNo{}Narrow and order the contacts returned.
— Search TermstringNo—Search term to filter results by.
— SortoptionsNo—Ordering 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 IDstringYes—ID of the contact. Supports expressions.
Update FieldscollectionNo{}The contact properties to change.
— BirthdatestringNo—Birthdate in ISO 8601 format.
— Deceased DatestringNo—Deceased date in ISO 8601 format.
— First NamestringNo—The contact’s first name.
— Gender IDstringNo—ID of the gender. Retrieve available genders from GET /genders.
— Is DeceasedbooleanNofalseWhether the contact has passed away.
— Last NamestringNo—The contact’s last name.
— NicknamestringNo—The contact’s nickname.
— TypeoptionsNofalseWhether the contact gets their own contact sheet.
Options: false (Real), true (Partial)

Contact Field: Create

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

Contact Field: Delete

ParameterTypeRequiredDefaultDescription
Contact Field IDstringYes—ID of the contact field. Supports expressions.

Contact Field: Get

ParameterTypeRequiredDefaultDescription
Contact Field IDstringYes—ID of the contact field. Supports expressions.

Contact Field: Update

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

Contact Tag: Add

ParameterTypeRequiredDefaultDescription
Contact IDstringYes—ID of the contact. Supports expressions.
Tags to AddstringYes—Comma-separated tag names to add to the contact. These are tag names (strings), not IDs.

Contact Tag: Remove

ParameterTypeRequiredDefaultDescription
Contact IDstringYes—ID of the contact. Supports expressions.
Tags to RemovestringYes—Comma-separated tag IDs to remove from the contact. Use numeric tag IDs, not names.

Conversation: Create

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

Conversation: Delete

ParameterTypeRequiredDefaultDescription
Conversation IDstringYes—ID of the conversation. Supports expressions.

Conversation: Get

ParameterTypeRequiredDefaultDescription
Conversation IDstringYes—ID of the conversation. Supports expressions.

Conversation: Update

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

Conversation Message: Add

ParameterTypeRequiredDefaultDescription
Conversation IDstringYes—ID of the conversation. Supports expressions like {{ $json.id }}.
Content (content)stringYes—Content of the message. Supports expressions.
Written AtstringYes—Date 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 IDstringYes—ID of the conversation. Supports expressions.
Message IDstringYes—ID of the message to update. Supports expressions.
Update FieldscollectionNo{}The message properties to change.
— Contact IDstringNo—ID of the contact to associate the message with.
— ContentstringNo—Content of the message.
— Written AtstringNo—Date when the message was written.
— Written ByoptionsNotrueAuthor of the message.
Options: true (User), false (Contact)

Journal Entry: Create

ParameterTypeRequiredDefaultDescription
TitlestringYes—Title of the journal entry - max 250 characters. Supports expressions.
Content (post)stringYes—Content of the journal entry - max 100,000 characters. Supports expressions.

Journal Entry: Delete

ParameterTypeRequiredDefaultDescription
Journal Entry IDstringYes—ID of the journal entry. Supports expressions.

Journal Entry: Get

ParameterTypeRequiredDefaultDescription
Journal Entry IDstringYes—ID 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 IDstringYes—ID of the journal entry. Supports expressions.
Update FieldscollectionNo{}The journal entry properties to change.
— ContentstringNo—Content of the journal entry - max 100,000 characters.
— TitlestringNo—Title of the journal entry - max 250 characters.

Note: Create

ParameterTypeRequiredDefaultDescription
Contact IDstringYes—ID of the contact to associate the note with. Supports expressions.
BodystringYes—Body 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 IDstringYes—ID of the note. Supports expressions.

Note: Get

ParameterTypeRequiredDefaultDescription
Note IDstringYes—ID 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 IDstringYes—ID of the note. Supports expressions.
Update FieldscollectionNo{}The note properties to change.
— BodystringNo—Body of the note - max 100,000 characters.
— Contact IDstringNo—ID of the contact to associate the note with.
— Is FavoritedbooleanNofalseWhether the note has been favorited.

Reminder: Create

ParameterTypeRequiredDefaultDescription
Contact IDstringNo—ID 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 DatestringYes—Date of the reminder (ISO 8601 format). Supports expressions.
TitlestringYes—Title of the reminder - max 100,000 characters. Supports expressions.
Additional FieldscollectionNo{}Optional reminder detail.
— DescriptionstringNo—Description about the reminder - max 100,000 characters.

Reminder: Delete

ParameterTypeRequiredDefaultDescription
Reminder IDstringYes—ID of the reminder. Supports expressions.

Reminder: Get

ParameterTypeRequiredDefaultDescription
Reminder IDstringYes—ID 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 IDstringYes—ID of the reminder. Supports expressions.
Update FieldscollectionNo{}The reminder properties to change.
— Contact IDstringNo—ID of the contact to associate the reminder with.
— DescriptionstringNo—Description 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 DatestringNo—Date of the reminder (ISO 8601 format).
— Recurring IntervalnumberNo0Interval for the reminder.
— TitlestringNo—Title of the reminder - max 100,000 characters.

Tag: Create

ParameterTypeRequiredDefaultDescription
NamestringYes—Name of the tag - max 250 characters. Supports expressions.

Tag: Delete

ParameterTypeRequiredDefaultDescription
Tag IDstringYes—ID of the tag. Supports expressions.

Tag: Get

ParameterTypeRequiredDefaultDescription
Tag IDstringYes—ID 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
NamestringYes—Name of the tag - max 250 characters. Supports expressions.
Tag IDstringYes—ID of the tag. Supports expressions.

Task: Create

ParameterTypeRequiredDefaultDescription
Contact IDstringYes—ID of the contact to associate the task with. Supports expressions.
TitlestringYes—Title of the task - max 250 characters. Supports expressions.
Additional FieldscollectionNo{}Optional task detail.
— DescriptionstringNo—Description of the task - max 100,000 characters.

Task: Delete

ParameterTypeRequiredDefaultDescription
Task IDstringYes—ID of the task. Supports expressions.

Task: Get

ParameterTypeRequiredDefaultDescription
Task IDstringYes—ID 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 IDstringYes—ID of the task. Supports expressions.
Update FieldscollectionNo{}The task properties to change.
— CompletedbooleanNofalseWhether the task has been completed.
— Contact IDstringNo—ID of the contact to associate the task with.
— DescriptionstringNo—Description of the task - max 100,000 characters.
— TitlestringNo—Title 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.

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

Monica CRM manages personal contacts, activities, calls, notes, conversations, journal entries, reminders, tags, and tasks. It is ideal for creating, updating, or retrieving specific relationship details when a user needs to manage their personal network. This tool produces updated or new entries, or retrieves existing information about personal relationships and associated activities.

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 Monica CRM

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 reviewed . Spotted something wrong? Tell us.