🖨
100%
£
%
.0
.00
123
Default (Inter)
13
+
B
I
U
S
A
🔗
💬
📊
B2
fx
=PITCH("data", "systems", "integration", "automation", FOR("fundraising sector"), VERSION=2026.2)
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
1
/sheets/dataflow/pitch_2026.xlsx · last modified 2 minutes ago by Ian · v3 · click any of the tabs below to switch sheets
2
B2:O7 · "the_pitch" · merged

Data & systems expertise for the non-profit sector

Independent data, systems and integration work for fundraising agencies and charities, from someone who's spent fifteen years inside the stack you're trying to fix. Small caseload. No jargon. No junior handed the project once you've signed.

📞 Book a 30-min call View services →
P2:T7 · health.json

Pipeline status · live

focuscharity / fundraising
bookingQ3 2026 open
caseload3 / 4 slots
reply SLA< 24h
interest · last 12 wk
12 wk ago now
3
4
5
6
7
8
// 02 · sheet1!about
Someone who knows the difference between a dialler and a dashboard.
9
10

I'm Ian Thomas. Fifteen years in fundraising, eight at SLT level.

Started as a fundraiser, moved into scheduling and data analysis, then spent eight years as Head of IT at a specialist telephone fundraising agency. Senior Leadership Team. Built the kind of infrastructure that lets organisations focus on the work rather than the tools propping it up.

Dataflow grew out of that. I work with charities and fundraising agencies on the things that actually slow organisations down. Fragmented data. CRMs that won't talk to diallers. Reporting that takes a day when it should take ten minutes. Lead ads dropping into a black hole. AI work going unexplored because no one inside the org has the time to build it.

Hands-on with custom CRMs, Raiser's Edge NXT, VICIdial, Evergiving, Microsoft 365, Power BI, and the PHP, Python and Linux work that sits underneath it all. Equally comfortable working against bespoke and in-house CRMs that clients have built themselves, because not every charity runs on something off the shelf. Small caseload. Direct access. If you're not sure I can help, get in touch and I'll tell you honestly.

N10 · =YEARS_IN_SECTOR()
15+
Telephone fundraising sector
11
12
13
N13 · =SLT_YEARS()
8yr
Senior Leadership Team · Head of IT
14
15
16
// 03 · sheet1!services
Some of the services I provide.
17
18
/ 01 · =SERVICE("analysis")

Data, reporting & analysis

Reporting you can trust the numbers on. Dashboards, board packs, MI, connecting sources that don't naturally join, and untangling the workbook that grew beyond its original purpose. Built so your team actually opens it.

Power BISQLPythonExcelRE NXT
/ 02 · =SERVICE("systems")

Systems, integration & automation

CRM not talking to your dialler? Team copy-pasting between systems? Lead ads dropping into a black hole? I build the joins, automate the manual effort, and bring AI tooling (call transcription, sentiment analysis, write-back to records) into the stack where it earns its keep.

RE NXTCustom CRMsVICIdialEvergivingCampaign MonitorMeta Lead AdsWhisper / LLMs
/ 03 · =SERVICE("advisory")

IT leadership & bespoke build

Practical technical leadership for organisations without an IT department, or one already stretched thin. System reviews, CRM selection, M365 tenant builds, and bespoke web and database work for the jobs where off-the-shelf won't quite fit.

M365Entra IDPHP / PythonLinuxCRM selectionFractional CIO
19
20
21
22
Ian Thomas, 19 May 2026 14:22 :

If you've made it this far, you've spotted the joke. A lot of fundraising work starts in a spreadsheet, so this seemed about right. Meet me on familiar ground.

If you want to talk, drop a note in the contact form a bit further down. Brief outline of what you're trying to do, what's slow, what you've already tried. I usually reply within 24 hours, often the same day.

N22 · =CONCURRENT_CLIENTS()
≤4
Direct access. No account managers
23
24
N24 · =REPLY_WINDOW()
<24hr
25
26
27
// 04 · sheet1!contact
Not sure I can help? Ask anyway.
28
29
name
Your name…
email
your@email.com
30
subject
What this is about, e.g. "RE NXT to Power BI"
31
message
Tell me a bit about what you need…
32
33
34
📤 Send message
· or find me on LinkedIn · /ian-t-dataflow
35
36
B36
#REF! · before_dataflow
#NAME? · weekly_board_pack
after_dataflow · =CLEAN()
37
© 2026 Dataflow Consulting. Built on a spreadsheet, affectionately. Independent. UK-based. Sheet 1 of 1 · Cell B2 selected
38
39
40
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
1
/sheets/dataflow/services_detail.xlsx · last modified by Ian · read-only · scope-led, written quote before anything starts
2
// services_detail · engagement matrix

How I actually work, by the hour.

The headline services break into a handful of common shapes. The hours below are typical effort for each shape of work. Most engagements run as fixed fees against a written scope, agreed before anything starts. Some (fractional CIO, ongoing hygiene work) run on a monthly arrangement instead.

