Skip to content
Integrations

Attio Integration

Sync event invitations, RSVPs, and attendance data from Gatsby to Attio automatically. Connect your event management platform to your CRM through Google workspace sync and webhooks—track who attended which events, RSVP patterns, and engagement history directly in Attio contact records.

Connect Gatsby event activity to Attio in two ways: automatic email and calendar sync through Google, plus structured event data through webhooks. Your event invitations, RSVPs, and attendance history all flow into your CRM.

This page details how to get event information from Gatsby to Attio. If you want to bring information about your contacts from Attio to Gatsby, you can utilize our API (Zapier optional). Contact us for more information.

Gatsby connects to Attio through two complementary approaches:

  1. Automatic Email & Calendar Activity

    When you send event invitations and calendar invites through your connected Google account, Attio captures that activity automatically. Every invitation, follow-up email, and calendar event appears in your contacts’ Attio profiles—no configuration needed beyond connecting the accounts.

    Screenshot from Attio showing a Person Record in Attio with event engagement data
  2. Structured Event Data

    For RSVP status, attendance records, and registration responses, you set up webhooks through Zapier (or Make/n8n). This gives you full control over how event participation data structures in Attio—create lists, update attributes, or build custom objects based on what your team needs.

    Screenshot from Attio an Event Participation List with data from an events management platform.

Together, these capture both the communication timeline and the structured event participation data in Attio.

Most event platforms send invitations from their own domain (like invites@eventplatform.com). That communication never touches your CRM.

Gatsby works differently. When you send invitations through a connected Google account, those emails and calendar invites come from your actual Google account. Attio already syncs your Google email and calendar activity, so every event invitation automatically appears in your contacts’ activity timelines.

Click into someone’s profile in Attio and see the complete event communication history—invitations sent, follow-ups, calendar events—all captured automatically.

For this to work, three things need to be connected:

  1. In Gatsby: The email sender must be set to a connected Google account
  2. In Gatsby: The calendar invite organizer must be set to a connected Google account
  3. In Attio: That same Google user must be connected to sync email and calendar activity

When these are connected, Attio captures the activity automatically.

Setting up Google accounts in Gatsby

When creating or editing an event in Gatsby, you’ll see options to set the email sender and calendar organizer. Choose a connected Google account for both to enable automatic Attio syncing.

For step-by-step instructions on connecting Google accounts to Gatsby, see Sending Emails.

Captured automatically:

  • Event invitation emails sent from connected Google accounts
  • Calendar invites where the organizer is a connected Google account
  • Follow-up emails sent through connected Google accounts
  • All replies and calendar responses

Not captured:

  • System emails like RSVP confirmations (these don’t send through your Google account)
  • Invitations sent from non-connected accounts

Webhooks let you send structured event participation data to Attio:

  • Who was invited to which events
  • RSVP status changes (Accepted, Declined, Waitlist)
  • Attendance records (Attended, No Show)
  • Registration form responses (dietary restrictions)
  • Guest company and role at time of event
  • Event details (date, name, location)

This data structure lets you run reports like “everyone who attended events in Q4” or “contacts invited to 5+ events but never attended.”

With an “Event Participation” list in Attio, each entry represents one person at one event, linked to their Person record.

This structure balances simplicity and power—more useful than dumping everything into text fields, less complex than building custom objects. You get full filtering and reporting capabilities without overengineering your data model.

Example queries this enables:

  • Show all people who attended events in the last year
  • Determine how many events employees from a certain company attended
  • Find contacts who accepted but didn’t show up
  • Count total events per person
  • Filter by event type or date range

The webhooks send raw event data (RSVPs, attendance, custom fields). You decide where it goes:

  • Update attributes directly on Person records
  • Create custom objects for complex event structures
  • Build your own data model that fits your workflow

The setup guide below uses the Event Participation list approach, but adapt it to your needs. You have full control here to decide what works best for your team and data.

  • Paid Zapier plan (webhooks require Zapier Pro or higher) or Make/n8n
  • Attio API credentials to connect Zapier to Attio
  • Webhooks enabled in your Gatsby account (contact us to enable)

About webhook platforms

This guide uses Zapier since it’s the most common platform. The same concepts apply to Make.com or n8n—you’ll use Gatsby webhooks to trigger workflows that create or update records in Attio.

Before building workflows, set up where the data will live in Attio.

Showing attributes of an Event Participation List in Attio

Detailed setup: Building the Event Participation list

  1. In Attio, create a new List called “Event Participation” with these attributes:

    Field NameTypePurpose
    PersonRecord ReferenceLinks to the Person record (parent)
    Unique IDTextUsed by Zapier for de-dupe
    Event NameTextName of the event
    Event DateDateWhen the event happens
    RSVP StatusSelectOptions: Invited, Accepted, Declined, Waitlist
    Attendance StatusSelectOptions: Attended, No Show, Pending
    Company at EventText(Optional) Guest’s company at time of event
    Position at EventText(Optional) Guest’s role at time of event
    Last UpdatedTimestampWhen this record was last synced
    (Other)(Optional) You can add additional attributes as desired

