Notes

Update note

Update a candidate note. Fields that are omitted are left unchanged, and the acting user must be a Site Admin or the note's author. The endpoint follows the Greenhouse UI: body and visibility can be edited on NOTE, TOUCHPOINT and FEEDBACK notes, visibility can only switch between public and admin_only on a NOTE that is not private, and any other change returns 422. Greenhouse's own internal integrations can also edit other note types, subject, user_id and the email fields. Changing body clears body_with_tags and removes the note's @-mentions, since the API takes plain text; sending the current body changes nothing.

patch/v3/notes/{id}

Request

  • Base URL
    https://harvest.greenhouse.io
  • URL
    https://harvest.greenhouse.io/v3/notes/{id}
  • Auth
    • OAuth 2
      Authorization code: https://auth.greenhouse.io/authorize
      Client credentials
      Token URL: https://auth.greenhouse.io/token scopes: harvest:notes:update
    • or HTTP bearer

Path parameters

idinteger required

Request body

bodystring

New free-text body of the note. Replaces the stored body. The API takes plain text, so a changed body also drops the @-mentions in body_with_tags, and users who could only see the note because they were mentioned lose access to it. Sending the current body changes nothing.

visibility'admin_only' | 'private' | 'public'

New visibility. Matches the Greenhouse UI: only a NOTE that is not private can change visibility, and only between public and admin_only. Greenhouse internal integrations can set any value, where private requires the "see private notes" permission on the candidate.

subjectstring

New subject line. Greenhouse internal integrations only; other callers receive 422.

user_idinteger

Id of the Greenhouse user to record as the note's author. Must belong to the organization; deactivated users are accepted. Greenhouse internal integrations only; other callers receive 422.

email_fromstring[]

From addresses of the logged email. Only allowed on an EMAIL note, and only for Greenhouse internal integrations.

email_tostring[]

To addresses of the logged email. Only allowed on an EMAIL note, and only for Greenhouse internal integrations.

email_ccstring[]

Cc addresses of the logged email. Only allowed on an EMAIL note, and only for Greenhouse internal integrations.

Response

Successful

idinteger
created_atstring date-time
updated_atstring date-time
candidate_idinteger nullable

Id of the candidate this note is attached to. Notes are always anchored to a candidate; application_id is an optional second anchor for application-scoped notes.

application_idinteger nullable

Id of the application this note is attached to, when the note was authored against a specific application (for example a stage transition or a feedback note). null for candidate-level notes that are not tied to any single application.

bodystring nullable

Free-text body of the note. @-mentions are rendered as plain user names; use body_with_tags for the version that preserves mention markup. Newline characters are stored verbatim and rendered as line breaks in the Greenhouse UI.

subjectstring nullable

Subject line on the note. Always populated for EMAIL notes; usually null for other types.

type'NOTE' | 'ACTIVITY' | 'INTERVIEW' | 'EMAIL' | 'FOLLOW_UP' | 'TAKE_HOME_TEST' | 'LINKEDIN_NOTE' | 'LINKEDIN_INMAIL' | 'AVAILABILITY_REQUEST' | 'MIGRATION_ERROR' | 'TOUCHPOINT' | 'FORM' | 'FEEDBACK'

Note classification. NOTE and EMAIL are user-authored candidate notes and logged emails; ACTIVITY covers system-generated activity feed entries plus partner-logged activities. Other values (INTERVIEW, FEEDBACK, TOUCHPOINT, FOLLOW_UP, TAKE_HOME_TEST, LINKEDIN_NOTE, LINKEDIN_INMAIL, AVAILABILITY_REQUEST, FORM, MIGRATION_ERROR) identify notes produced by specific Greenhouse features. They cannot be created through this API, and only Greenhouse internal integrations can edit them.

user_idinteger nullable

Id of the Greenhouse user who authored the note. null for notes generated by the system rather than a specific user.

email_fromstring nullable

Comma-separated list of From addresses on the logged email. Only populated when type is EMAIL.

email_tostring nullable

Comma-separated list of To addresses on the logged email. Only populated when type is EMAIL.

email_ccstring[] nullable

Cc addresses on the logged email, one entry per recipient. Only populated when type is EMAIL.

import_hashstring nullable

Stable de-duplication key set when the note was created by a bulk import or migration. null for notes authored through the UI or Harvest. Use it to detect re-runs of the same import.

body_with_tagsstring nullable

body with @-mentions rendered as embedded user tags (e.g. @[User Name](user:123)) instead of plain user names, for partners that need to resolve mentioned users.

visibility'admin_only_visible' | 'privately_visible' | 'publicly_visible' | 'null' nullable

Who can see this note. publicly_visible is visible to anyone with access to the candidate, privately_visible is restricted to users with the "see private notes" permission, and admin_only_visible is restricted to Job Admins and Site Admins. Defaults to admin_only_visible on create.

email_attachment_file_namesstring[] nullable

File names of attachments on the logged email, one entry per attachment, when the source captured them. Only populated when type is EMAIL.

Changes

No recorded changes to this operation across all 1 revision of this API.