3
Service
Engagement
Typical scope
Timeline
Indicative effort
4
01 · Data & reportinganalysis · dashboards
Reporting refreshfixed-scope project
Audit existing MI, rebuild the board pack and key team reports on a sustainable foundation.
4–6 weeks
~60–100 hrs
5
Dashboard buildPowerBI / Looker
Connect sources, model the data, ship a self-serve dashboard your team will actually open.
3–5 weeks
~50–90 hrs
6
Spreadsheet rescueuntangle in place
The critical workbook only one person understands. Document it, harden it, migrate where sensible.
2–4 weeks
~30–60 hrs
7
02 · Systems & integrationjoins · plumbing
CRM ↔ dialler joinAPI or middleware
Stop the copy-paste between Raiser's Edge or your in-house CRM and your dialler (VICIdial, Evergiving, Blue Telecoms). Consent and suppression respected end-to-end. Optional AI layer: call transcription, sentiment scoring and write-back to call records.
4–8 weeks
~80–160 hrs
8
CRM → commscampaign sync
Wire your CRM to email / SMS / dialler tools so campaigns target the right people, suppress the right people, every time.
3–6 weeks
~60–120 hrs
9
Data hygiene programmeongoing
Dedupe, match, audit, consent expiry, GDPR housekeeping. Quietly, monthly.
Monthly retainer
~12–25 hrs/mo
10
03 · IT consultancyadvisory · voice
Systems reviewone-off audit
A senior, honest look at your stack, contracts and suppliers. Written report. Prioritised recommendations.
2–3 weeks
~30–50 hrs
11
CRM selectionRFP support
Run the procurement properly: requirements, shortlist, demos, scoring, reference checks. You sign the contract, with confidence.
8–16 weeks
~80–160 hrs
12
Fractional CIOdays per month
A senior technical voice at SLT meetings, supplier negotiations, board reporting. For organisations that need one without the cost of a full-time hire.
2–4 days/mo
~16–32 hrs/mo
13
ℹ Hours shown are typical effort, not commitments. Final scope drives final pricing, given in writing before anything starts. Travel charged at cost where on-site work is needed. Every engagement starts with a free 30-minute scoping call. If I don't think I can help, I'll say so, and usually know someone who can.
14
// services_detail · method

How an engagement actually unfolds.

15
Step
What happens
What you get
Typical timing
16
00discovery
30-minute call. I ask what's slow, what's painful, what you've already tried.
An honest opinion on whether this is mine to fix, or someone else's.
Week 0
17
01scope
Short scoping document. Clear deliverables, dependencies, assumptions, effort estimate.
A written quote you can take to the board. No surprises.
Week 1
18
02do the work
Weekly check-in. Progress shown, never theatrical. Direct contact, always.
The thing, built. Documented as we go, not bolted on at the end.
Weeks 2–N
19
03handover
Handover session with the people who'll own it. Real documentation, not just a Loom.
A working system, and a team that can run it without me.
Final week
20
04aftercare
30-day check-in included. If something breaks because of what I shipped, I fix it.
Confidence the thing actually holds up in real life.
+30 days
21

Want me to scope something? 30 minutes, no commitment.

📞 Book a call →
22
23
24
25
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
1
/sheets/dataflow/case_studies.xlsx · anonymised on request · references on application
2
// case_studies · anonymised

Three recent jobs.

Client names omitted by default. Fundraising is a small sector and discretion matters. Happy to share specifics under NDA, or put you in touch with a reference.

3
// case_001 Systems & integration International charity

The Facebook leads that waited days for a welcome.

Client
International development charity. Active Meta paid campaigns feeding new supporter signups into the donor journey.
Problem
Meta Lead Ads were generating signups, but the path from form-fill to first email was CSV export, manual de-dup against RE NXT, manual upload, manual journey trigger. Days of latency, error-prone, and consent state harder to audit than it should be.
What I did
Built an automated pipeline from Meta Lead Ads through to Raiser's Edge NXT (create or match supporter, write consent), then on to Campaign Monitor to fire the welcome journey. Handles deduplication, consent flags, and unicode in international supporter names. Ongoing post-launch tuning.
Tools
Meta Lead AdsRaiser's Edge NXTCampaign MonitorPythonPHP
Lead-to-welcome window down from ~3 days to <5 min · CSV step removed · consent state auditable end-to-end.
4
5
6
7
8
9
// case_002 Systems & integration Telephone fundraising agency

The CRM and the dialler that refused to speak.

Setting
Specialist telephone fundraising agency, multi-site operation. From my eight years on SLT as Head of IT.
Problem
Donor records and campaign briefs lived in a bespoke in-house CRM; call activity lived in VICIdial. Schedulers were re-keying lists every morning, dialler reports never quite reconciled with the CRM, and consent updates took 24–48 hours to suppress across the dialler estate.
What I did
Built an integration layer in PHP and Python sitting between the in-house CRM and VICIdial. Nightly reconciliation, a near-real-time consent suppression feed, and a campaign-control dashboard for the scheduling team.
Tools
Bespoke CRMVICIdialPHPPythonLinux
Re-keying eliminated · consent suppression latency cut from ~36h to <5min · scheduler overtime to zero on integrated campaigns.
10
11
12
13
14
15
// case_003 Platform selection Telephone fundraising agency

