---
title: "Push Signal to CRM"
method: POST
path: "/api/v3/crm/{integration_id}/signals/{signal_id}"
tags: ["CRM"]
---

# Push Signal to CRM

`POST /api/v3/crm/{integration_id}/signals/{signal_id}`

## Request

- Base URL: `https://api.nationgraph.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.nationgraph.com/api/v3/crm/{integration_id}/signals/{signal_id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/nationgraph/apis/nationgraph-api/docs/api/v3/crm/:integration_id/signals/:signal_id/post.ts> (a function with typed inputs; its response is checked against the schema)

Push a signal to HubSpot CRM as either a **note** or a **task**.

**Action Types:**

- **`note`**: Records the signal as a note on the HubSpot company. Use this to
  document the signal for future reference.

- **`task`**: Creates a follow-up task on the HubSpot company. Use this when
  the signal requires action. Tasks include due dates, priority levels, and
  can be assigned to team members.

**Requirements:**
- Active HubSpot integration
- CRM mapping between the signal's institution and a HubSpot company
  (create via `/api/v3/crm/{integration_id}/mappings`)

## Path parameters

- `integration_id` string, uuid, required: The CRM integration ID
- `signal_id` string, required: The signal ID to push

## Request body

- CRMActionRequest: Request to push a signal to CRM.
  - `action_type` 'note' | 'task' | 'post' | 'lead', required: Type of CRM action to perform on a signal.
  - `task_options` TaskOptions: Options for creating a task in CRM.
    - `subject` string, nullable: Custom task subject/title. Defaults to signal title with institution name.
    - `body` string, nullable: Custom task body/description. Defaults to signal summary and reason.
    - `due_date` string, nullable: Due date as ISO string or Unix timestamp in ms. Defaults to tomorrow.
    - `priority` 'LOW' | 'MEDIUM' | 'HIGH': CRM task priority levels.
    - `owner_id` string, nullable: CRM owner ID to assign the task to.
  - `post_options` PostOptions: Options for creating a post in CRM.
    - `title` string, nullable: Custom post title. Defaults to institution name with signal title.
    - `body` string, nullable: Custom post body/content. Defaults to formatted signal with emojis.
  - `lead_options` LeadOptions: Options for creating a lead in CRM. Currently Salesforce-only.
    - `last_name` string, required: Lead's last name (required).
    - `company` string, required: Company name (required).
    - `first_name` string, nullable: Lead's first name.
    - `email` string, nullable: Lead email.
    - `phone` string, nullable: Lead phone number.
    - `title` string, nullable: Lead job title.
    - `status` string, nullable: Lead status.
    - `rating` string, nullable: Lead rating.
    - `lead_source` string, nullable: Lead source.
    - `description` string, nullable: Lead description.
    - `owner_id` string, nullable: CRM owner ID for the lead.
  - `subscription_id` string, nullable: Target workflow subscription (Zap) chosen by the user. Only used for workflow providers like Zapier.

## Response `200`

Successful Response

- CRMActionResponse: Response from a CRM action.
  - `success` boolean, required
  - `action_type` 'note' | 'task' | 'post' | 'lead', required: Type of CRM action to perform on a signal.
  - `crm_id` string, required: The created CRM object ID (note, task, post, or lead)
  - `company_id` string, required: The CRM company/account ID. Empty string for lead pushes since leads are not tied to a company.
  - `message` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/nationgraph/apis/nationgraph-api.md) - [All operations](https://skmtc.dev/nationgraph/apis/nationgraph-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nationgraph/apis/nationgraph-api/revisions/85804e68d86d?raw)
