Query Workflows

Workflow: Query Workflows

User Intent

"I want to list all my workflows or find a specific workflow by name"

Operation

  • SDK Method: graphlit.queryWorkflows() or graphlit.getWorkflow()

  • GraphQL: queryWorkflows or getWorkflow query

  • Entity Type: Workflow

  • Common Use Cases: List workflows, find workflow by name, check workflow configuration

TypeScript (Canonical)

import { Graphlit } from 'graphlit-client';
import { EntityState } from 'graphlit-client/dist/generated/graphql-types';

const graphlit = new Graphlit();

// Query all workflows
const workflows = await graphlit.queryWorkflows();

console.log(`Total workflows: ${workflows.workflows.results.length}`);

workflows.workflows.results.forEach(workflow => {
  console.log(`- ${workflow.name} (${workflow.state})`);
});

// Search by name
const searchResults = await graphlit.queryWorkflows({
  search: 'Extraction'
});

console.log(`\nFound ${searchResults.workflows.results.length} extraction workflows`);

// Get specific workflow
// Replace with ID from creating a workflow or from queryWorkflows results above
const workflowId = 'workflow-id-here';
const workflow = await graphlit.getWorkflow(workflowId);

console.log(`\nWorkflow: ${workflow.workflow.name}`);
console.log(`Created: ${workflow.workflow.creationDate}`);

// Check workflow type
if (workflow.workflow.extraction) {
  console.log('Type: Extraction workflow');
  console.log(`Jobs: ${workflow.workflow.extraction.jobs?.length || 0}`);
} else if (workflow.workflow.preparation) {
  console.log('Type: Preparation workflow');
  console.log(`Jobs: ${workflow.workflow.preparation.jobs?.length || 0}`);
}

Query all workflows (snake_case)

workflows = await graphlit.queryWorkflows()

print(f"Total workflows: {len(workflows.workflows.results)}")

for workflow in workflows.workflows.results: print(f"- {workflow.name} ({workflow.state})")

Search by name

search_results = await graphlit.queryWorkflows( filter=WorkflowFilterInput( search="Extraction" ) )

Get specific workflow

workflow = await graphlit.getWorkflow(workflow_id) print(f"Workflow: {workflow.workflow.name}")


