GTM Engineer looking for the most complete social signal source? Check out our GTM Unlimited Plans
Help Center Documentation

How to Set Up Webhooks

Connect Teamfluence to Your Sales Processes


Description

Webhooks allow you to automate workflows by notifying external systems whenever changes occur in Teamfluence. You can use preconfigured webhooks to update your system or trigger actions when events happen, such as new connection or a newly engagement on a LinkedIn post.

Webhooks support any external URLs that accept POST data via HTTP requests. You can integrate them with automation tools like Make.com, Zapier, or n8n, or configure your own server for direct handling.

Plan Requirements:

  • Direct Webhooks: Available on all plans
  • Workflows with Webhooks: Available on Economy and Business plans (not available on GTM Unlimited)

Understanding Webhook Events vs. Workflow Triggers

Teamfluence offers two methods to work with webhooks, and each has its own set of available events:

Available Workflow Triggers (Method 1)

When using Workflows with “Fire a Webhook” action, you can trigger automations based on these events:

Lead & Prospect Triggers:

  • New Prospect – Lead moved to Active/Prospect status
  • New Lead – Any new lead
  • New Engagement from Existing Lead – Existing lead has new interaction
  • New Tag was added to a Lead – Tag assigned to lead

Profile & Connection Triggers:

  • New Profile Visit – Someone viewed team member's profile
  • New Profile Follower – Someone followed team member's profile
  • New Campaign Connection Request Accepted – Campaign connection accepted
  • Connection Request Accepted (excl. campaigns) – Organic connection accepted

Content Engagement Triggers:

  • Team Member Post Reaction – Reaction on team member's post
  • Team Member Post Comment – Comment on team member's post
  • Team Member Comment Reaction – Reaction on team member's comment
  • Team Member Comment Comment – Reply to team member's comment

Company Page Triggers:

  • New Company Page Follower – Someone followed company page
  • New Company Page Visit – Someone visited company page
  • Reaction on Company Post – Reaction on company's post
  • Comment on Company Post – Comment on company's post

Tracked Content Triggers:

  • Tracked Post Reaction – Reaction on monitored post
  • Tracked Post Comment – Comment on monitored post

Total: 18 workflow triggers available


Available Direct Webhook Events (Method 2)

When configuring Direct Webhooks in Settings → Webhooks, you can subscribe to these events:

  1. A new lead was created – Any new lead created in the system
  2. The lead status changed to active – Lead moved to Active/Prospect status
  3. New engagement from existing lead – An existing lead has a new interaction
  4. A new account-based lead was created – New lead from your ABM target list
  5. A tag was added to a lead – A tag was assigned to a lead
  6. Campaign connection request accepted – A networking campaign connection was accepted
  7. Campaign connection request was sent – Connection request sent via campaign
  8. Lead was enriched with an email/phone number – Lead email/phone data added
  9. A post was bookmarked using Team Clip – Post added to Team Clips

Total: 9 direct webhook events available

Note: Direct webhook events execute in sequence for lead-related activities. For example, email enrichment happens after lead activation, ensuring you receive data in a logical order.


Comparison: Workflows vs. Direct Webhooks

image (30).png Need more events? Submit a feature request to suggest additional webhook triggers or events.


Method 1: Setting Up Webhooks via Workflows (Recommended)

The Workflows feature provides a more powerful and flexible way to fire webhooks with advanced filtering and conditional logic. This is the recommended approach for most use cases.

Note: Workflows are available on Economy and Business plans. GTM Unlimited is a webhook-only edition and does not include access to the Workflows feature.

Fire Webhook Action in Workflows

Step 1: Navigate to Workflows

  1. Go to Workflows in your Teamfluence sidebar
  2. Click Create New Workflow or select an existing workflow to edit Help Article (32) (2).png

Step 2: Select Your Trigger Event

Choose the trigger that will start your workflow (Lead & Content Trigger, Company Page Trigger, etc) Help Article (33) (2).png Example: If you want to start with Company Page Followers Help Article (34) (1).png

Step 3: Add Filters (Optional but Recommended)

Click Add Next Step and select Add Filter to refine which leads trigger the webhook.

Available filters include:

  • ICP Match – Only send leads that match your Ideal Customer Profile
  • Team Member Connected – Filter by connection status with specific team members
  • Engagement Score – Filter by engagement level
  • Lead Stage – Filter by qualification status
  • Source – Filter by interaction type (profile visit, post engagement, etc.)
  • Has Tag – Filter by specific tags

You can combine multiple filters. Currently, all filter conditions work on AND logic (all must be true). Help Article (35) (1).png

Example: Company Page Follower & ICP Match Help Article (36) (1).png

