Find Custom Object Record and Find Company Actions in Sparkforge

By Sparkforge Support Team ·Last reviewed May 3, 2026

Find Object Record (custom object workflows) and Find Company (company workflows) look up a record using values from an Inbound Webhook trigger. Map webhook fields to record fields, pick a tie-breaker, and branch on Record Found vs. Record Not Found.

Find Object Record and Find Company are workflow actions that search your CRM using values from an Inbound Webhook trigger. They give you deterministic Record Found and Record Not Found branches so downstream steps can update, associate, create, or alert on the result.

When to use these actions

  • Look up a custom object or company record by mapping webhook payload fields to record fields.
  • Resolve duplicates with a tie-breaker (Earliest Created or Latest Created).
  • Branch cleanly on whether the record exists.

Prerequisite: the workflow needs an Inbound Webhook trigger. The action reads from that trigger's payload (body, headers).

How the action is configured

Filter On (tie-breaker)

If multiple records match, pick one:

  • Earliest Created Record
  • Latest Created Record

Filters (AND logic)

  • Left side: the object or company field to match (Record ID, External ID, VIN, Pet Name, Domain, etc.).
  • Right side: a field from the Inbound Webhook trigger (Body or Headers) or a fixed value.

Tips:

  • Prefer unique identifiers (Record ID, External ID, Domain) for deterministic results.
  • Add extra filters (status, location, type) to narrow ambiguous matches.

Outcomes

  • Record Found: the matched record becomes the current record for downstream actions like Update or Associate.
  • Record Not Found: branch to create a record, alert a user, or stop the flow.

Skip behavior

If the workflow already starts with the same object as its trigger (e.g., "Car Created"), the lookup step is skipped automatically — the trigger record is already in context.

Best practices

  • Make the webhook send clean, typed values (strings, numbers, booleans).
  • Normalize casing and whitespace upstream when matching on names.
  • Test with sample payloads in a staging workflow before going live.

Examples

Find a Pet by name

A webhook posts { "petname": "snowy" }.

  • Filter On: Earliest Created Record
  • Filters: Pet Name = {{inboundWebhookRequest.body.petname}}

Found: update Pet status, notify owner. Not Found: create a Pet record and tag for review.

Find a Subscription by external reference

A billing webhook sends subscription_ref.

  • Filter On: Latest Created Record
  • Filters: External Reference = {{inboundWebhookRequest.body.subscription_ref}}; Status = active (optional safety filter)

Found: update plan fields, enqueue renewal emails. Not Found: create a placeholder Subscription and alert Finance.

Find a Company by domain

A lead-gen webhook passes companyDomain.

  • Filter On: Latest Created Record
  • Filters: Domain = {{inboundWebhookRequest.body.companyDomain}}

Found: enroll Company in an Onboarding workflow. Not Found: create a new Company record with that domain.

Frequently Asked Questions

Does this action work without an Inbound Webhook trigger?
No. Find Object Record and Find Company read from the webhook's payload, so the trigger must exist in the workflow.
What does the tie-breaker actually pick?
Earliest Created Record returns the oldest match; Latest Created Record returns the newest. Both pick exactly one record when the filters match more than one.
What happens when no record matches?
The Record Not Found branch executes. Use it to create a new record, notify a user, or stop the flow.
Can I match on multiple fields?
Yes. Filters use AND logic. Add as many rows as needed — combining a unique identifier with a status or type filter is a common pattern.
Does this action work for company-based workflows too?
Yes. The same configuration applies to Find Company in company-based workflows. The lookup uses Inbound Webhook values like companyName or domain.

Was this article helpful?