CSR funding outreach sheet for NGOs: each company's csr@ inbox and CSR policy page, with your CSR-1 details, ask, date sent and follow-up
What you get: one Google Sheet for an NGO, trust or section 8 company asking companies for CSR funding, with one row per company: the csr@ (or general) inbox the company publishes on its own website, the page it was found on, the company's CSR policy page, the focus areas its policy names, your project and amount asked, the date you sent, an automatic follow-up date, the reply, and a Next step column (find inbox / send now / follow up today / wait / answer them / meeting / closed). A summary tab counts sent, replies and meetings, and holds your own CSR-1, 12A and 80G details so every letter quotes them. Formulas are below. The example rows are made up.
The finished sheet
companies tab (example rows are made up)
| Company | Domain | CSR inbox | Found on | Their focus (from policy) | Our project | Ask (₹) | Sent on | Follow up on | Reply | Next step |
|---|---|---|---|---|---|---|---|---|---|---|
| Example Steel Ltd | example-steel.in | csr@example-steel.in | example-steel.in/csr | education, health | Evening reading classes, 3 villages | 4,50,000 | 2026-10-09 | 2026-10-23 | follow up today | |
| Sample Chemicals Ltd | sample-chem.com | info@sample-chem.com | sample-chem.com/contact-us | water, sanitation | School toilet repairs | 2,80,000 | 2026-10-20 | 2026-11-03 | wait | |
| Demo Software Pvt Ltd | demo-software.co.in | csr.india@demo-software.co.in | demo-software.co.in/sustainability | skills, women | Basic computer course for women | 3,00,000 | 2026-10-05 | 2026-10-19 | meeting | meeting |
| Test Foods Ltd | test-foods.in | nutrition | Mid-morning meals, 2 schools | 5,00,000 | find inbox |
Who this is for
- NGOs, registered trusts, societies and section 8 companies in India looking for company CSR partners for a project.
- Fundraising and partnerships staff who keep one list of companies per project or per year.
- CSR consultants and volunteers helping a small NGO send its first proposals.
The slow part is not the proposal. It is finding, for each company, the inbox it actually reads for CSR requests and what its CSR policy says it funds, then remembering who you wrote to and when to follow up. This sheet does that in one place.
Before you write: is the company covered, and are you eligible?
- Which companies must spend on CSR. Section 135(1) of the Companies Act, 2013 covers a company that, in the immediately preceding financial year, had a net worth of ₹500 crore or more, or a turnover of ₹1,000 crore or more, or a net profit of ₹5 crore or more. Such a company must spend at least two per cent of its average net profits of the three immediately preceding financial years (or of the years it has, if younger). This is checked company by company: a holding or subsidiary company is not covered just because another group company is.
- Where its policy is. Section 135(4)(a) asks the board of a covered company to disclose the contents of its CSR policy in its report and place it on the company's website, if it has one. That is why this sheet starts from each company's CSR or sustainability page: it tells you what the company says it funds.
- What CSR money cannot be used for. The CSR Rules exclude, among other things, activities in the company's normal course of business, activities outside India (with a sports-training exception), contributions to political parties, activities that benefit the company's own employees, sponsorship to get marketing benefit for the company's products or services, and activities that fulfil a legal obligation. So pitch a project, not a logo on a banner.
- Your own eligibility. Rule 4 of the Companies (CSR Policy) Rules, 2014 lets a company carry out CSR through a section 8 company, registered public trust or registered society that has 12A registration and 80G approval (or the 10(23C) route), and, for an entity not set up by the company or by government, an established track record of at least three years in similar activities. The entity must first register with the Central Government on e-form CSR-1, which gives a CSR registration number. A revised CSR-1 applies from 14 July 2025 and needs PAN, an OTP-verified email, a digital signature and certification by a practising CA, CS or CMA.
Put your CSR-1 registration number, 12A and 80G details and the year you started this kind of work on the summary tab (Step 5). A company's CSR team will usually ask for them first.
Step 1: list the companies (tab list)
Columns: A company, B website, D project, E ask. In B put the company's CSR, sustainability or foundation page on its own site if it has one, otherwise its homepage. In C2, turn the websites into domains:
=ARRAYFORMULA(IF(B2:B="",,LOWER(REGEXREPLACE(REGEXREPLACE(TRIM(B2:B),"^(https?://)?(www\.)?",""),"[/?#].*$",""))))
That turns https://www.Example-Steel.in/csr into example-steel.in, the same form the scraper writes in its domain field, so it is the key the formulas join on. While you are on the CSR page, note the focus areas the policy names (education, health, water...) in column F; that is what you match your project to.
Step 2: get each company's published inbox (tab scrape)
With the contact scraper
Open the Website Contact Scraper: Emails, Phones & WhatsApp on the Apify Store, paste column B into Websites or domains (plain list) and use this input (JSON tab):
{
"urls": ["example-steel.in/csr", "sample-chem.com", "demo-software.co.in/sustainability"],
"maxPagesPerSite": 4,
"defaultCountry": "IN",
"checkEmailMx": true,
"includePersonalEmails": false,
"includePersonProfiles": false
}
- Start on the CSR page when there is one. The scraper fetches the address you give it first, then the most contact-like links on the same site (contact, about, team, support and similar). It does not look for CSR pages by itself, so a CSR inbox printed only on the CSR page is found only if you start there.
- Give one address per company. Rows are de-duplicated by domain, so a second URL on the same site is not visited again.
- Keep
includePersonalEmailsandincludePersonProfilesoff. With them off, only shared inboxes come back:csr@is on the scraper's shared-inbox list (also with a place, such ascsr.india@), as areinfo@,contact@andcorporate@. An address with a person's name in it is dropped and only counted. Inboxes such asfoundation@,sustainability@,esg@orcsrfoundation@are not on that list, so they are dropped too and only counted inpersonalEmailsDropped: if that count is above zero and no csr@ came back, open the CSR page and copy the inbox by hand. - Set
defaultCountrytoINso local phone numbers are read correctly. You pay only for pages actually fetched; sites skipped because of robots.txt or their terms are not charged.
When the run finishes, export the dataset as CSV, then in your sheet use File → Import → Upload, "Insert new sheet", and name the tab scrape. Keep the headers. Apify flattens lists into numbered columns such as emails/0/email, emails/0/foundOn, emails/1/email, phones/0/phone and socials/linkedin/0/url; the formulas find them by header name, so column order does not matter.
Free, without the scraper
Make a scrape tab with the headers domain, status, emails/0/email, emails/0/foundOn, emails/1/email, emails/1/foundOn, emails/2/email and phones/0/phone. Open each company's CSR and contact pages, type what you see, and put ok in status. Slower, but the same formulas work.
Step 3: the companies tab
Company =list!A2, Domain =list!C2, Their focus =list!F2, Our project =list!D2, Ask =list!E2. Every contact column uses one lookup pattern; change only the header in quotes. Put the first three emails found in hidden helper columns N, O and P:
=IFERROR(INDEX(scrape!$A:$ZZ,
MATCH($B2, INDEX(scrape!$A:$ZZ, 0, MATCH("domain", scrape!$1:$1, 0)), 0),
MATCH("emails/0/email", scrape!$1:$1, 0)), "")
with emails/1/email in O and emails/2/email in P. Then the CSR inbox in C2 prefers a csr inbox, then corporate, then the first address found:
=IFERROR(INDEX(FILTER({N2,O2,P2}, REGEXMATCH({N2,O2,P2}, "(?i)^csr[.@-]")), 1),
IFERROR(INDEX(FILTER({N2,O2,P2}, REGEXMATCH({N2,O2,P2}, "(?i)^corporate[.@-]")), 1), N2))
Found on in D2 uses the same lookup with emails/0/foundOn, so you can open the page and check the inbox is meant for requests like yours. If the inbox is only info@, put "CSR proposal" at the start of the subject line so it is passed on. If the CSR page asks for proposals through a form or portal, use that and note it in Reply.
Step 4: dates, reply and Next step
Type Sent on (H) when you send. Follow up on in I2 is fourteen days later; change the number to suit:
=IF(H2="", "", H2+14)
Column J Reply: blank, replied, meeting, no or next year. Column M Followed up: the date you sent the follow-up. Next step in K2:
=IF(A2="", "", IF(J2="meeting", "meeting", IF(J2="no", "closed", IF(J2="next year", "closed: ask again next year", IF(J2="replied", "answer them", IF(C2="", "find inbox", IF(H2="", "send now", IF(M2<>"", IF(TODAY()-M2>=21, "closed: no reply", "wait"), IF(TODAY()>=I2, "follow up today", "wait")))))))))
One follow-up is enough. After that the row closes by itself, so the list shows only the companies worth your time this week. Sort or filter by Next step each morning.
Step 5: the summary tab
Sent: =COUNTIF(companies!H:H, "<>")-1 Sent this week: =COUNTIFS(companies!H:H, ">="&TODAY()-WEEKDAY(TODAY(),2)+1) Replied: =COUNTIF(companies!J:J, "replied")+COUNTIF(companies!J:J, "meeting") Meetings: =COUNTIF(companies!J:J, "meeting") Follow up today: =COUNTIF(companies!K:K, "follow up today") Total asked (sent): =SUMIFS(companies!G:G, companies!H:H, "<>")
Below the counts, keep your own details in fixed cells: CSR-1 registration number, 12A registration, 80G approval, PAN, the year you started this kind of work, and the link to your last audited accounts. The letter below pulls them in, so they are the same in every proposal.
What the status values mean
| status | Meaning | What to do |
|---|---|---|
ok | Site read | Use the inbox found, or check Found on if it looks wrong |
blocked-by-robots | The site asks bots not to crawl | Open its CSR or contact page yourself |
blocked-by-terms | The site's terms forbid scraping (clause quoted in error) | Same |
blocked-by-tos-list | The "website" is a platform page such as LinkedIn or Facebook | Find the company's own site |
blocked-by-site, rate-limited, failed | HTTP 401/403/429, too many requests, or unreachable | Retry later |
The first letter and the follow-up
Subject: CSR proposal: [project] in [district], ₹[ask], [your NGO] Hello, Your CSR policy lists [focus area from column F]. We run [one line on the project] in [place] for [who benefits, how many], and would like [company] to fund [what exactly] for [period] at ₹[ask]. About us: [legal form: trust / society / section 8 company], CSR-1 registration [number], 12A [number], 80G [number], working on [this kind of work] since [year]. A two-page proposal and budget are attached. Could we have 20 minutes with your CSR team in the next two weeks? Thank you, [Name], [role], [NGO], [phone]
Follow-up, same thread, about two weeks later: Hello, a short follow-up on our CSR proposal below for [project]. If this year's CSR budget is already committed, we would be glad to know when you plan next year's projects. Thank you, [Name]
- Write to the inbox the company publishes, not to staff addresses you guessed.
- Name one focus area from the company's own CSR policy in the first line. That is what shows it is not a mass mailing.
- Do not offer branding, advertising or product promotion in return: sponsorship for marketing benefit is not a CSR activity under the rules.
- Send from your organisation's address, attach one PDF proposal, and keep the sheet to company details and your own notes.
Check before you send
- Your CSR-1 registration number, 12A and 80G details on the summary tab are current.
- The project fits a focus area the company's own CSR policy names.
- The inbox is one the company publishes, and Found on confirms the page.
- The CSR page does not ask for proposals only through a form or portal.
- The amount, place and people served are filled in for this company.
- Sent on is filled in, so the follow-up date appears.
Partner programme opening soon
Partner programme opening soon: join the free waitlist. Planned terms are 50% of each referred sale (75% once you have 5+ paying customers), single level, paid through Gumroad only from revenue received.
Sources
- Companies Act, 2013, section 135 (criteria in 135(1), policy on the website in 135(4)(a), two per cent in 135(5)) and Ministry of Corporate Affairs FAQs on CSR, General Circular No. 14/2021 dated 25 August 2021 (FAQ 1.1 criteria, 1.2 holding and subsidiary, 1.4 younger companies, 4.1 excluded activities under rule 2(1)(d)): MCA
- Companies (CSR Policy) Rules, 2014, rule 4 (implementing agencies, 12A and 80G, three-year track record, registration on e-form CSR-1) and Companies (CSR Policy) Amendment Rules, 2025, G.S.R. 452(E) dated 7 July 2025, revised e-form CSR-1 in force from 14 July 2025: notification text
- Contact scraper input and output fields (
urls,maxPagesPerSite,defaultCountry,checkEmailMx,includePersonalEmails,includePersonProfiles;domain,status,emailswithtypeandfoundOn,phones,personalEmailsDropped; shared-inbox list incl. csr, info, contact and corporate; de-duplication by domain; platform blocklist): Apify Store page (input schema and README)
Related
- Local business sponsor and raffle prize ask sheet for school fairs and charity events
- Speculative job application sheet: careers@, jobs@ or hr@ inbox and follow-up
- Press list sheet: the media inboxes each publication publishes
- Clean a contact CSV into a call sheet
Unadhi Guides are free, independent explainers. We correct errors as soon as we find them: write to mininglife7@gmail.com.