ScreenshotNeo

BlogHow-to

How to Capture Website Screenshots from Freshsales Leads Using Zoho Flow in India

Connect Freshsales leads to a screenshot API with Zoho Flow. Configure the trigger, request, image destination, and checks for an India-based workflow.

By the ScreenshotNeo team4 October 20268 min read

Direct answer: Zoho Flow can start a workflow when a Freshsales lead is created and send that lead’s website URL to an external screenshot API through a custom function or outgoing webhook. The reviewed Zoho documentation does not show a built-in screenshot action, name a screenshot provider, or verify this end-to-end integration. Treat the steps below as an implementation pattern: confirm the provider’s API contract, test the flow in your account, and decide where the resulting image or link will be stored.

This guide applies to an India-based team using Freshsales and Zoho Flow. It does not establish that processing or storage happens in India; confirm data location and handling with the services you choose.

1. Confirm the lead data and destination

Before building the flow, identify the exact Freshsales field that contains the public website URL and where the screenshot result should go. Do not assume every lead has a valid URL. Freshsales documents several ways leads can enter a CRM, including forms, email, imports, and manual entry. Its Freshsales for Web help describes capturing a visitor as a lead after a form submission containing an email address and recording website activity on the lead timeline. That setup guide dates to 2018, so check the current account configuration before relying on its details. Freshsales help

  • Input: the lead’s website field, including its exact API or Flow field name.
  • Output: choose a URL to an image, an image file stored elsewhere, or a note with a link. The reviewed Freshsales integration page documents lead actions such as adding a note, but does not establish a native screenshot attachment action for this workflow.
  • Access: confirm the Flow trigger and function or webhook features are enabled on your current plan.
  • Data handling: decide whether sending lead website URLs to the screenshot provider is acceptable and verify provider retention and processing details.

2. Create the Freshsales trigger in Zoho Flow

  1. In Zoho Flow, create a flow and choose the Freshsales connector.
  2. Select the documented new-lead trigger and connect the correct Freshsales account.
  3. Inspect the trigger sample and locate the field that contains the website URL. Map that field explicitly; do not substitute a company name or email address.
  4. Add a condition to continue only when the field is present and contains a URL with an allowed scheme, normally https:// or http://.
  5. Choose a custom function or outgoing webhook for the API call, based on the provider’s authentication and response requirements.

Zoho Flow’s Freshsales integration page lists lead triggers and CRM actions such as creating, updating, or fetching leads and adding a note. It does not list screenshot capture as a built-in action. Zoho Flow and Freshsales integration

3. Choose how Flow calls the screenshot API

Mechanism Use it when Considerations
Custom function using Deluge invokeURL You need to construct the request, handle the response, or transform values before the next step. Zoho documents custom functions as reusable Deluge blocks that can call external APIs. The documentation states a 30-second maximum execution time and says custom functions are available on Standard and Professional plans, not Free. Verify current entitlements and provider response times. Zoho Flow custom functions
Outgoing webhook The provider accepts a straightforward HTTP request and the response handling you need is available in your flow. Zoho documents outgoing webhooks as a way to send HTTP requests to external applications, including when a built-in app action is missing. Confirm the supported authentication, payload, and response mapping in your account. Zoho Flow outgoing webhooks

Neither mechanism is inherently the right choice for every provider. Compare required authentication, query versus body parameters, response format, execution ceiling, and how you will store or link the returned image. Provider-specific details must come from that provider’s current API documentation.

4. Configure the provider request and result handling

There is no screenshot provider or API contract established by the reviewed integration sources. Once you select a provider, verify these details in its documentation before configuring Flow:

  • Endpoint, HTTP method, authentication format, and required parameters.
  • Whether the response is image bytes, a JSON object containing a URL, or an asynchronous job identifier.
  • Expected response time and behavior for redirects, inaccessible pages, and invalid URLs.
  • Whether the provider can return an image URL that Freshsales can link to, or whether you need separate object storage.
  • Retention, access controls, and data processing location for the lead URL and screenshot.

Map the lead URL into the provider’s documented URL parameter and use the provider’s documented authentication field or header. Do not paste an API secret into a public URL or a field that appears in lead notes. If the response is a temporary link, copy the image to storage you control before putting a durable link in Freshsales.

Where to put the result