Why this structure works:

The Unique ID field is critical. In Zapier, you’ll combine the person ID and event ID (like abc123_xyz789) to ensure you get exactly one entry per person per event. When someone RSVPs to multiple events, they get multiple list entries—one for each event.

This prevents duplicates and makes reporting powerful. You can filter the list to see all attendees of a specific event, or view a person’s record to see all events they’ve attended.

The core workflow triggers when Gatsby sends guest data (new invitation, RSVP change, or attendance update) and creates or updates the corresponding record in Attio.

A Zap in Zapier showing how to send event data to Attio
Zapier workflow showing Gatsby webhook trigger flowing through filter, person creation, list entry search, and paths for update or create

This workflow captures invitations and RSVP changes as they happen in Gatsby.

Workflow Overview: Real-Time Guest Sync

High-level flow:

  1. Trigger: Webhook receives guest data from Gatsby

    Gatsby sends guest data via webhook when someone is invited or updates their RSVP.

  2. Filter (optional): Filter checks if RSVP status isn’t empty

    Only process guests who have been invited (optional but recommended to skip blank RSVPs).

  3. Create/Update Company: Sub-Zap finds or creates company in Attio

    Ensure the company exists in Attio or grabs the company ID to link to this guest. Built as a sub-zap to reduce main Zap complexity.

  4. Create/Update Person: Creates or updates the Person record in Attio

    Ensure the person exists in Attio with current details. This allows you to run “public events” in Gatsby and capture new contacts you’ve never interacted with before. This steps matches by email address.

  5. Check for existing list entry: Prevent duplicate entries

    Searches for existing Event Participation entry by Unique ID.

  6. Paths split: Based on whether entry was found

    Path A - Entry exists: Update the existing entry with new RSVP/attendance status Updates existing entry with new RSVP/attendance data

    Path B - Entry doesn’t exist: Creates new entry for this person/event combination


Key concept: Paths

Zapier Paths let you handle two scenarios in one workflow:

  • If the person already has an entry for this event → update it
  • If this is their first time being tracked for this event → create a new entry

This prevents duplicates while keeping all data current.

Alternate: Post-Event Bulk Sync

Create a different Zap/workflow for syncing verified event info after events end.

Use case:

After an event, you consolidate event information, then manually trigger this workflow to update Attio with verified data like RSVP, attendance, survey responses, custom fields, etc. in bulk.

How it differs from real-time sync:

  • Trigger: “Finalized Guest List” webhook (manually triggered in Gatsby)
  • Processes: All guests at once as an array
  • Use: Post-event cleanup and verification

This gives you control over when event data flows to Attio, so you can clean it up in Gatsby first.

Run through these scenarios to verify everything works.

Test Scenarios

Test 1: New Guest Invited

  • Add a new guest to an event in Gatsby, mark as “Invited”
  • Expected result: Person created in Attio + Event Participation entry created

Test 2: Guest Changes RSVP

  • Change a guest’s RSVP status to Accepted in Gatsby
  • Expected result: Same Event Participation entry updates (no duplicate created)

Test 3: Same Guest, Different Event

  • Add the same person to a different event
  • Expected result: New Event Participation entry created (different Unique ID)

Test 4: Mark Attendance

  • Mark a guest as Attended or No Show
  • Expected result: Event Participation entry updates with attendance status

If any test fails, check the Zapier task history to see where the workflow stopped.

For complete webhook data schemas, field mappings, and troubleshooting duplicate entries, contact our support team:

Email copied to clipboard

Once event data flows into Attio, you can:

Run targeted reports:

  • All attendees from the last quarter
  • People who accepted but didn’t show up
  • Contacts invited to 5+ events but never attended
  • Event participation by company or role

Enrich contact profiles:

  • See complete event history when viewing a person
  • Count total events attended per contact
  • Track engagement trends over time

Build outreach campaigns:

  • Export attendee lists for follow-up emails
  • Segment by event type or attendance patterns
  • Create workflows based on event participation

Analyze event performance:

  • Compare RSVP rates across events
  • Track no-show patterns
  • Identify your most engaged contacts

Do I need both integrations?

No, but they complement each other. Google sync gives you communication timelines automatically. Webhooks give you structured data for reporting. Most teams use both.

The Google sync isn't capturing some emails. Why?

Check that both the email sender and calendar organizer in your Gatsby event are set to connected Google accounts. System emails (like automated confirmations) won’t sync because they don’t send through your Google account.

What if I don't want to use a List in Attio?

The webhooks send raw data—structure it however you want. Update Person attributes directly, create custom objects, or however you want. The List approach is just a recommended starting point.

Can I capture custom registration question responses?

Yes. Registration form responses come through the webhook data. Map them to attributes in Attio or include them in list entries.

Can I automatically sync new records/attributes in Attio to Gatsby?

Yes. Although more advanced, our API lets you pull contact data from Attio into Gatsby. Reach out to our support team for more information:

Email copied to clipboard

Was this page helpful?

Add to your calendar

Office Hours