Finta Webhooks & Events
Overview
Process integration events safely by authenticating the sender, minimizing payload handling, and making every downstream action replay-safe.
Prerequisites
- A verified signing-secret delivery path and a service that can retain the raw request body for verification.
- A durable event ledger or idempotency store plus an exception-queue owner.
- Synthetic event fixtures and an approved destination allowlist.
Instructions
- Verify the signature and timestamp before parsing or queuing an event.
- Store only opaque event identifiers and necessary state; redact payloads from diagnostics.
- Deduplicate by provider event ID, queue approved work with bounded retries, and acknowledge only after durable acceptance.
- Route unknown event types, signature failures, and exhausted retries to reviewed handling without replaying side effects.
Output
Return a processing receipt with opaque event ID, verification outcome, handler version, idempotency result, destination status, and redacted error category.
Error Handling
- Reject missing, stale, or invalid signatures without exposing comparison details.
- Quarantine unknown schemas or destinations for review.
- Pause downstream delivery on permission or duplication anomalies and use the event ledger for a controlled replay.
Examples
Send the same synthetic signed event twice. The first is durably queued and processed once; the second returns a duplicate outcome. An invalid-signature fixture is rejected and creates only a redacted security receipt.
Finta supports event automation through its built-in automation rules and Zapier integration. Pipeline stage changes, investor replies, and deal room views can trigger external actions.
Built-in Automation Rules
Configure in Settings > Automation:
- Email reply detected -> Move to next stage
- Calendar meeting scheduled -> Log and notify team
- Deal room viewed -> Send Slack notification
- No response in X days -> Create follow-up reminder
Zapier Integration
Available triggers:
- Pipeline stage changed
- New investor added
- Deal room accessed
- Investor update sent
Example Zap: Finta stage change -> Slack message + Google Sheets row
Custom Reminder System
import pandas as pd
from datetime import datetime, timedelta
def get_followup_reminders(export_path: str, days: int = 5) -> list:
df = pd.read_csv(export_path)
df["Last Contact"] = pd.to_datetime(df["Last Contact"])
cutoff = datetime.now() - timedelta(days=days)
overdue = df[
(df["Stage"].isin(["Reaching Out", "Follow-up"]))
& (df["Last Contact"] < cutoff)
]
return overdue[["Name", "Firm", "Email", "Last Contact", "Stage"]].to_dict("records")
Resources
Next Steps
For performance, see finta-performance-tuning.