ACTION_ID: close_crm_add_contact NAME: Close CRM: Add Contact CATEGORY: CRM CREDITS: 0 Add a person to an existing Close lead. Contacts in Close never stand alone — they hang off a lead ID, so a lead action has to run first and hand its ID to this step. PREREQUISITE: Close CRM account connection — the user must create it in the Floqer UI (Connections page); an agent cannot. Without it the action fails the row with a connection / authentication error. Confirm it exists before configuring. 1. INPUTS lead_id (string, required) Lead Id. The lead this contact belongs to. Take it from the `id` output of a lead action, or the `lead_id` output of close_crm_lookup_lead. full_name (string, required) Full Name. The name of the contact. title (string, optional) Title. The title of the contact. phones (jsonArrayWithDropDown, optional) Phones. The phones of the contact. Each entry pairs a number with a type. Types: - { value: "office", label: "Office" } - { value: "mobile", label: "Mobile" } - { value: "home", label: "Home" } - { value: "direct", label: "Direct" } - { value: "fax", label: "Fax" } - { value: "url", label: "URL" } - { value: "other", label: "Other" } emails (jsonArrayWithDropDown, optional) Emails. The emails of the contact. Each entry pairs an address with a type. Types: - { value: "office", label: "Office" } - { value: "mobile", label: "Mobile" } - { value: "home", label: "Home" } - { value: "direct", label: "Direct" } - { value: "fax", label: "Fax" } - { value: "url", label: "URL" } - { value: "other", label: "Other" } urls (jsonArrayWithDropDown, optional) Urls. The urls of the contact, each paired with a type from the same list as phones and emails. custom_fields (jsonArray, optional) Custom Fields. The custom fields of the contact, as `[{name, value}]`. 2. OUTPUTS contact_id (string) — The id of the contact lead_id (string) — The lead id of the contact organization_id (string) — The organization id of the contact full_name (string) — The name of the contact display_name (string) — The display name of the contact title (string) — The title of the contact emails (raw_array) — The emails of the contact phones (raw_array) — The phones of the contact urls (raw_array) — The urls of the contact integration_links (raw_array) — The integration links of the contact created_by (string) — The user who created the contact updated_by (string) — The user who updated the contact date_created (date) — The date the contact was created date_updated (date) — The date the contact was updated 3. HOW TO CONFIGURE Configure Action body: { "inputs": { "lead_id": "{{close_crm_lookup_create_lead_01ab.id}}", "full_name": "{{input.full_name}}", "title": "{{enrich_person_linkedin_profile_01cd.person_current_job_title}}", "emails": [ { "value": "{{person_work_email_waterfall_01ef.work_email}}", "type": "office" } ], "phones": [ { "value": "{{person_enrich_by_floqer_01gh.phone_number}}", "type": "mobile" } ] } } Field-by-field: - lead_id Required. `{{.id}}` — see the KEY NOTES on which field to read. - emails/phones Arrays of `{value, type}`. `type` must be one of the values listed in §1; Close rejects anything else. - custom_fields `[{name, value}]` where `name` matches the custom field as Close defines it. 4. KEY NOTES - `lead_id` is the whole game. Read it from the lead action's `id` output (or `lead_id` from close_crm_lookup_lead) — NOT from `organization_id`, which is the user's Close workspace and identical on every row. A wrong lead ID fails the row rather than silently misfiling. - This always CREATES. Re-running the chain adds the same person to the lead twice; Close does not dedupe contacts on this path. Use `close_crm_upsert_contact` for anything scheduled. - A contact with no email is accepted by Close and is not an error, but it cannot be sequenced. If the email waterfall can miss, gate this step on a non-empty address rather than discovering empty contacts later. - Multiple emails or phones go in as several array entries, each with its own type. There is no separate "primary" flag here — Close treats the first entry as primary. 5. WHERE IT FITS IN A WORKFLOW Pattern: close_crm_lookup_create_lead -> employee finder -> person_work_email_waterfall -> close_crm_add_contact, with the lead ID threaded through from the lead step. 6. WHEN TO USE Use close_crm_add_contact on a one-shot import, or on the branch where you already know the person is not on the lead. 7. WHEN NOT TO USE The chain may run again over the same people -> action-detail/close_crm_upsert_contact.txt You need the lead itself, not a person on it -> action-detail/close_crm_create_lead.txt Last updated: 2026-08-13.