Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Integration patterns for Finta fundraising CRM with email and calendar APIs. Use when building automated investor outreach, syncing data from Finta exports, or creating custom fundraising dashboards. Trigger with phrases like "finta integration", "finta patterns", "finta automation", "finta data pipeline".
.claude/skills/jeremylongshore-finta-sdk-patterns/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -30% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -16% | 0% |
| case-14 | ✗→✓ | ▲ Improved | -37% | 0% |
Finta does not expose a public REST API. Integrate via: (1) CSV export + Python processing, (2) email integrations (Gmail/Outlook), (3) Zapier/Make webhooks, or (4) Stripe/payment integrations for capital collection.
pythonimport pandas as pd from pathlib import Path class FintaPipelineTracker: def __init__(self, export_path: str): self.df = pd.read_csv(export_path) def investors_by_stage(self) -> dict: return self.df.groupby("Stage")["Name"].apply(list).to_dict() def conversion_funnel(self) -> list[dict]: stages = self.df["Stage"].value_counts() return [{"stage": s, "count": c} for s, c in stages.items()] def overdue_followups(self, days: int = 7) -> pd.DataFrame: self.df["Last Contact"] = pd.to_datetime(self.df["Last Contact"]) cutoff = pd.Timestamp.now() - pd.Timedelta(days=days) return self.df[ (self.df["Stage"].isin(["Follow-up", "Due Diligence"])) & (self.df["Last Contact"] < cutoff) ] def total_committed(self) -> float: closed = self.df[self.df["Stage"] == "Closed"] return closed["Check Size"].sum()
python# Track investor email responses via Gmail API from googleapiclient.discovery import build def get_investor_emails(service, investor_email: str, after_date: str): query = f"from:{investor_email} after:{after_date}" results = service.users().messages().list( userId="me", q=query ).execute() return results.get("messages", [])
Finta supports Zapier triggers for pipeline stage changes:
Apply in finta-core-workflow-a for fundraise pipeline management.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 18,307 | 16,197 | -12% | 1 | 1 | 0% | 3,555 | 3,713 | +4% | 0 | 0 | — |
case-02 | fail→fail | 13,819 | 10,962 | -21% | 1 | 1 | 0% | 2,911 | 2,801 | -4% | 0 | 0 | — |
case-03 | fail→pass | 21,273 | 15,455 | -27% | 1 | 1 | 0% | 3,048 | 2,988 | -2% | 0 | 0 | — |
case-04 | fail→pass | 10,457 | 8,222 | -21% | 1 | 1 | 0% | 1,815 | 1,857 | +2% | 0 | 0 | — |
case-05 | fail→pass | 21,781 | 11,708 | -46% | 1 | 1 | 0% | 3,553 | 2,489 | -30% | 0 | 0 | — |
case-06 | fail→fail | 24,832 | 17,805 | -28% | 1 | 1 | 0% | 3,912 | 3,982 | +2% | 0 | 0 | — |
case-07 | pass→pass | 6,444 | 4,997 | -22% | 1 | 1 | 0% | 1,223 | 1,486 | +22% | 0 | 0 | — |
case-08 | pass→pass | 12,305 | 5,395 | -56% | 1 | 1 | 0% | 2,375 | 1,550 | -35% | 0 | 0 | — |
case-09 | fail→fail | 14,321 | 11,032 | -23% | 1 | 1 | 0% | 2,520 | 2,545 | +1% | 0 | 0 | — |
case-10 | fail→fail | 9,739 | 8,706 | -11% | 1 | 1 | 0% | 1,616 | 2,225 | +38% | 0 | 0 | — |
case-11 | fail→pass | 9,300 | 3,630 | -61% | 1 | 1 | 0% | 1,449 | 1,214 | -16% | 0 | 0 | — |
case-12 | pass→pass | 10,499 | 5,809 | -45% | 1 | 1 | 0% | 1,885 | 1,708 | -9% | 0 | 0 | — |
case-13 | pass→pass | 5,547 | 3,691 | -33% | 1 | 1 | 0% | 978 | 1,170 | +20% | 0 | 0 | — |
case-14 | fail→pass | 12,618 | 4,365 | -65% | 1 | 1 | 0% | 2,069 | 1,310 | -37% | 0 | 0 | — |
case-15 | pass→pass | 13,254 | 13,177 | -1% | 1 | 1 | 0% | 2,215 | 2,678 | +21% | 0 | 0 | — |
case-16 | fail→pass | 13,216 | 8,062 | -39% | 1 | 1 | 0% | 1,999 | 1,905 | -5% | 0 | 0 | — |
case-17 | fail→fail | 17,004 | 12,495 | -27% | 1 | 1 | 0% | 2,780 | 2,808 | +1% | 0 | 0 | — |
case-18 | pass→pass | 10,170 | 5,629 | -45% | 1 | 1 | 0% | 1,572 | 1,306 | -17% | 0 | 0 | — |
case-19 | fail→pass | 13,579 | 4,818 | -65% | 1 | 1 | 0% | 2,525 | 1,550 | -39% | 0 | 0 | — |
case-20 | fail→pass | 13,432 | 1,809 | -87% | 1 | 1 | 0% | 2,059 | 856 | -58% | 0 | 0 | — |
case-21 | pass→pass | 8,001 | 5,172 | -35% | 1 | 1 | 0% | 1,346 | 1,434 | +7% | 0 | 0 | — |
case-22 | pass→pass | 8,367 | 6,570 | -21% | 1 | 1 | 0% | 1,479 | 1,748 | +18% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +36 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.