ACTION_ID: reply_add_and_push_to_campaign NAME: Reply: Add and Push Contact to Campaign CATEGORY: Outreach CREDITS: 0 Add a lead to a campaign in Reply.io. PREREQUISITE: Reply.io 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 campaign_id (dynamicDropdown, required) Campaign ID. The Id of the campaign you want to add and push the contact to. Values from the reply list. email (email, required) Email. The email of the contact you want to add and push to the campaign. first_name (string, required) First Name. The First Name of the Contact. last_name (string, optional) Last Name. company_name (string, optional) Company Name. city (string, optional) City. state (string, optional) State. country (string, optional) Country. time_zone (string, optional) Time Zone. title (string, optional) Title. phone (string, optional) Phone. linkedin_url (url, optional) LinkedIn URL. custom_variables (jsonArray, optional) Custom Variables. `[{name, value}]` for custom merge tags referenced in the Reply.io campaign template. 2. OUTPUTS status (string) — Status. e.g. "completed". 3. HOW TO CONFIGURE Resolve the campaign list via Get Action Field Options: POST /api/v1/workflows/{workflow_id}/sheets/{sheet_id}/actions/{action_instance_id}/options/campaign_id (body: {}) Configure Action body: { "inputs": { "campaign_id": "", "email": "{{input.email}}", "first_name": "{{input.first_name}}", "last_name": "{{input.last_name}}", "company_name": "{{input.company_name}}", "title": "{{input.title}}", "linkedin_url": "{{input.linkedin_url}}", "custom_variables": [ { "name": "personalized_intro", "value": "{{llm_models_1.generated_content}}" } ] } } Field-by-field: - campaign_id Reply.io campaign ID from the `campaign_id` options call. - email Contact's email — required. - first_name Contact's first name — required. - last_name / company_name / city / state / country / time_zone / title / phone / linkedin_url Optional contact profile fields. - custom_variables `[{name, value}]` for custom merge tags referenced in the Reply.io campaign template — common slot for AI-generated personalized content from upstream `llm_models`. 4. KEY NOTES - `email` and `first_name` are required by Reply.io. The other contact-profile fields are optional but help personalize the campaign. - `custom_variables` is the slot for AI-generated per-contact content from upstream `llm_models` — each `name` must match a merge tag in the Reply.io campaign template. 5. WHERE IT FITS IN A WORKFLOW Pattern: contact discovery -> person_work_email_waterfall -> person_work_email_verification_by_* -> llm_models -> reply_add_and_push_to_campaign. 6. WHEN TO USE Use reply_add_and_push_to_campaign to enroll contacts in Reply.io campaigns. 7. WHEN NOT TO USE Need a different sender (Instantly, Lemlist, Smartlead, La Growth Machine, HeyReach) -> instantly_add_to_campaign, lemlist_add_lead_to_campaign, smartleads_add_to_campaign, la_growth_machine_add_to_audience, heyreach_add_leads_to_campaign (https://floqer.com/docs/action-detail/.txt) Need AI-generated email content -> llm_models (upstream of this action; pass the generated content via `custom_variables`) (https://floqer.com/docs/action-detail/llm_models.txt) Last updated: 2026-05-01.