Skip to main content

Opportunity Application Sent Explained

When Sortlist sends an Opportunity Application Sent trigger, your application has reached the client. Anonymity is lifted — you now get full project details, company info, and direct contacts to start follow-ups right away.

Written by Thibaut Vanderhofstadt

When this trigger fires, here’s the data you can use in Zapier (or any integration tool). Each field is designed to help you enrich your CRM, kick off sales workflows, and follow up with clients faster.

This is the most complete dataset: you get everything from earlier stages plus full client contact details.

🔔 When it triggers

As soon as your application is delivered to the client.

📦 What you get

  • Full project & company info

  • Who from your agency applied

  • Client contacts (name, email, phone, LinkedIn, etc.)

💡 How to use it

  • Auto-create contacts, companies & deals in CRM → Full project + contact details sync automatically.

  • Instant follow-up workflows → Trigger email, SMS, or WhatsApp campaigns the moment the client receives your proposal.

  • Sales alerts in Slack/Teams → Notify your sales reps with company & contact details for immediate action.

  • Assign follow-up tasks → Create tasks in ClickUp, Trello, or Asana to ensure timely calls.

📨 Payload Example

{
"id": "T3Bwb3J0dW5pdHkvMTIzNDU",
"applied_at": "2023-01-01T12:00:00Z",
"received_at": "2023-01-01T00:00:00Z",
"project_id": 12345,
"locale": "en",
"provider_slug": "agency-slug",
"opportunity_link": "https://agency.sortlist.com/brief/12345",
"integration": {
"uuid": "integration-uuid",
"owner": "manager@agency.com",
"trigger_name": "opportunity_application_sent"
},
"applied_by": {
"id": "QWdlbmN5TWVtYmVyLzY3ODkw",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@agency.com"
},
"budget_min": 10000,
"budget_max": 25000,
"budget_monthly": true,
"budget_not_set_yet": false,
"location": "New York, US",
"country": "US",
"expertise": "Web Development",
"sector": "Technology",
"remote_work_accepted": true,
"languages_required": "en, fr",
"provider_size_required": "small, medium",
"briefing_description": "Project description...",
"price_in_credit": 100.0,
"price_in_euro": 90.0,
"title": "Sortlist Opportunity 12345: Acme Inc.",
"company": {
"size_min": 10,
"size_max": 50,
"turnover_min": 1000000,
"turnover_max": 10000000,
"type": "NGO",
"name": "Acme Inc.",
"website": "https://acme.com"
},
"contacts": [
{
"first_name": "Jane",
"last_name": "Doe",
"email": "jane.doe@example.com",
"phone": "+12025550100",
"linkedin_url": "https://linkedin.com/in/jane-doe",
"phone_iso31661": "US",
"phone_validation_status": "valid",
"picture_url": "https://example.com/jane-doe.jpg",
"professional_email": true,
"job_title": "Software Engineer",
"locale": "en"
}
]
}

🔑 Data Fields :

Field

Type

What it means

Why it matters / Use Case

id

string (UUID)

Unique identifier

Use as primary key in CRM

applied_at

datetime

When applied

Reactivity metric

received_at

datetime

When received

Lag tracking

project_id

integer

Project ref

Cross-reference

locale

string

Project language

Segmentation per language

provider_slug

string

Provider Profile slug

To ensure Integration consistency

opportunity_link

string

Sortlist URL

Direct access to Sortlist Opportunity

integration.uuid

string

Integration ID

Identify integration

integration.owner

string

Owner email

Admin tracking

integration.trigger_name

string

Always opportunity_application_sent

Filter webhooks

applied_by.id

string

Member ID

Attribution

applied_by.first_name

string

First name of the member who applied

CRM sync

applied_by.last_name

string

Last name member who applied

CRM sync

applied_by.email

string

Email of the member who applied

Internal traceability & assignment

budget_min

integer | null

Minimum budget

Qualification

budget_max

integer | null

Maximum budget

Qualification

budget_monthly

boolean

True if monthly

Pricing model

budget_not_set_yet

boolean

True if unset

Handle missing budget

location

string

Location

Targeting

country

string (ISO)

Country code

Segmentation

expertise

string

Service needed

Routing

sector

string

Industry

Prioritization

remote_work_accepted

boolean

Remote accepted?

Match teams & capabilities

languages_required

string

Required languages

Assign teams

provider_size_required

string

Preferred provider size

Qualification

briefing_description

string

Project details

For context & AI lead scoring

price_in_credit

decimal

Credit value

ROI tracking

price_in_euro

decimal

Euro cost

Finance reporting

title

string

Opportunity title (company visible)

CRM display

company.size_min

integer

Min employees

Client profile

company.size_max

integer

Max employees

Client profile

company.turnover_min

integer

Min turnover

Qualification

company.turnover_max

integer

Max turnover

Qualification

company.type

string

Org type

Segmentation

company.name

string

Real name

CRM sync

company.website

string

Website

Enrichment & use as key to match domain on your CRM

contacts[].first_name

string

Contact’s first name

Outreach personalization

contacts[].last_name

string

Contact’s last name

Outreach personalization

contacts[].email

string

Contact email

Direct outreach and use as key to sync with your Contacts in your CRM

contacts[].phone

string

Phone number

Call follow-up & enrichment

contacts[].phone_iso31661

string

Country code

Dial prefix

contacts[].phone_validation_status

string

Phone validation status

Quality check

contacts[].linkedin_url

string

LinkedIn profile

Social selling & for remarketing

contacts[].picture_url

string

Profile picture URL

CRM enrichment

contacts[].professional_email

boolean

True if work email

Avoid personal addresses

contacts[].job_title

string

Job title

Targeting & messaging personalization

contacts[].locale

string

Contact’s language

Outreach in right language

Micro-win: By mastering this trigger, you’ll be the first to act with complete client information, ensuring your follow-ups are fast, personal, and effective.

Did this answer your question?