arazzo: 1.0.1 info: title: Coresignal Employee Elasticsearch Search and Bulk Collect summary: Run an Elasticsearch DSL employee query, then bulk collect the full profiles for every matching ID. description: >- A high-throughput people enrichment pattern. The workflow submits a full Elasticsearch DSL query to the Multi-source Employee API, which returns an array of matching employee IDs, and then bulk collects the full enriched profiles for all of those IDs in a single follow-up call. Every step spells out its request inline, including the apikey authentication header and the Elasticsearch DSL query body, so the flow can be read and executed without opening the underlying OpenAPI description. version: 1.0.0 sourceDescriptions: - name: employeeApi url: ../openapi/coresignal-multi-source-employee-api-openapi.yml type: openapi workflows: - workflowId: employee-esdsl-bulk-collect summary: Query employees with Elasticsearch DSL and bulk collect every match. description: >- Posts an Elasticsearch DSL query to the employee search endpoint and bulk collects the full profiles for the returned IDs. inputs: type: object required: - apikey - query properties: apikey: type: string description: Coresignal API key sent in the apikey header. query: type: object description: Elasticsearch DSL query object used as the search request body. steps: - stepId: searchEmployees description: >- Search employee records using a full Elasticsearch DSL query body. Returns an array of matching Coresignal employee IDs. operationId: searchEmployeesByEsDsl parameters: - name: apikey in: header value: $inputs.apikey requestBody: contentType: application/json payload: $inputs.query successCriteria: - condition: $statusCode == 200 outputs: employeeIds: $response.body - stepId: bulkCollectEmployees description: >- Retrieve the full enriched employee profiles for the array of IDs returned by the Elasticsearch DSL search. operationId: bulkCollectEmployees parameters: - name: apikey in: header value: $inputs.apikey requestBody: contentType: application/json payload: ids: $steps.searchEmployees.outputs.employeeIds successCriteria: - condition: $statusCode == 200 outputs: employees: $response.body firstEmployeeName: $response.body#/0/full_name outputs: employeeIds: $steps.searchEmployees.outputs.employeeIds employees: $steps.bulkCollectEmployees.outputs.employees