Fastfold Docs
Webhooks

Event Payloads

Outgoing custom webhook payload shape, including fold and workflow source enrichment.

When target_kind=custom_http, FastFold sends a JSON payload like:

{
  "event": {
    "id": "40eac6d4-e841-4d63-a35e-1a85f5cf26d8",
    "source_kind": "workflow",
    "event_name": "on_complete",
    "status": "COMPLETED",
    "source_id": "af2473ef-820d-44df-98fe-fa15103157d5",
    "occurred_at": "2026-04-23T17:50:10.240Z",
    "payload": {}
  },
  "mapping": {},
  "source": {}
}

Top-level fields

  • event: normalized event envelope
  • mapping: subscription input mapping (if any)
  • source: enriched source context
  • source_enrichment_error: present when enrichment fails but delivery still proceeds

Fold source enrichment (source_kind=fold_job)

For fold events, source includes:

  • job: fold job metadata
  • job_run: run metadata and selected params
  • input: run constraints + model parameters used
  • results[]: per-sequence status, prediction metrics, and signed artifact URLs (cif_url, pdb_url, pae_plot_url, plddt_plot_url, metrics_json_url, etc.)

Minimal fold example:

{
  "source": {
    "job": { "id": "job-uuid", "name": "My Fold", "status": "COMPLETED" },
    "job_run": { "id": "run-uuid", "model_name": "boltz-2", "weight_set": "Boltz-2" },
    "input": {
      "constraints": { "webhooks": { "evolla": { "enabled": true } } },
      "parameters": { "model_name": "boltz-2", "method": "Boltz-2", "seed": "1" }
    },
    "results": [
      {
        "sequence_id": "seq-uuid",
        "sequence_type": "protein",
        "prediction": { "mean_plddt": 87.1, "ptm_score": 0.71 },
        "artifacts": { "cif_url": "https://...", "metrics_json_url": "https://..." }
      }
    ]
  }
}

Workflow source enrichment (source_kind=workflow)

For workflow events, source includes:

  • workflow: workflow-level status/counts/type
  • input: workflow input payload
  • tasks[]: task status/type/result payloads
  • metrics[]: extracted metrics from task outputs
  • plots[]: extracted plot-like outputs/artifacts

Minimal workflow example:

{
  "source": {
    "workflow": {
      "id": "workflow-uuid",
      "workflow_type": "calvados_openmm_v1",
      "status": "COMPLETED",
      "tasks_total_count": 1,
      "tasks_completed_count": 1
    },
    "input": {
      "input_payload": {
        "preset": "single_af_go",
        "sim_length_ns": 10,
        "webhooks": { "custom_http": { "enabled": true } }
      }
    },
    "tasks": [
      {
        "task_id": "task-uuid",
        "task_type": "inference_calvados_openmm",
        "status": "COMPLETED",
        "result_raw_json": { "metrics": { "rmsd": {} } }
      }
    ],
    "metrics": [{ "task_id": "task-uuid", "metrics": { "rmsd": {} } }],
    "plots": [{ "task_id": "task-uuid", "path": "analysis/rmsd.png", "url": "https://..." }]
  }
}

Last updated on

On this page