search_campaigns_by_contact
Find all email outreach campaigns a specific contact is enrolled in to check for existing participation, identify duplicate enrollments, and audit campaign membership.
Instructions
Find all campaigns that a specific contact/lead is part of.
Useful for:
Checking if a lead is already in any campaigns
Finding duplicate enrollments
Auditing lead campaign membership
Returns list of campaigns the contact email is enrolled in.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Implementation Reference
- Handler function that executes the tool: queries Instantly API endpoint /campaigns/search-by-contact with contact_email and returns JSON results.async def search_campaigns_by_contact(params: SearchCampaignsByContactInput) -> str: """ Find all campaigns that a specific contact/lead is part of. Useful for: - Checking if a lead is already in any campaigns - Finding duplicate enrollments - Auditing lead campaign membership Returns list of campaigns the contact email is enrolled in. """ client = get_client() query_params = {"contact_email": params.contact_email} result = await client.get("/campaigns/search-by-contact", params=query_params) return json.dumps(result, indent=2)
- Pydantic input schema defining the required contact_email parameter with validation and description.class SearchCampaignsByContactInput(BaseModel): """ Input for searching campaigns by contact email. Finds all campaigns a specific lead/contact is enrolled in. """ model_config = ConfigDict(str_strip_whitespace=True, extra="ignore") contact_email: str = Field(..., description="Email address of the contact to search for")
- src/instantly_mcp/tools/campaigns.py:516-526 (registration)Registration: Tool function added to CAMPAIGN_TOOLS list, which is used by get_all_tools() for server registration.# Export all campaign tools CAMPAIGN_TOOLS = [ create_campaign, list_campaigns, get_campaign, update_campaign, activate_campaign, pause_campaign, delete_campaign, search_campaigns_by_contact, ]
- src/instantly_mcp/server.py:84-84 (registration)MCP annotation registration: Specifies readOnlyHint=True for the tool in TOOL_ANNOTATIONS dict used during mcp.tool() calls."search_campaigns_by_contact": {"readOnlyHint": True},