**C#**:
```csharp
using Graphlit;

var client = new Graphlit();

// Query all workflows (PascalCase)
var workflows = await graphlit.QueryWorkflows();

Console.WriteLine($"Total workflows: {workflows.Workflows.Results.Count}");

foreach (var workflow in workflows.Workflows.Results)
{
    Console.WriteLine($"- {workflow.Name} ({workflow.State})");
}

// Search by name
var searchResults = await graphlit.QueryWorkflows(new WorkflowFilter {
    Search = "Extraction"
});

// Get specific workflow
var workflow = await graphlit.GetWorkflow(workflowId);
Console.WriteLine($"Workflow: {workflow.Workflow.Name}");

Parameters

queryWorkflows (Optional Filter)

  • search (string): Search by workflow name

  • states (EntityState[]): Filter by state

    • ENABLED, DISABLED

getWorkflow (Required)

  • id (string): Workflow ID

Response

{
  workflows: {
    results: Workflow[];
  }
}

interface Workflow {
  id: string;
  name: string;
  state: EntityState;
  creationDate: Date;
  preparation?: PreparationWorkflowStage;
  extraction?: ExtractionWorkflowStage;
}

Developer Hints

Workflow Types

Three main workflow types:

// Preparation workflow (PDF, audio, video)
if (workflow.workflow.preparation) {
  console.log('Preparation workflow');
}

// Extraction workflow (entities, knowledge graph)
if (workflow.workflow.extraction) {
  console.log('Extraction workflow');
}

// Combined workflow (both stages)
if (workflow.workflow.preparation && workflow.workflow.extraction) {
  console.log('Combined workflow');
}

Find Workflow by Name

const results = await graphlit.queryWorkflows({
  search: 'PDF Preparation'
});

if (results.workflows.results.length > 0) {
  const workflow = results.workflows.results[0];
  console.log(`Found: ${workflow.name} (${workflow.id})`);
} else {
  console.log('Workflow not found');
}

Workflow Inventory

const workflows = await graphlit.queryWorkflows();

const byType = {
  preparation: 0,
  extraction: 0,
  combined: 0
};

workflows.workflows.results.forEach(w => {
  if (w.preparation && w.extraction) {
    byType.combined++;
  } else if (w.preparation) {
    byType.preparation++;
  } else if (w.extraction) {
    byType.extraction++;
  }
});

console.log('Workflow Inventory:');
console.log(`  Preparation: ${byType.preparation}`);
console.log(`  Extraction: ${byType.extraction}`);
console.log(`  Combined: ${byType.combined}`);

Variations

1. List All Workflows

Get all workflows:

const workflows = await graphlit.queryWorkflows();
console.log(`You have ${workflows.workflows.results.length} workflows`);

2. Search by Name

Find specific workflows:

const results = await graphlit.queryWorkflows({
  search: 'Entity Extraction'
});

console.log('Extraction workflows:');
results.workflows.results.forEach(w => {
  console.log(`- ${w.name}`);
});

3. Get Workflow Details

Retrieve full configuration:

const workflow = await graphlit.getWorkflow(workflowId);

console.log(`Workflow: ${workflow.workflow.name}`);
console.log(`State: ${workflow.workflow.state}`);
console.log(`Created: ${workflow.workflow.creationDate}`);

if (workflow.workflow.extraction) {
  console.log(`\nExtraction Jobs: ${workflow.workflow.extraction.jobs?.length || 0}`);
}

if (workflow.workflow.preparation) {
  console.log(`Preparation Jobs: ${workflow.workflow.preparation.jobs?.length || 0}`);
}

4. Filter Active Workflows

Only enabled workflows:

const active = await graphlit.queryWorkflows({
  states: [EntityState.Enabled]
});

console.log(`Active workflows: ${active.workflows.results.length}`);

5. Workflow Summary Report

Generate workflow summary:

const workflows = await graphlit.queryWorkflows();

console.log('=== WORKFLOW SUMMARY ===\n');

for (const w of workflows.workflows.results) {
  const fullWorkflow = await graphlit.getWorkflow(w.id);
  
  console.log(`📋 ${fullWorkflow.workflow.name}`);
  console.log(`   ID: ${fullWorkflow.workflow.id}`);
  console.log(`   State: ${fullWorkflow.workflow.state}`);
  
  if (fullWorkflow.workflow.preparation) {
    console.log(`   Type: Preparation`);
    console.log(`   Jobs: ${fullWorkflow.workflow.preparation.jobs?.length || 0}`);
  }
  
  if (fullWorkflow.workflow.extraction) {
    console.log(`   Type: Extraction`);
    console.log(`   Jobs: ${fullWorkflow.workflow.extraction.jobs?.length || 0}`);
  }
  
  console.log('');
}

Common Issues

Issue: Workflow not found error Solution: Verify workflow ID is correct. Workflow may have been deleted.

Issue: Search returns no results Solution: Search is case-sensitive. Try partial matches.

Issue: Can't determine workflow type Solution: Check preparation and extraction properties. One or both will be present.

Production Example

Workflow management dashboard:

const workflows = await graphlit.queryWorkflows();

console.log('=== WORKFLOW DASHBOARD ===\n');

for (const w of workflows.workflows.results) {
  const full = await graphlit.getWorkflow(w.id);
  
  let type = 'Unknown';
  if (full.workflow.preparation && full.workflow.extraction) {
    type = 'Preparation + Extraction';
  } else if (full.workflow.preparation) {
    type = 'Preparation';
  } else if (full.workflow.extraction) {
    type = 'Extraction';
  }
  
  const status = full.workflow.state === EntityState.Enabled ? '' : '';
  
  console.log(`${status} ${full.workflow.name}`);
  console.log(`   Type: ${type}`);
  console.log(`   Created: ${new Date(full.workflow.creationDate).toLocaleDateString()}\n`);
}

Last updated

Was this helpful?