Skip to content

Tasks

Create and manage outreach tasks such as sending LinkedIn messages or emails. Tasks can be created manually or generated by automations.

Task types: linkedin_send_message, linkedin_send_connection_request, linkedin_send_inmail, linkedin_like_latest_post, linkedin_endorse_skills, email_send_message, trigger_linkedin_connection_request_accepted.

Task statuses: in_progress, closed, canceled, failed, skipped.

List tasks

Request

Retrieve outreach tasks. Tasks are the individual actions an automation executes (or that you create manually) — one task per contact per step.

All filters use the filter[...] form (URL-encode the brackets: filter%5Btype%5D=...). Flat query params such as ?type= or ?flow_uuid= are silently ignored and return unfiltered results — always use filter[...].

Counting without paging: the response total is the count of matching tasks, so send limit=1 and read total instead of paging through results.

Reporting on what was actually sent: filter on status=closed (executed) and the executed_at date — not schedule_at, which is often null. Date ranges use comparison operators inside the field, e.g. filter[executed_at][>=]=2026-07-22&filter[executed_at][<=]=2026-07-23.

Performance: always narrow by filter[flow_uuid] (or another selective field) for reporting queries. Unnarrowed queries over large task volumes can time out with a 504.

Example — connection requests sent by one automation on a given day:

  &filter[flow_uuid]=f97f182b-06bb-415c-b92e-0f38f85a2048
  &filter[type]=linkedin_send_connection_request
  &filter[status]=closed
  &filter[executed_at][>=]=2026-07-22
  &filter[executed_at][<=]=2026-07-23
Security
bearerAuth
Query
limitinteger, (int32)

Items per page (default 20).

Default:20
Example:limit=20
offsetinteger, (int32)

Items to skip (default 0).

Default:0
Example:offset=0
order_fieldstring

Sort field (default created_at).

Default:"created_at"
Example:order_field=created_at
order_typestring

Sort direction.

Default:"asc"
Enum:"asc""desc"
Example:order_type=asc
filterobject

Filters, passed as filter[field]=value. Values follow mixed-filter-type: a scalar (equals), an array (IN), or an object with a comparison operator such as >= / <= for dates.

Example:flow_uuid=f97f182b-06bb-415c-b92e-0f38f85a2048&type=linkedin_send_connection_request&status=closed
GET
/flows/api/tasks
curl -i -X GET \
  'https://leadgen.grinfi.io/flows/api/tasks?limit=20&offset=0&order_field=created_at&order_type=asc&filter=%7B%22flow_uuid%22%3A%22f97f182b-06bb-415c-b92e-0f38f85a2048%22%2C%22type%22%3A%22linkedin_send_connection_request%22%2C%22status%22%3A%22closed%22%7D' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Paginated list of tasks.

Bodyapplication/json
dataArray of objects(task)
limitinteger
offsetinteger
totalinteger
Response
{ "data": [ {} ], "limit": 0, "offset": 0, "total": 0 }