A practical destination can be a note on the lead containing the screenshot link and capture status, or a file in a separate storage service with its link recorded on the lead. The cited Freshsales connector documents adding a note, but it does not confirm that a Flow action can attach arbitrary image bytes to a lead. Confirm the available actions in your account before designing around attachments.

5. Test the complete flow before enabling it

  1. Create a test lead with a public website URL and confirm the trigger provides the expected field.
  2. Run the provider request with that URL and inspect the HTTP status, response type, and returned image or link.
  3. Confirm the next flow step stores or links the result to the correct lead.
  4. Test a lead with no website, a malformed URL, a redirect, an inaccessible site, and a slow-loading site.
  5. Check whether retries can create duplicate notes or stored files. If they can, use a stable lead identifier plus capture time or another idempotency key in your storage process.
  6. Review the flow history and provider logs, then enable the flow for production leads.

These are implementation checks, not a tested recipe or a claim about provider behavior. Keep the initial rollout limited enough to inspect failures and confirm billing before processing all new leads.

6. Troubleshooting

Symptom Likely cause What to check
Flow does not start Trigger connection, permissions, or selected event is incorrect. Reconnect Freshsales, confirm the new-lead trigger and account, and inspect Flow execution history.
Request has an empty URL The wrong lead field was mapped, or the lead has no website. Inspect a trigger sample and add a condition that skips missing values.
Provider rejects the request Authentication, parameter name, URL encoding, or scheme is wrong. Compare the request with the provider’s API documentation; test the same URL and credentials outside Flow without exposing secrets in logs.
Function times out The provider takes longer than the function’s execution limit, or the target page is slow. Check provider response-time guidance and Zoho’s current function limit. Consider an asynchronous provider job or webhook callback if supported; do not assume the function can wait beyond its documented ceiling.
Flow succeeds but no image appears The response may be image bytes or a temporary URL, while the next step expects a different format. Inspect the response content type and schema; configure storage or link handling to match it.
Duplicate notes or files appear A retry or repeated trigger processed the same lead more than once. Check Flow history and add deduplication in the storage or downstream step using a stable identifier.
Some sites produce blank or blocked captures The site may require authentication, block automated requests, load slowly, or render content only after interaction. Check provider options and its result status. Do not treat a successful HTTP call alone as proof that the screenshot contains the intended page.

7. Performance, reliability, and cost

  • Execution time: Zoho’s custom-function documentation states a 30-second maximum. Measure provider response time under the pages you expect and confirm the current limit before depending on synchronous capture.
  • Reliability: account for missing URLs, redirects, bot checks, failed page loads, provider errors, and duplicate flow events. Preserve a status and error detail so a failed capture is distinguishable from a missing result.
  • Storage: screenshot files can outlive a lead update or a provider’s temporary link. Decide on retention and access controls before saving links in CRM records.
  • Cost: check both your current Zoho Flow plan and the chosen screenshot provider’s pricing, quotas, and treatment of retries. The sources reviewed do not establish a price for this workflow.
  • India-specific behavior: the reviewed documentation does not establish India-specific hosting, data residency, or legal requirements. Confirm data location and handling with Zoho and the screenshot provider for your account and use case.

8. Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server. After you have a valid public lead URL, call its API from a Flow custom function or webhook. Check the ScreenshotNeo API documentation for current request details and configure your flow’s authentication and result storage accordingly.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
    timeout=90,
)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

Replace the example URL with the mapped lead website URL and provide your API key securely. ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before the shot; bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card, and paid plans start at $5 for 3,000. Confirm how your Flow step handles the returned image and save it or a suitable link to your chosen destination.

Sign up for ScreenshotNeo’s free plan: 1,000 screenshots a month, no card required.

FAQ

Can Zoho Flow take a screenshot using a built-in Freshsales action?

The reviewed Freshsales connector documentation does not list a screenshot action. The documented pattern is to call an external API using a custom function or outgoing webhook.

Can I save the screenshot directly as a Freshsales attachment?

The cited connector information does not establish an image-attachment action for this scenario. Check the actions available in your account; otherwise store the image elsewhere and write its link to the lead.

Does this workflow guarantee India data residency?

No. The reviewed documentation does not establish where Zoho or a screenshot provider processes or stores this workflow’s data. Confirm location and handling directly with the services you use.

What if a lead has no public website?

Skip the capture step when the URL is missing or invalid, and record a clear status if your process needs an audit trail.