Skip to main content

Zapier Recipes

Working Zaps built on Wefunder for Zapier, the Zapier app you connect with your Wefunder account. No API key, no webhook URL: you sign in, pick a company or syndicate you manage, and Wefunder sends that target's events straight to your Zap. Each recipe below is the exact sequence of steps in the Zap editor, with the fields to map.

Invite-only while in pilot

Wefunder for Zapier is a private Zapier app. Ask your Wefunder contact for an invite link; accepting it adds "Wefunder" to the apps you can pick in the Zap editor. You also need to be a founder, admin, or editor of the company (or a manager of the syndicate) you want to connect, because the app only lists what your account may act on.

What the app gives you​

Three instant triggers, one per family of events:

TriggerFires onPick
Investment Eventan investment or reservation in your company is created, reinstated, canceled, converted, changes amount, or is executeda company
Offering Eventyour company's round opens, starts closing, closes, or is canceleda company
Syndicate Member Eventsomeone is invited to, applies to, is approved for, joins, leaves, or declines your syndicatea syndicate

Every trigger has an Events field. Leave it empty to receive the whole family, or pick a subset; each choice in the picker has a one-line description so you can tell, say, Applied from Joined. Turning the Zap on connects the app to the target you picked (it appears under the company's Settings → Installed apps, or the syndicate's Settings → Integrations, where you can revoke it any time). Turning it off stops the deliveries.

Each delivery is the signed event envelope, so the fields you map are the same ones a developer sees in the event catalog: event, data.…, installation.target.id.

Recipe 1: a Slack message for every new investment​

What you get. A message in a channel you choose each time someone invests in your company, with their name, the amount, and their running total with you. About five minutes.

Steps​

  1. New Zap → Trigger. Search for Wefunder and pick Investment Event.

  2. Account. Click Sign in. You land on wefunder.com, approve the permissions, and come back. The connection is labelled with your name and email.

  3. Trigger setup.

    • Company: pick your company from the dropdown. Only companies you found, administer, or edit are listed.
    • Events: pick Created only. (Leaving it empty would also post on cancellations, amount edits, and so on; those make good separate Zaps.)
  4. Test trigger. Zapier shows a sample investment so you can map fields. The sample is representative; real deliveries start once the Zap is on.

  5. Filter (optional but recommended). Add a Filter by Zapier step: Status (Text) Exactly matches active. A created event with status reserved is a reservation on a testing-the-waters page, not an investment; see Reservations below for how to handle those.

  6. Action. Add Slack → Send Channel Message, connect your Slack, pick the channel, and compose the message from the trigger's fields:

    🎉 New investment: *{{Investor name}}* invested *${{Amount committed (USD)}}*.
    Their total with us is now ${{Investor: total committed (USD)}}
    ({{Investor: active investments}} active).

    Suggested options: Send as a bot on, bot name "Wefunder", Link names off.

  7. Test the action, then Publish. From here every new investment posts within a few seconds of the investor applying.

The fields, and what they mean​

Field in the editor (as labelled)Envelope keyNotes
Investor namedata.investor.nameFull name as shown to the founder
Investor emaildata.investor.emailPresent only when your connection carries investor-contact permission (granted on the consent screen; a Wefunder-approved app)
Amount committed (USD)data.amounts.committedDollars, as a number (250), not cents
Investor: total committed (USD)data.investor_totals.total_committedThis investor's total active commitment across the campaign, computed at the moment of the event
Investor: active investmentsdata.investor_totals.active_investment_countHow many active investments they hold with you
Statusdata.statusactive for an investment, reserved for a reservation
Investment IDdata.idThe investment's inv_… id, stable across every later event about it
Occurred atdata.occurred_atWhen it happened; use this, not the delivery time, to order events

Reservations​

A company running a testing-the-waters page receives created events with data.status = reserved. Those are reservations, not investments, and the wording in your message should say so. Two clean options:

  • Keep the filter above (active only) so the Zap stays about investments, and build a second Zap with the filter set to reserved and a message like 📝 *{{Investor name}}* reserved ${{Amount committed (USD)}}.
  • Or use Paths by Zapier with one branch per status and a different message on each.

Never post "invested" for a reservation; the investor has not sent money.

Variations​

  • Cancellations. Same trigger with Events set to Canceled; message from Investor name and Amount committed. Investor: status tells you whether they still have anything active (active) or not (none_active).
  • Amount changes. Amount changed; the old figure is data.previous_amounts.committed.
  • Round milestones. Use Offering Event instead, with Opened / Closing / Closed; data.company.name and data.offering are the fields.
  • Syndicates. Syndicate Member Event with Joined posts a welcome for each new member: data.user.name, data.user.email, and data.approved_by.name when a manager approved them.

Good to know​

  • One Zap, one target. A Zap connects one company or one syndicate. Run one Zap per target; the app allows up to five Zaps per connected target.
  • Delivery and retries. Wefunder retries a delivery Zapier does not acknowledge for up to 72 hours, and the same event is never counted twice in a Zap: each delivery carries a stable id that Zapier dedupes on.
  • Reconnecting a live Zap. Turn the Zap off before changing its Wefunder connection, then on again. Reconnecting a running Zap can leave the old subscription in place and double-deliver until the Zap is toggled.
  • Revoking. Removing the app from the company's Installed apps (or the syndicate's Integrations) stops every Zap on that target at once and cancels anything queued.
  • Building your own. Everything these triggers deliver is also available to your own code through webhooks and the Partner API; the CRM sync guide is the code-first version of the same idea.
Was this page helpful?