Step 4: Add the Fire Webhook Action

  1. After your trigger (and optional filters), click Add Next Step
  2. Select Fire Webhook from the available actions
  3. Enter your Webhook URL (from Make.com, Zapier, n8n, or your custom endpoint)

Important: Your webhook URL should accept POST requests with JSON data. Help Article (37) (1).png

Step 5: Test Your Workflow

  1. Click the three dots (⋮) next to your workflow
  2. Select Test Run
  3. This sends sample data to your webhook URL so you can verify the payload structure

Tip: In Make or Zapier, use the "Redetermine Data Structure" or "Test Trigger" feature to capture the test payload and configure your subsequent automation steps.

Step 6: Activate Your Workflow

  1. Toggle the workflow to Active
  2. Your webhook will now fire automatically when the trigger conditions are met Help Article (38) (3).png

Method 2: Direct Webhook Configuration

For simpler use cases without filtering requirements, you can configure webhooks directly in Settings. This method is also the primary approach for GTM Unlimited customers who have onlly access to webhooks

Configuring a Webhook

(Example: Make.com)

Step 1: Start a New Pipeline

Begin by creating a new pipeline or scenario with a Webhook entry block. image (31).png

Step 2: Obtain a Webhook URL

  1. Generate a custom webhook URL from your automation tool (e.g., Make.com).
  2. Go to Users & Settings → Webhooks in Teamfluence.
  3. Click Create and enter your webhook URL. image (32).png
  4. Select the event trigger to determine which data is sent. image (33).png

Step 3: Test the Webhook

  1. Save the webhook configuration.
  2. Use the Test Run button in the context menu to send sample data to the webhook URL. image (34).png
  3. On Make.com, use the Redetermine Data Structure button to listen for incoming webhook calls.
  4. Once received, pass the data to your preferred destination (e.g., updating an object in HubSpot). image (35).png

Lead harvest webhooks execution order

When multiple direct webhook events are configured for the same lead, they execute in this order:

  1. A new lead was created
  2. A new account-based lead was created (if applicable)
  3. The lead status changed to active
  4. Lead was enriched with an email/phone number
  5. New engagement from existing lead

This ensures you receive lead data in a logical sequence, with enrichment happening after qualification.


Sample webhook data

New lead created / Lead Moved to Active / Lead Engaged in a New Event / Lead was enriched with email/phone number

lead_sample = {
    "id": "AZDjcYMguC0Py9oA",
    "crm_id": "f67b4018-436d-408d-95Bf-485c3001fc1A",
    "first_name": "Shawn",
    "last_name": "Spencer, MBA",
    "headline": "Accomplished psychic professional with extensive experience",
    "username": "shawn-psychic",
    "linkedin_url": "https://www.linkedin.com/in/shawn-psychic/",
    "email": "shawn@psych.com",
    "team_member_email": "m@example.io",
    "source": "Profile Viewer",
    "source_content_url": "https://www.linkedin.com/pulse/3-great-leadership-lessons-from-psych-john-ross-phd-mba/",
    "latest_engagement_event": "Engaged with John's comment",
    "stage": "qualified",
    "tags": ["icp", "email_sent"],
    "engagement_events_count": 4,
    "engagement_score": 35,
    "connection_strength": 2,
    "picture": "https://m.media-amazon.com/images/M/MV5BMTkyOTYzNTk4Ml5BMl5BanBnXkFtZTgwNDQ4NDY2MjE@._V1_.jpg",
    "followers_count": 40619,
    "connections_count": 5034,
    "country": "United States",
    "feed_updated_at": "2024-06-12T20:39:30Z",
    "created_at": "2024-06-13T14:49:55Z",
    "company": {
        "name": "Psych",
        "updated_at": "2024-06-12T20:39:30Z",
        "id": 1103,
        "picture": "https://i.ytimg.com/vi/Gv5RrHrBev4/maxresdefault.jpg",
        "employees_num_max": 200,
        "country": "United States",
        "company_type": "Non Profit",
        "description": "Psychic Investigations",
        "urn": "2000",
        "slug": "psych",
        "created_at": "2024-06-13T14:58:43Z",
        "employees_num_min": 2,
        "headquarters": "Santa-Barbara",
        "website_url": "http://psych.com",
        "founded_year": 1980,
        "industries": ["Investigations"],
        "specialties": [],
        "linkedin_url": "https://www.linkedin.com/company/psych/",
    },
    "history": [
        {
            "id": "dpvHhAbrAnSHpZ38",
            "event_type": "LINKEDIN_POST_ENGAGEMENT",
            "description": "Engaged with Steven Morell's post",
            "post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7220042202905804801/",
            "created_at": "2024-07-25T19:22:56+0000",
        },
        {
            "id": "dpvHhtM1AnSHpZ38",
            "event_type": "LINKEDIN_PROFILE_VIEWER",
            "description": "Visited Mike's profile page",
            "created_at": "2024-07-22T19:22:56+0000",
        },
        {
            "id": "QdK3d8ucaPyKgLRB",
            "event_type": "LINKEDIN_PROFILE_VIEWER",
            "description": "Visited Jenna's profile page",
            "created_at": "2024-07-18T07:31:45+0000",
        },
        {
            "id": "w06cNASAhl9MuWwm",
            "event_type": "LINKEDIN_COMMENT_ENGAGEMENT",
            "description": "Engaged with John's comment",
            "comment_url": "https://www.linkedin.com/feed/update/urn:li:activity:7220042202905804801?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7220042202905804801%2C7220058977865273344%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287220058977865273344%2Curn%3Ali%3Aactivity%3A7220042202905804801%29",
            "created_at": "2024-07-25T20:22:56+0000",
        },
    ],
}