The dialler decision that needed a second opinion.

Client
Senior fundraising leader at a specialist telephone fundraising organisation, planning capacity expansion.
Problem
Two credible dialler platforms on the shortlist (Evergiving and Blue Telecoms). Both ticked the core boxes; both had advocates internally. The harder question was whether either could carry the AI call-quality and reporting layer the agency wanted to build on top, and how they compared on API surface, lock-in risk and total cost over an expansion horizon.
What I did
Wrote a detailed comparative analysis covering core dialler capability, API depth, vendor risk, pricing structure and AI-readiness. Tested integration endpoints directly, including validating Evergiving's PATCH /v4/leads/ for write-back of AI-derived call scoring. Positioned Dataflow as the integration and AI layer once a platform is chosen.
Tools
EvergivingBlue TelecomsAPI testingVendor evaluation
Written recommendation grounded in API tests and operational reality · fit to take to the board · choice made on capability, not pitch deck.
16
17
18
19
20
21

Got a similar mess? I'm probably the right person.

Tell me about it →
22
23
24
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
1
/sheets/dataflow/FAQ.xlsx · the things people actually ask · click any row to expand
2
// FAQ · frequently filed

The things people actually ask.

Click a question to expand the answer. If yours isn't here, ask anyway. I'll tell you honestly.

3
// q01How quickly can you start?
Right now I'm booking Q3 2026. I keep a small caseload, usually three or four concurrent clients, so I can give each engagement real attention. For a small audit or scoping call, often within a fortnight. Email me and I'll tell you the truth about the queue.
4
// q02Is there a minimum engagement?
There isn't really one. Small jobs done well are often how a bigger relationship starts, and a free 30-minute scoping call is the same starting point either way. If I genuinely think your problem would be better solved by someone else, I'll say so and try to point you at the right person.
5
// q03Do you only work with fundraising agencies?
No, but it's where I'm strongest. I work with charities, fundraising agencies, and adjacent non-profits. Outside that (health, social care, membership orgs), I'll only take the work if I genuinely think I'm the right person. Sector-shaped problems beat generic ones in my hands.
6
// q04We already have an IT team. Will that be a problem?
Not at all. In fact that's often the better setup. I usually work alongside existing IT, providing the sector knowledge and the data/CRM depth they don't necessarily have. I won't try to replace your IT partner; I'll make their job easier.
7
// q05Are you tied to a specific CRM?
No. I've worked across a range of CRMs over the years, from off-the-shelf platforms like Raiser's Edge NXT and Salesforce to the bespoke in-house systems some agencies have built for themselves. If you ask which CRM you should buy, you'll get an honest answer based on your situation, never the one that pays a kickback. No reseller relationships, no implementation partnerships.
8
// q06How does pricing work?
Mostly fixed fees against a defined scope. It's fairer for both of us, and stops me being incentivised to drag things out. The hour ranges on the services sheet are typical effort; final pricing follows from final scope, written down before anything starts. Some engagements (fractional CIO, ongoing data hygiene) work better on a monthly arrangement. I don't quote a public day rate because it tends to anchor conversations on the wrong number; happy to discuss hourly when it's the right shape of work.
9
// q07Who actually does the work?
Me. Dataflow is one person on purpose. For specialist sub-disciplines (very heavy data engineering, security audits) I have a small network I can bring in, but only with your knowledge and consent. You'll still be talking to me about it.
10
// q08How do you handle supporter data?
Carefully. UK GDPR-aware throughout. DPA in place before any data leaves your environment, processing limited to what the work needs, secure transfer, minimum retention, signed deletion confirmation at end-of-engagement. If you have a Data Protection Officer, they'll be talking to me.
11
// q09Can I speak to a previous client?
Yes. After an initial call I'll happily put you in touch with one or two former clients for a frank conversation. You'd want that, and so would I in your position.
12
// q10What's with the spreadsheet website?
Half my clients send me a spreadsheet on day one. Felt only fair to meet you where the work is. Also: every cell on this site is real. Click around, look at the formula bar. It's the same care I'll take with yours.
13

Question not here? Ask me directly.

✉ Get in touch →
14
15
16
17
/sheets/dataflow/scratch.xlsx · your space · click any cell and type · =SUM(A1:A5) and friends work · saved on this device only Clear sheet
⚠ /sheets/dataflow/old_site.xlsx · archived for reference · see the_pitch for the current version
+
the_pitch
services_detail
case_studies
FAQ
scratch_pad
old_site
← click any tab to switch sheets
Ready ● synced B2 selected Sum: 15 + 8 + 4 = 27 years Avg: pragmatic Count: 1 consultant 100%