# eFax integration

> Build workflow automations with 3 public eFax actions.

Source: [https://genhealth.ai/docs/workflows/integrations/e-fax](https://genhealth.ai/docs/workflows/integrations/e-fax)

## Available actions

3 actions. Connection types: efax.

### [Download Fax](https://genhealth.ai/docs/workflows/integrations/e-fax/efax_download_fax.md)

- Handler: `efax_download_fax`
- Connection type: `efax`
- External effect: `write`
- Inputs: `fax_id`, `hidden`
- Outputs: `document_id`, `s3_key`, `size`, `was_existing`, `success`, `error`

Purpose: Download one eFax PDF into the app's normal document store for later processing. Use when: Import a fax listed in the organization's connected mailbox, then pass document_id to OCR, splitting, or extraction actions. Inputs: Required fax_id UUID string from List Received Faxes; optional hidden:boolean (default false). Outputs: document_id:string, s3_key:string, size:integer bytes, was_existing:boolean; success:boolean, error:string|null, failure_category:null. The runner wraps successful output under default. No file bytes. Success: success=true and error=null mean the shared writer returned a stored or reused document reference. This does not mean OCR or later processing completed. Failure: success=false with a safe error. The source may already be marked read even if storage failed. A retry can reuse the same org/mailbox/fax document; deleted documents are not restored. Login can retry transient errors up to three times; the image request is never retried automatically. Effects: Marks the source fax read in eFax and stores the PDF in S3 and the app database. Visible in the inbox unless hidden=true; preserves workflow assignment and prior processing on repeat imports. Examples: {"fax_id":"00000000-0000-0000-0000-000000000001","hidden":false} can return document_id="00000000-0000-0000-0000-000000000002", size=512, was_existing=false, success=true and error=null, with an s3_key, under default.

### [List Received Faxes](https://genhealth.ai/docs/workflows/integrations/e-fax/efax_list_faxes.md)

- Handler: `efax_list_faxes`
- Connection type: `efax`
- External effect: `read`
- Inputs: `offset`, `limit`, `min_completed_timestamp`, `max_completed_timestamp`
- Outputs: `faxes`, `count`, `has_more`, `next_offset`, `success`, `error`

Purpose: List one page of received eFax records without changing their read state. Use when: Find fax IDs before Read Fax Details or Download Fax; requires the organization's saved eFax connection. Inputs: Optional offset integer >=0 (default 0), limit integer 1–100 (default 100), min_completed_timestamp and max_completed_timestamp as timestamps with a timezone. Blank filters are omitted. Outputs: faxes:list of records with fax_id UUID strings and optional details; count:integer, has_more:boolean, next_offset:integer|null; success:boolean, error:string|null, failure_category:null. The runner wraps successful output under default. No fax titles or file bytes are returned. Success: success=true and error=null; an empty faxes list is valid. Follow next_offset while has_more=true; a full final page can require one empty request. Failure: success=false with a safe error; no partial page. Login and safe reads try transient errors up to three times with exponential backoff and jitter. Check inputs, connection, and mailbox access. Effects: Read-only in the current organization's mailbox. Includes previously downloaded faxes so imports can retry. Examples: {"limit":1} can return {"faxes":[],"count":0,"has_more":false,"next_offset":null,"success":true,"error":null,"failure_category":null} under default.

### [Read Fax Details](https://genhealth.ai/docs/workflows/integrations/e-fax/efax_read_fax.md)

- Handler: `efax_read_fax`
- Connection type: `efax`
- External effect: `read`
- Inputs: `fax_id`
- Outputs: `fax`, `success`, `error`

Purpose: Read safe details for one eFax record without opening its document. Use when: Inspect a fax listed in the organization's connected eFax mailbox. Inputs: Required fax_id UUID string from List Received Faxes. Outputs: fax object with fax_id:string and nullable pages:integer, size:integer, image_downloaded:boolean, fax_status:string, completed_timestamp:string, direction:string; success:boolean, error:string|null, failure_category:null. The runner wraps successful output under default. No title or file bytes. Success: success=true, error=null, and fax.fax_id matches the requested ID. Failure: success=false with a safe error and no fax object; check the ID and mailbox access. Login and safe reads try transient errors up to three times with exponential backoff and jitter. Effects: Read-only in the current organization's mailbox; does not mark the fax read. Examples: {"fax_id":"00000000-0000-0000-0000-000000000001"} can return a fax object with fax_id="00000000-0000-0000-0000-000000000001", pages=3, success=true and error=null under default.
