# Procfu

ProcFu enhances Podio's capabilities by providing a suite of automation tools and functions, enabling users to create scripts, mini apps, and integrate with various services to streamline workflows.

- **Category:** developer tools
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 12
- **Triggers:** 0
- **Slug:** `PROCFU`
- **Version:** 20260312_00

## Tools

### Array Difference Deletions

**Slug:** `PROCFU_ARRAY_DIFF_DEL`

Tool to return items removed when comparing two JSON arrays. Use when you have two arrays and need to know which elements were deleted.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `json_array_a` | array | Yes | First JSON array to compare against the second array |
| `json_array_b` | array | Yes | Second JSON array to compare against the first array |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Array Diff New

**Slug:** `PROCFU_ARRAY_DIFF_NEW`

Tool to return items added in the second JSON array. Use when you need to identify new elements between two list versions. Example: Compare [1,3,4] vs [1,3,6] to get [6].

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `json_array_a` | array | Yes | First JSON array to compare against the second. |
| `json_array_b` | array | Yes | Second JSON array. Items present here but not in the first will be returned. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Array Diff Same

**Slug:** `PROCFU_ARRAY_DIFF_SAME`

Tool to get items present in both JSON arrays. Computes the intersection locally to avoid external API dependency. Rules: - Two items are considered equal if their JSON representations match (with sorted keys for objects). - The result contains unique items present in both arrays, preserving the order they appear in json_array_b.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `json_array_a` | array | Yes | First JSON array |
| `json_array_b` | array | Yes | Second JSON array |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Array Sort

**Slug:** `PROCFU_ARRAY_SORT`

Tool to sort a JSON array of values. Use when you need to order elements ascending or descending.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `reverse` | boolean | No | True for descending order; defaults to ascending order. |
| `json_array` | array | Yes | JSON array to sort (e.g., [3, 1, 2]). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Copy Podio files to FTP

**Slug:** `PROCFU_COPY_PODIO_FILES_TO_FTP`

Tool to copy files matching a pattern from a Podio item to an FTP server. Use when you need to transfer specific files from Podio to an external FTP/SFTP location based on file name patterns.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `pattern` | string | Yes | File pattern to match (e.g., '*.pdf' for all PDF files, '*.png' for PNG images). Use wildcards to specify which files to copy. |
| `conn_name` | string | Yes | Name of the (S)FTP connection configured in ProcFu to use for the file transfer. |
| `directory` | string | Yes | Target directory path on the FTP server where files should be copied (e.g., '/uploads', '/documents/invoices'). |
| `podio_item_id` | integer | Yes | The ID of the Podio item containing the files to copy. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate dummy data

**Slug:** `PROCFU_DUMMY_DATA`

Tool to generate dummy data. Use when you need random emails, text, numbers, dates, people, addresses, or images for testing or placeholder data.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("int" | "price" | "decimal2" | "date" | "dateTime" | "word" | "title" | "sentence" | "paragraph" | "text" | "loremText" | "html" | "loremHtml" | "name" | "firstName" | "lastName" | "company" | "jobTitle" | "catchPhrase" | "bullShit" | "phoneNumber" | "tollFree" | "address" | "streetAddress" | "city" | "state" | "zip" | "country" | "lat" | "long" | "email" | "username" | "password" | "domain" | "url" | "ipv4" | "ipv6" | "cardNumber" | "cardExp" | "iban" | "swift" | "image" | "portrait" | "landscape" | "smallImage" | "avatar" | "userFace") | Yes | Type of dummy data to generate. Choose one of the supported types for numbers, text, people, addresses, etc. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Google Drive Delete

**Slug:** `PROCFU_GOOGLE_DRIVE_DELETE`

Tool to delete a Google Drive file or folder. Use after obtaining a valid Google Drive ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `google_id` | string | Yes | ID of the Google Drive file or folder to delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Ask question to OpenAI GPT

**Slug:** `PROCFU_OPEN_AI_GPT`

Tool to ask a question to OpenAI GPT. Use when you need a conversational answer from GPT.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `model` | string | No | Model to use; default is 'gpt-4o-mini'. |
| `prompt` | string | Yes | Prompt for GPT. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate Image with OpenAI

**Slug:** `PROCFU_OPEN_AI_IMAGE`

Tool to generate an image via OpenAI API. Use when you need programmatic image creation from a text prompt.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `prompt` | string | Yes | Text prompt describing the desired image to generate. |
| `orientation` | string ("square" | "portrait" | "landscape") | Yes | Orientation of the generated image. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Google Sheet contents as array

**Slug:** `PROCFU_SHEETS_GET`

Tool to get sheet contents as array. Use when you need to retrieve Google Sheet data as an associative array.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `range` | string | Yes | Name of the sheet/tab within the spreadsheet to retrieve. |
| `sheet_id` | string | Yes | Google Sheet ID to fetch data from. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Google Sheets Metadata

**Slug:** `PROCFU_SHEETS_GET_METADATA`

Tool to retrieve metadata of a Google Sheets spreadsheet, including sheet names, IDs, and properties. Use when you need sheet-level details for a given spreadsheet ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `spreadsheet_id` | string | Yes | ID of the Google Sheets spreadsheet to retrieve metadata for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload image to Podio item field

**Slug:** `PROCFU_UPLOAD_PODIO_ITEM_IMAGE`

Tool to upload a remote image file by URL to a Podio item image field. Use when you need to attach an image from a web URL to a specific field in a Podio item.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `hook` | boolean | No | Whether to create a hook event in Podio for this file upload. Set to true to trigger webhooks, false to skip them. |
| `silent` | boolean | No | Whether to include the silent flag when uploading. Set to true to suppress notifications in Podio. |
| `headers` | string | No | Optional HTTP headers to send when fetching the remote file. Use comma-separated format for multiple headers (e.g., 'User-Agent: MyBot, Accept: image/*'). |
| `file_url` | string | Yes | Web address (URL) of the remote file to upload. Must be a publicly accessible image URL. |
| `podio_item_id` | integer | Yes | Identifier for the Podio item to attach the image to. |
| `image_field_id` | string | Yes | External ID of the image field in the Podio item where the file will be uploaded. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
