{
    "name": "Integration Callin.io, OpenAI (ChatGPT, Whisper, DALL-E), Google Calendar, Email",
    "flow": [
        {
            "id": 1,
            "module": "app#callin-app-g4vx66:w1r1r",
            "version": 1,
            "metadata": {
                "designer": {
                    "x": -543,
                    "y": 11,
                    "messages": [
                        {
                            "category": "setup",
                            "severity": "error",
                            "message": "Value must not be empty."
                        }
                    ]
                }
            }
        },
        {
            "id": 2,
            "module": "openai-gpt-3:CreateCompletion",
            "version": 1,
            "parameters": {
                "__IMTCONN__": 1043469
            },
            "mapper": {
                "select": "chat",
                "temperature": "1",
                "top_p": "1",
                "n_completions": "1",
                "model": "gpt-4o",
                "max_tokens": "2048",
                "messages": [
                    {
                        "role": "assistant",
                        "content": "You are an assistant designed to process phone call transcriptions. Based on the transcription provided, return one of the following outputs strictly:\n\n1. If the patient wants to reschedule the appointment, return only the query required to search for the event in Google Calendar. The query must be in the format: \"<Event Title>\" OR \"<Date>\" OR \"<Other identifiable information from the transcription>\".\n\n2. If the patient confirms the appointment, return strictly \"yes\".\n\n3. If the patient does not answer the call \"no answer\".\n\nDo not provide any explanation, additional text, or comments—just the required output.\n\nHere is the transcription:\n{{1.transcript}}"
                    }
                ],
                "response_format": "text"
            },
            "metadata": {
                "designer": {
                    "x": -240,
                    "y": 14
                },
                "restore": {
                    "parameters": {
                        "__IMTCONN__": {
                            "label": "My OpenAI connection",
                            "data": {
                                "scoped": "true",
                                "connection": "openai-gpt-3"
                            }
                        }
                    },
                    "expect": {
                        "select": {
                            "label": "Create a Chat Completion (GPT and o1 models)"
                        },
                        "logit_bias": {
                            "mode": "chose"
                        },
                        "stop": {
                            "mode": "chose"
                        },
                        "additionalParameters": {
                            "mode": "chose"
                        },
                        "model": {
                            "mode": "chose",
                            "label": "gpt-4o (system)"
                        },
                        "messages": {
                            "mode": "chose",
                            "items": [
                                {
                                    "role": {
                                        "mode": "chose",
                                        "label": "Assistant"
                                    }
                                }
                            ]
                        },
                        "response_format": {
                            "mode": "chose",
                            "label": "Text"
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "__IMTCONN__",
                        "type": "account:openai-gpt-3",
                        "label": "Connection",
                        "required": true
                    }
                ],
                "expect": [
                    {
                        "name": "select",
                        "type": "select",
                        "label": "Select Method",
                        "required": true,
                        "validate": {
                            "enum": [
                                "chat",
                                "prompt"
                            ]
                        }
                    },
                    {
                        "name": "temperature",
                        "type": "number",
                        "label": "Temperature",
                        "validate": {
                            "max": 2,
                            "min": 0
                        }
                    },
                    {
                        "name": "top_p",
                        "type": "number",
                        "label": "Top P",
                        "validate": {
                            "max": 1,
                            "min": 0
                        }
                    },
                    {
                        "name": "n_completions",
                        "type": "number",
                        "label": "Number"
                    },
                    {
                        "name": "frequency_penalty",
                        "type": "number",
                        "label": "Frequency Penalty",
                        "validate": {
                            "max": 2,
                            "min": -2
                        }
                    },
                    {
                        "name": "presence_penalty",
                        "type": "number",
                        "label": "Presence Penalty",
                        "validate": {
                            "max": 2,
                            "min": -2
                        }
                    },
                    {
                        "name": "logit_bias",
                        "type": "array",
                        "label": "Token Probability",
                        "spec": {
                            "spec": [
                                {
                                    "name": "token",
                                    "type": "text",
                                    "label": "Token ID",
                                    "required": true
                                },
                                {
                                    "name": "probability",
                                    "type": "number",
                                    "label": "Probability",
                                    "required": true,
                                    "validate": {
                                        "max": 100,
                                        "min": -100
                                    }
                                }
                            ],
                            "type": "collection",
                            "label": "Token Probability",
                            "name": "value"
                        }
                    },
                    {
                        "name": "seed",
                        "type": "integer",
                        "label": "Seed"
                    },
                    {
                        "name": "stop",
                        "type": "array",
                        "label": "Stop Sequences",
                        "validate": {
                            "maxItems": 4
                        },
                        "spec": {
                            "type": "text",
                            "label": "Stop Sequence",
                            "name": "value"
                        }
                    },
                    {
                        "name": "additionalParameters",
                        "type": "array",
                        "label": "Other Input Parameters",
                        "spec": {
                            "spec": [
                                {
                                    "name": "key",
                                    "type": "text",
                                    "label": "Parameter Name",
                                    "required": true
                                },
                                {
                                    "name": "type",
                                    "type": "select",
                                    "label": "Input Type",
                                    "options": [
                                        {
                                            "label": "Text",
                                            "value": "text",
                                            "nested": [
                                                {
                                                    "name": "value",
                                                    "type": "text",
                                                    "label": "Parameter Value"
                                                }
                                            ],
                                            "default": true
                                        },
                                        {
                                            "label": "Number",
                                            "value": "number",
                                            "nested": [
                                                {
                                                    "name": "value",
                                                    "type": "number",
                                                    "label": "Parameter Value"
                                                }
                                            ]
                                        },
                                        {
                                            "label": "Boolean",
                                            "value": "boolean",
                                            "nested": [
                                                {
                                                    "name": "value",
                                                    "type": "boolean",
                                                    "label": "Parameter Value"
                                                }
                                            ]
                                        },
                                        {
                                            "label": "Date",
                                            "value": "date",
                                            "nested": [
                                                {
                                                    "name": "value",
                                                    "type": "date",
                                                    "label": "Parameter Value"
                                                }
                                            ]
                                        },
                                        {
                                            "label": "Any",
                                            "value": "any",
                                            "nested": [
                                                {
                                                    "name": "value",
                                                    "type": "any",
                                                    "label": "Parameter Value"
                                                }
                                            ]
                                        }
                                    ]
                                }
                            ],
                            "type": "collection",
                            "label": "Input Parameter",
                            "name": "value"
                        }
                    },
                    {
                        "name": "model",
                        "type": "select",
                        "label": "Model",
                        "required": true
                    },
                    {
                        "name": "max_tokens",
                        "type": "uinteger",
                        "label": "Max Completion Tokens"
                    },
                    {
                        "name": "messages",
                        "type": "array",
                        "label": "Messages",
                        "required": true,
                        "spec": {
                            "label": "Message",
                            "type": "collection",
                            "spec": [
                                {
                                    "name": "role",
                                    "type": "select",
                                    "label": "Role",
                                    "required": true,
                                    "options": {
                                        "store": [
                                            {
                                                "label": "Developer / System",
                                                "value": "system",
                                                "nested": [
                                                    {
                                                        "help": "Text content of the message on behalf of the selected __Role__.",
                                                        "name": "content",
                                                        "type": "text",
                                                        "label": "Text Content"
                                                    }
                                                ]
                                            },
                                            {
                                                "label": "User",
                                                "value": "user",
                                                "nested": [
                                                    {
                                                        "help": "Text content of the message on behalf of the selected __Role__.",
                                                        "name": "content",
                                                        "type": "text",
                                                        "label": "Text Content"
                                                    },
                                                    {
                                                        "name": "imageInputType",
                                                        "type": "select",
                                                        "label": "Image Input Type",
                                                        "mappable": false,
                                                        "options": [
                                                            {
                                                                "value": "url",
                                                                "label": "URL",
                                                                "nested": [
                                                                    {
                                                                        "name": "imageUrl",
                                                                        "label": "Image URL",
                                                                        "type": "url",
                                                                        "help": "Make sure to use a publicly accessible URL.\nYou can test if your image is publicly accessible by opening the link in an incognito tab."
                                                                    }
                                                                ]
                                                            },
                                                            {
                                                                "value": "file",
                                                                "label": "Image File",
                                                                "nested": [
                                                                    {
                                                                        "name": "imageFile",
                                                                        "label": "Image",
                                                                        "type": "collection",
                                                                        "spec": [
                                                                            {
                                                                                "name": "imageFilename",
                                                                                "type": "filename",
                                                                                "label": "Image Filename",
                                                                                "semantic": "file:name",
                                                                                "extension": [
                                                                                    "jpg",
                                                                                    "jpeg",
                                                                                    "png",
                                                                                    "webp",
                                                                                    "gif"
                                                                                ],
                                                                                "help": "Accepted extensions: `.jpg`, `.jpeg`, `.png`, `.webp` and `.gif`."
                                                                            },
                                                                            {
                                                                                "name": "imageData",
                                                                                "type": "buffer",
                                                                                "label": "Image Data",
                                                                                "semantic": "file:data"
                                                                            }
                                                                        ]
                                                                    }
                                                                ]
                                                            }
                                                        ]
                                                    },
                                                    {
                                                        "name": "imageDetail",
                                                        "type": "select",
                                                        "label": "Image Detail",
                                                        "advanced": true,
                                                        "options": [
                                                            {
                                                                "value": "auto",
                                                                "default": true,
                                                                "label": "Auto"
                                                            },
                                                            {
                                                                "value": "high",
                                                                "label": "High"
                                                            },
                                                            {
                                                                "value": "low",
                                                                "label": "Low"
                                                            }
                                                        ]
                                                    }
                                                ]
                                            },
                                            {
                                                "label": "Assistant",
                                                "value": "assistant",
                                                "nested": [
                                                    {
                                                        "help": "Text content of the message on behalf of the selected __Role__.",
                                                        "name": "content",
                                                        "type": "text",
                                                        "label": "Text Content"
                                                    }
                                                ]
                                            }
                                        ]
                                    }
                                }
                            ],
                            "name": "value"
                        }
                    },
                    {
                        "name": "response_format",
                        "type": "select",
                        "label": "Response Format",
                        "validate": {
                            "enum": [
                                "text",
                                "json_object"
                            ]
                        }
                    }
                ],
                "interface": [
                    {
                        "name": "result",
                        "type": "any",
                        "label": "Result"
                    },
                    {
                        "name": "id",
                        "type": "text",
                        "label": "ID"
                    },
                    {
                        "name": "object",
                        "type": "text",
                        "label": "Object"
                    },
                    {
                        "name": "created",
                        "type": "date",
                        "label": "Created"
                    },
                    {
                        "name": "model",
                        "type": "text",
                        "label": "Model"
                    },
                    {
                        "name": "choices",
                        "spec": {
                            "spec": [
                                {
                                    "name": "text",
                                    "type": "text",
                                    "label": "Text"
                                },
                                {
                                    "name": "index",
                                    "type": "number",
                                    "label": "Index"
                                },
                                {
                                    "name": "logprobs",
                                    "type": "text",
                                    "label": "Log Probs"
                                },
                                {
                                    "name": "finish_reason",
                                    "type": "text",
                                    "label": "Finish Reason"
                                },
                                {
                                    "name": "message",
                                    "spec": [
                                        {
                                            "name": "role",
                                            "type": "text",
                                            "label": "Role"
                                        },
                                        {
                                            "name": "content",
                                            "type": "text",
                                            "label": "Content"
                                        },
                                        {
                                            "name": "refusal",
                                            "type": "text",
                                            "label": "Refusal"
                                        }
                                    ],
                                    "type": "collection",
                                    "label": "Message"
                                }
                            ],
                            "type": "collection"
                        },
                        "type": "array",
                        "label": "Choices"
                    },
                    {
                        "name": "usage",
                        "spec": [
                            {
                                "name": "prompt_tokens",
                                "type": "number",
                                "label": "Prompt Tokens"
                            },
                            {
                                "name": "completion_tokens",
                                "type": "text",
                                "label": "Completion Tokens"
                            },
                            {
                                "name": "total_tokens",
                                "type": "number",
                                "label": "Total Tokens"
                            },
                            {
                                "name": "prompt_tokens_details",
                                "spec": [
                                    {
                                        "name": "cached_tokens",
                                        "type": "uinteger",
                                        "label": "Cached Tokens"
                                    },
                                    {
                                        "name": "text_tokens",
                                        "type": "uinteger",
                                        "label": "Text Tokens"
                                    },
                                    {
                                        "name": "image_tokens",
                                        "type": "uinteger",
                                        "label": "Image Tokens"
                                    },
                                    {
                                        "name": "audio_tokens",
                                        "type": "uinteger",
                                        "label": "Audio Tokens"
                                    }
                                ],
                                "type": "collection",
                                "label": "Prompt Tokens Details"
                            },
                            {
                                "name": "completion_tokens_details",
                                "spec": [
                                    {
                                        "name": "reasoning_tokens",
                                        "type": "uinteger",
                                        "label": "Reasoning Tokens"
                                    },
                                    {
                                        "name": "text_tokens",
                                        "type": "uinteger",
                                        "label": "Text Tokens"
                                    },
                                    {
                                        "name": "audio_tokens",
                                        "type": "uinteger",
                                        "label": "Audio Tokens"
                                    },
                                    {
                                        "name": "accepted_prediction_tokens",
                                        "type": "uinteger",
                                        "label": "Accepted Prediction Tokens"
                                    },
                                    {
                                        "name": "rejected_prediction_tokens",
                                        "type": "uinteger",
                                        "label": "Rejected Prediction Tokens"
                                    }
                                ],
                                "type": "collection",
                                "label": "Completion Tokens Details"
                            }
                        ],
                        "type": "collection",
                        "label": "Usage"
                    },
                    {
                        "name": "system_fingerprint",
                        "type": "text",
                        "label": "System Fingerprint"
                    }
                ]
            }
        },
        {
            "id": 8,
            "module": "builtin:BasicRouter",
            "version": 1,
            "mapper": null,
            "metadata": {
                "designer": {
                    "x": 60,
                    "y": 14
                }
            },
            "routes": [
                {
                    "flow": [
                        {
                            "id": 6,
                            "module": "google-calendar:searchEvents",
                            "version": 5,
                            "parameters": {
                                "__IMTCONN__": 1284548
                            },
                            "filter": {
                                "name": "Check",
                                "conditions": [
                                    [
                                        {
                                            "a": "{{2.result}}",
                                            "o": "text:notequal",
                                            "b": "yes"
                                        }
                                    ],
                                    [
                                        {
                                            "a": "{{2.result}}",
                                            "o": "text:notequal",
                                            "b": "no answer"
                                        }
                                    ]
                                ]
                            },
                            "mapper": {
                                "calendar": "addressbook#contacts@group.v.calendar.google.com",
                                "singleEvents": false,
                                "q": "{{2.result}}",
                                "limit": "10"
                            },
                            "metadata": {
                                "designer": {
                                    "x": 476,
                                    "y": 18
                                },
                                "restore": {
                                    "parameters": {
                                        "__IMTCONN__": {
                                            "label": "My Google connection (hello@callin.io)",
                                            "data": {
                                                "scoped": "true",
                                                "connection": "google"
                                            }
                                        }
                                    },
                                    "expect": {
                                        "calendar": {
                                            "mode": "chose",
                                            "label": "Birthdays"
                                        },
                                        "eventTypes": {
                                            "mode": "chose"
                                        },
                                        "orderBy": {
                                            "mode": "chose",
                                            "label": "Empty"
                                        }
                                    }
                                },
                                "parameters": [
                                    {
                                        "name": "__IMTCONN__",
                                        "type": "account:google",
                                        "label": "Connection",
                                        "required": true
                                    }
                                ],
                                "expect": [
                                    {
                                        "name": "calendar",
                                        "type": "select",
                                        "label": "Calendar ID",
                                        "required": true
                                    },
                                    {
                                        "name": "timeMin",
                                        "type": "date",
                                        "label": "Start Date",
                                        "time": true
                                    },
                                    {
                                        "name": "timeMax",
                                        "type": "date",
                                        "label": "End Date",
                                        "time": true
                                    },
                                    {
                                        "name": "updatedMin",
                                        "type": "date",
                                        "label": "Updated from",
                                        "time": true
                                    },
                                    {
                                        "name": "singleEvents",
                                        "type": "boolean",
                                        "label": "Single Events",
                                        "required": true
                                    },
                                    {
                                        "name": "q",
                                        "type": "text",
                                        "label": "Query"
                                    },
                                    {
                                        "name": "eventTypes",
                                        "type": "select",
                                        "label": "Event Types",
                                        "multiple": true,
                                        "validate": {
                                            "enum": [
                                                "default",
                                                "fromGmail",
                                                "focusTime",
                                                "outOfOffice",
                                                "workingLocation"
                                            ]
                                        }
                                    },
                                    {
                                        "name": "orderBy",
                                        "type": "select",
                                        "label": "Order By",
                                        "validate": {
                                            "enum": [
                                                "startTime",
                                                "updated"
                                            ]
                                        }
                                    },
                                    {
                                        "name": "limit",
                                        "type": "uinteger",
                                        "label": "Limit"
                                    },
                                    {
                                        "name": "calendar",
                                        "type": "select",
                                        "label": "Calendar ID",
                                        "required": true
                                    },
                                    {
                                        "name": "timeMin",
                                        "type": "date",
                                        "label": "Start Date",
                                        "time": true
                                    },
                                    {
                                        "name": "timeMax",
                                        "type": "date",
                                        "label": "End Date",
                                        "time": true
                                    },
                                    {
                                        "name": "updatedMin",
                                        "type": "date",
                                        "label": "Updated from",
                                        "time": true
                                    },
                                    {
                                        "name": "singleEvents",
                                        "type": "boolean",
                                        "label": "Single Events",
                                        "required": true
                                    },
                                    {
                                        "name": "q",
                                        "type": "text",
                                        "label": "Query"
                                    },
                                    {
                                        "name": "eventTypes",
                                        "type": "select",
                                        "label": "Event Types",
                                        "multiple": true,
                                        "validate": {
                                            "enum": [
                                                "default",
                                                "fromGmail",
                                                "focusTime",
                                                "outOfOffice",
                                                "workingLocation"
                                            ]
                                        }
                                    },
                                    {
                                        "name": "orderBy",
                                        "type": "select",
                                        "label": "Order By",
                                        "validate": {
                                            "enum": [
                                                "startTime",
                                                "updated"
                                            ]
                                        }
                                    },
                                    {
                                        "name": "limit",
                                        "type": "uinteger",
                                        "label": "Limit"
                                    }
                                ]
                            }
                        },
                        {
                            "id": 3,
                            "module": "google-calendar:deleteAnEvent",
                            "version": 5,
                            "parameters": {
                                "__IMTCONN__": 1284548
                            },
                            "mapper": {
                                "calendar": "addressbook#contacts@group.v.calendar.google.com",
                                "event": "{{6.id}}"
                            },
                            "metadata": {
                                "designer": {
                                    "x": 810,
                                    "y": 23
                                },
                                "restore": {
                                    "parameters": {
                                        "__IMTCONN__": {
                                            "label": "My Google connection (hello@callin.io)",
                                            "data": {
                                                "scoped": "true",
                                                "connection": "google"
                                            }
                                        }
                                    },
                                    "expect": {
                                        "calendar": {
                                            "mode": "chose",
                                            "label": "Birthdays"
                                        },
                                        "sendUpdates": {
                                            "mode": "chose",
                                            "label": "Empty"
                                        },
                                        "event": {
                                            "mode": "edit"
                                        }
                                    }
                                },
                                "parameters": [
                                    {
                                        "name": "__IMTCONN__",
                                        "type": "account:google",
                                        "label": "Connection",
                                        "required": true
                                    }
                                ],
                                "expect": [
                                    {
                                        "name": "calendar",
                                        "type": "select",
                                        "label": "Calendar ID",
                                        "mode": "edit",
                                        "required": true
                                    },
                                    {
                                        "name": "sendUpdates",
                                        "type": "select",
                                        "label": "Send notifications about the event deletion",
                                        "validate": {
                                            "enum": [
                                                "all",
                                                "externalOnly",
                                                "none"
                                            ]
                                        }
                                    },
                                    {
                                        "name": "calendar",
                                        "type": "select",
                                        "label": "Calendar ID",
                                        "mode": "edit",
                                        "required": true
                                    },
                                    {
                                        "name": "sendUpdates",
                                        "type": "select",
                                        "label": "Send notifications about the event deletion",
                                        "validate": {
                                            "enum": [
                                                "all",
                                                "externalOnly",
                                                "none"
                                            ]
                                        }
                                    },
                                    {
                                        "name": "event",
                                        "type": "select",
                                        "label": "Event ID",
                                        "required": true
                                    }
                                ]
                            }
                        }
                    ]
                },
                {
                    "flow": [
                        {
                            "id": 7,
                            "module": "email:ActionSendEmail",
                            "version": 7,
                            "filter": {
                                "name": "confirmed appointments",
                                "conditions": [
                                    [
                                        {
                                            "a": "{{2.result}}",
                                            "o": "text:equal",
                                            "b": "yes"
                                        }
                                    ]
                                ]
                            },
                            "metadata": {
                                "designer": {
                                    "x": 356,
                                    "y": -210,
                                    "messages": [
                                        {
                                            "category": "setup",
                                            "severity": "error",
                                            "message": "Field must not be empty."
                                        }
                                    ]
                                }
                            }
                        }
                    ]
                }
            ]
        }
    ],
    "metadata": {
        "instant": true,
        "version": 1,
        "scenario": {
            "roundtrips": 1,
            "maxErrors": 3,
            "autoCommit": true,
            "autoCommitTriggerLast": true,
            "sequential": false,
            "slots": null,
            "confidential": false,
            "dataloss": false,
            "dlq": false,
            "freshVariables": false
        },
        "designer": {
            "orphans": []
        },
        "zone": "us2.make.com"
    }
}