crm_id - The object ID from the CRM system will be shown if the lead was synced to your contacts prior to the webhook event.

username - LinkedIn profile slug/handle.

linkedin_url - LinkedIn profile URL.

email - optional LinkedIn profile contact email (only guaranteed in “Lead was enriched with email/phone number” webhook, which always fires after the “Lead status changed to Active” webhook).

source - one of the following options:

  • Profile Viewer
  • New connection
  • Campaign Connection
  • Post Reaction
  • Commented on Post
  • Tracked Post Reaction
  • Commented on Tracked Post
  • Commented on Company page Post
  • Reacted to a Company page Post
  • Visited Company page
  • Followed Company page
  • Comment Reaction
  • Comment on comment.

source_content_url - optional LinkedIn content URL if lead was sourced from content engagement.

stage - legacy name of lead status: new, qualified (Active), disqualified

engagement_events_count - a number of engagement events between the lead and your team (profile visits, new connections, content reactions).

engagement_score - internally calculated score based on engagement event types.

connection_strength - number of team members connected to the lead.

latest_engagement_event - description of the latest engagement events corresponding to history last entry.

feed_updated_at - last known personal feed update timestamp from the lead.


Connection Request Sent

{
   "ref_id": "jiBuu1vU5dy7QbjB",
   "crm_id": "R9mccdj3OWqALMGCS5JMhO3auhgTtmSZ",
   "first_name": "Frankie",
   "last_name": "Adams",
   "headline": "SDR at The Expanse",
   "status": "sent",
   "sent_at": "2024-03-11T11:08:42Z"
}

Connection Request Accepted

{
   "ref_id": "jiBuu1vU5dy7QbjB",
   "crm_id": "R9mccdj3OWqALMGCS5JMhO3auhgTtmSZ",
   "first_name": "Frankie",
   "last_name": "Adams",
   "headline": "SDR at The Expanse",
   "username": "frankie",
   "team_member_email": "m@example.io",
   "status": "accepted",
   "sent_at": "2024-03-11T11:08:42Z"
}

Connection Request Ignored

{
   "ref_id": "jiBuu1vU5dy7QbjB",
   "crm_id": "R9mccdj3OWqALMGCS5JMhO3auhgTtmSZ",
   "first_name": "Frankie",
   "last_name": "Adams",
   "headline": "SDR at The Expanse",
   "username": "frankie",
   "team_member_email": "m@example.io",
   "status": "ignored",
   "sent_at": "2024-03-11T11:08:42Z"
}

Connection Request Expired

{
   "ref_id": "jiBuu1vU5dy7QbjB",
   "crm_id": "R9mccdj3OWqALMGCS5JMhO3auhgTtmSZ",
   "first_name": "Frankie",
   "last_name": "Adams",
   "headline": "SDR at The Expanse",
   "username": "frankie",
   "team_member_email": "m@example.io",
   "status": "timedout",
   "sent_at": "2024-03-11T11:08:42Z"
}

New Contact Saved for Feed tracking

{
   "ref_id": "jiBuu1vU5dy7QbjB",
   "first_name": "Shohreh",
   "last_name": "Aghdashloo",
   "username": "shohreh-aghdashloo",
   "company_name": "The Expanse",
   "job_title": "Global Project Manager",
   "email": "enriched",
   "followers_count": 21191
}

New Clipped Post

{
   "author": "Exm.AI",
   "ld_urn": "urn:li:activity:7100018159690000760",
   "post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7198618159690485760/",
   "content": "<span>Important note about recent event \n</span>",
   "published_at": "2024-05-21T10:38:33Z",
   "ref_id": "jiBuu1vU5dy7QbjB",
   "created_at": "2024-05-23T07:06:58Z",
   "team_member_email": "m@example.io"
}

Need Help?

If you have any questions, feel free to email us at support@teamfluence.com.

Getting started with Teamfluence API