---
title: "Push Institution to CRM"
method: POST
path: "/api/v3/crm/{integration_id}/institutions/{institution_id}/company"
tags: ["CRM Companies"]
---

# Push Institution to CRM

`POST /api/v3/crm/{integration_id}/institutions/{institution_id}/company`

## 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}/institutions/{institution_id}/company`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/nationgraph/apis/nationgraph-api/docs/api/v3/crm/:integration_id/institutions/:institution_id/company/post.ts> (a function with typed inputs; its response is checked against the schema)

Push a NationGraph institution to CRM as a new company.

**Available fields to push:**

*From Institution:*
- `name` → CRM `name`
- `state` → CRM `state`
- `city` → CRM `city`
- `street` → CRM `address`
- `county` → Appended to CRM `description`
- `population` → CRM `numberofemployees`
- `label` → CRM `industry` (mapped to valid enum, e.g., "K12 District" → "PRIMARY_SECONDARY_EDUCATION")

*From Institution Metadata:*
- `website` → CRM `website` (from homepage_url)
- `description` → CRM `description` (from entity_understanding)
- `latitude` → Appended to CRM `description` (hs_latitude is read-only)
- `longitude` → Appended to CRM `description` (hs_longitude is read-only)

**Default fields (if not specified):** name, state, city, street, website, description

**Auto-mapping:** By default, this will also create a CRM-institution mapping so you can
reference this company in future operations. Set `create_mapping: false` to skip.

**Owner assignment:** Optionally assign the company to a CRM owner using `owner_id`.
Get available owners via `GET /crm/{integration_id}/owners`.

**Custom fields:** Optionally write literal values to existing CRM custom fields on the
new company using `custom_fields` (e.g. a "Source" field set to "Nationgraph"). Field
names must match the CRM's API name (HubSpot property name or Salesforce field API name);
fields that don't exist on the CRM org are silently skipped.

## Path parameters

- `integration_id` string, uuid, required: The CRM integration ID
- `institution_id` string, required: The NationGraph institution unique_id

## Request body

- PushInstitutionRequest: Request to push a NationGraph institution to CRM as a company.
  - `fields` InstitutionFieldSelection[], nullable: Fields to include. If not specified, defaults to: name, state, city, street, website, description
  - `create_mapping` boolean: Whether to automatically create a CRM-institution mapping after pushing
  - `owner_id` string, nullable: CRM owner ID to assign the company to (get available owners via /crm/{integration_id}/owners)
  - `custom_fields` CustomFieldValue[], nullable: Optional literal values to write to existing CRM custom fields on the new company (e.g. a Source field set to 'Nationgraph'). Fields that don't exist on the CRM org are silently skipped.
    - `crm_field_name` string, required: Existing CRM field name to write to (HubSpot property name or Salesforce field API name). Discover via GET /crm/{integration_id}/company-fields.
    - `value` string, required: String value to write to the field.

## Response `200`

Successful Response

- PushInstitutionResponse: Response after pushing an institution to CRM.
  - `company_id` string, required: The created CRM company ID
  - `institution_id` string, required: The NationGraph institution ID
  - `properties_pushed` object, required: Properties that were sent to CRM
  - `mapping_created` boolean, required: Whether a CRM mapping was created

## 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)
