{
    "name": "Extract data from emails with ChatGPT and add new leads to Keap",
    "flow": [
        {
            "id": 1,
            "module": "gateway:CustomMailHook",
            "version": 1,
            "parameters": {
                "maxResults": 1
            },
            "mapper": {},
            "metadata": {
                "designer": {
                    "x": 0,
                    "y": 0
                },
                "restore": {
                    "parameters": {
                        "hook": {
                            "data": {
                                "editable": "false"
                            },
                            "label": "My gateway-mailhook webhook"
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "hook",
                        "type": "hook:gateway-mailhook",
                        "label": "Mailhook"
                    },
                    {
                        "name": "maxResults",
                        "type": "number",
                        "label": "Maximum number of results"
                    }
                ]
            }
        },
        {
            "id": 2,
            "module": "openai-gpt-3:CreateCompletion",
            "version": 1,
            "parameters": {},
            "mapper": {
                "model": "gpt-3.5-turbo",
                "top_p": "1",
                "select": "chat",
                "messages": [
                    {
                        "role": "system",
                        "content": "Extract lead info w/ strict fieldName format. Return field values only. No explanation & no verbose. Detect/return FirstName,LastName,JobTitle,PrimaryPhone,Email,StreetAddress,City,State,ZipCode,Website,Message; for empty values, return null.nnFor the State, return it as a 2-digit abbreviation only.nnLead source will be indicated in the first line of the body text.  nnThe text to parse is: {{1.text}}"
                    }
                ],
                "max_tokens": "1000",
                "temperature": "1",
                "n_completions": "1",
                "response_format": "text"
            },
            "metadata": {
                "designer": {
                    "x": 300,
                    "y": 0
                },
                "restore": {
                    "expect": {
                        "stop": {
                            "mode": "chose"
                        },
                        "model": {
                            "mode": "chose",
                            "label": "gpt-3.5-turbo"
                        },
                        "select": {
                            "label": "Create a Chat Completion (GPT Models)"
                        },
                        "messages": {
                            "mode": "chose",
                            "items": [
                                {
                                    "role": {
                                        "mode": "chose",
                                        "label": "System"
                                    }
                                }
                            ]
                        },
                        "logit_bias": {
                            "mode": "chose"
                        },
                        "response_format": {
                            "mode": "chose",
                            "label": "Text"
                        },
                        "additionalParameters": {
                            "mode": "chose"
                        }
                    },
                    "parameters": {
                        "__IMTCONN__": {
                            "data": {
                                "scoped": "true",
                                "connection": "openai-gpt-3"
                            },
                            "label": "Make Ent GPT4"
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "__IMTCONN__",
                        "type": "account:openai-gpt-3",
                        "label": "Connection"
                    }
                ],
                "expect": [
                    {
                        "name": "select",
                        "type": "select",
                        "label": "Select Method",
                        "required": true,
                        "validate": {
                            "enum": [
                                "chat",
                                "prompt"
                            ]
                        }
                    },
                    {
                        "name": "max_tokens",
                        "type": "number",
                        "label": "Max Tokens",
                        "required": true
                    },
                    {
                        "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",
                        "spec": {
                            "name": "value",
                            "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"
                        },
                        "type": "array",
                        "label": "Token Probability"
                    },
                    {
                        "name": "response_format",
                        "type": "select",
                        "label": "Response Format",
                        "validate": {
                            "enum": [
                                "text",
                                "json_object"
                            ]
                        }
                    },
                    {
                        "name": "seed",
                        "type": "integer",
                        "label": "Seed"
                    },
                    {
                        "name": "stop",
                        "spec": {
                            "name": "value",
                            "type": "text",
                            "label": "Stop Sequence"
                        },
                        "type": "array",
                        "label": "Stop Sequences",
                        "validate": {
                            "maxItems": 4
                        }
                    },
                    {
                        "name": "additionalParameters",
                        "spec": {
                            "name": "value",
                            "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"
                        },
                        "type": "array",
                        "label": "Other Input Parameters"
                    },
                    {
                        "name": "model",
                        "type": "select",
                        "label": "Model",
                        "required": true
                    },
                    {
                        "name": "messages",
                        "spec": {
                            "name": "value",
                            "spec": [
                                {
                                    "name": "role",
                                    "type": "select",
                                    "label": "Role",
                                    "options": [
                                        {
                                            "label": "System",
                                            "value": "system"
                                        },
                                        {
                                            "label": "User",
                                            "value": "user"
                                        },
                                        {
                                            "label": "Assistant",
                                            "value": "assistant"
                                        }
                                    ],
                                    "required": true
                                },
                                {
                                    "name": "content",
                                    "type": "text",
                                    "label": "Message Content"
                                }
                            ],
                            "type": "collection",
                            "label": "Message"
                        },
                        "type": "array",
                        "label": "Messages",
                        "required": true
                    }
                ]
            }
        },
        {
            "id": 3,
            "module": "json:ParseJSON",
            "version": 1,
            "parameters": {
                "type": ""
            },
            "mapper": {
                "json": "{{2.choices[].message.content}}"
            },
            "metadata": {
                "designer": {
                    "x": 600,
                    "y": 0
                },
                "restore": {
                    "parameters": {
                        "type": {
                            "label": "Choose a data structure"
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "type",
                        "type": "udt",
                        "label": "Data structure"
                    }
                ],
                "expect": [
                    {
                        "name": "json",
                        "type": "text",
                        "label": "JSON string",
                        "required": true
                    }
                ]
            }
        },
        {
            "id": 8,
            "module": "infusionsoft:createOrUpdateContact",
            "version": 1,
            "parameters": {},
            "mapper": {
                "notes": "",
                "prefix": "",
                "suffix": "",
                "company": {
                    "id": ""
                },
                "website": "",
                "birthday": "",
                "owner_id": 1,
                "addresses": [
                    {
                        "field": "BILLING",
                        "line1": "{{3.StreetAddress}}",
                        "line2": "",
                        "region": "{{if(length(3.State) > 1; "US-" + 3.State; null)}}",
                        "locality": "{{3.City}}",
                        "postal_code": "{{3.ZipCode}}",
                        "country_code": "USA"
                    }
                ],
                "job_title": "{{3.JobTitle}}",
                "given_name": "{{3.FirstName}}",
                "family_name": "{{3.LastName}}",
                "fax_numbers": [],
                "middle_name": "",
                "custom_fields": [],
                "opt_in_reason": "requested info",
                "phone_numbers": [
                    {
                        "type": "",
                        "field": "PHONE1",
                        "number": "{{3.PrimaryPhone}}",
                        "extension": ""
                    }
                ],
                "lead_source_id": "",
                "preferred_name": "",
                "email_addresses": [
                    {
                        "email": "{{3.Email}}",
                        "field": "EMAIL1"
                    }
                ],
                "duplicate_option": "Email"
            },
            "metadata": {
                "designer": {
                    "x": 900,
                    "y": 0
                },
                "restore": {
                    "expect": {
                        "prefix": {
                            "mode": "chose",
                            "label": "Empty"
                        },
                        "suffix": {
                            "mode": "chose",
                            "label": "Empty"
                        },
                        "company": {
                            "nested": {
                                "id": {
                                    "mode": "edit"
                                }
                            }
                        },
                        "owner_id": {
                            "mode": "chose",
                            "label": "Jeff Arnold "
                        },
                        "addresses": {
                            "mode": "chose",
                            "items": [
                                {
                                    "field": {
                                        "mode": "chose",
                                        "label": "Billing"
                                    }
                                }
                            ]
                        },
                        "fax_numbers": {
                            "mode": "chose"
                        },
                        "contact_type": {
                            "mode": "chose"
                        },
                        "custom_fields": {
                            "mode": "chose"
                        },
                        "phone_numbers": {
                            "mode": "chose",
                            "items": [
                                {
                                    "type": {
                                        "mode": "chose",
                                        "label": "Empty"
                                    },
                                    "field": {
                                        "mode": "chose",
                                        "label": "Phone 1"
                                    }
                                }
                            ]
                        },
                        "email_addresses": {
                            "mode": "chose",
                            "items": [
                                {
                                    "field": {
                                        "mode": "chose",
                                        "label": "Email 1"
                                    }
                                }
                            ]
                        },
                        "duplicate_option": {
                            "label": "Email"
                        }
                    },
                    "parameters": {
                        "__IMTCONN__": {
                            "data": {
                                "scoped": "true",
                                "connection": "infusionsoft"
                            },
                            "label": "My Keap connection (development@make.com)"
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "__IMTCONN__",
                        "type": "account:infusionsoft",
                        "label": "Connection"
                    }
                ],
                "expect": [
                    {
                        "name": "duplicate_option",
                        "type": "select",
                        "label": "Duplicate Option",
                        "required": true,
                        "validate": {
                            "enum": [
                                "Email",
                                "EmailAndName"
                            ]
                        }
                    },
                    {
                        "name": "given_name",
                        "type": "text",
                        "label": "First Name"
                    },
                    {
                        "name": "family_name",
                        "type": "text",
                        "label": "Last Name"
                    },
                    {
                        "name": "middle_name",
                        "type": "text",
                        "label": "Middle Name"
                    },
                    {
                        "name": "job_title",
                        "type": "text",
                        "label": "Job Title"
                    },
                    {
                        "name": "company",
                        "spec": [
                            {
                                "mode": "edit",
                                "name": "id",
                                "type": "select",
                                "label": "Company ID"
                            }
                        ],
                        "type": "collection",
                        "label": "Company"
                    },
                    {
                        "name": "contact_type",
                        "type": "select",
                        "label": "Person Type"
                    },
                    {
                        "mode": "edit",
                        "name": "owner_id",
                        "type": "select",
                        "label": "Owner ID"
                    },
                    {
                        "name": "addresses",
                        "spec": [
                            {
                                "name": "line1",
                                "type": "text",
                                "label": "Street Address 1"
                            },
                            {
                                "name": "line2",
                                "type": "text",
                                "label": "Street Address 2"
                            },
                            {
                                "name": "locality",
                                "type": "text",
                                "label": "City"
                            },
                            {
                                "name": "region",
                                "type": "text",
                                "label": "Region"
                            },
                            {
                                "name": "country_code",
                                "type": "text",
                                "label": "Country code"
                            },
                            {
                                "name": "postal_code",
                                "type": "text",
                                "label": "Postal code"
                            },
                            {
                                "name": "field",
                                "type": "select",
                                "label": "Field",
                                "options": [
                                    {
                                        "label": "Billing",
                                        "value": "BILLING"
                                    },
                                    {
                                        "label": "Shipping",
                                        "value": "SHIPPING"
                                    },
                                    {
                                        "label": "Other",
                                        "value": "OTHER"
                                    }
                                ],
                                "required": true
                            }
                        ],
                        "type": "array",
                        "label": "Addresses"
                    },
                    {
                        "name": "opt_in_reason",
                        "type": "text",
                        "label": "Opt-In reason"
                    },
                    {
                        "name": "email_addresses",
                        "spec": {
                            "name": "value",
                            "spec": [
                                {
                                    "name": "email",
                                    "type": "email",
                                    "label": "Email"
                                },
                                {
                                    "name": "field",
                                    "type": "select",
                                    "label": "Field",
                                    "options": [
                                        {
                                            "label": "Email 1",
                                            "value": "EMAIL1"
                                        },
                                        {
                                            "label": "Email 2",
                                            "value": "EMAIL2"
                                        },
                                        {
                                            "label": "Email 3",
                                            "value": "EMAIL3"
                                        }
                                    ],
                                    "required": true
                                }
                            ],
                            "type": "collection"
                        },
                        "type": "array",
                        "label": "Email addresses"
                    },
                    {
                        "name": "phone_numbers",
                        "spec": [
                            {
                                "name": "extension",
                                "type": "text",
                                "label": "Extension"
                            },
                            {
                                "name": "number",
                                "type": "text",
                                "label": "Number"
                            },
                            {
                                "name": "type",
                                "type": "select",
                                "label": "Type",
                                "options": [
                                    {
                                        "label": "Work",
                                        "value": "Work"
                                    },
                                    {
                                        "label": "Home",
                                        "value": "Home"
                                    },
                                    {
                                        "label": "Mobile",
                                        "value": "Mobile"
                                    },
                                    {
                                        "label": "Other",
                                        "value": "Other"
                                    }
                                ]
                            },
                            {
                                "name": "field",
                                "type": "select",
                                "label": "Field",
                                "options": [
                                    {
                                        "label": "Phone 1",
                                        "value": "PHONE1"
                                    },
                                    {
                                        "label": "Phone 2",
                                        "value": "PHONE2"
                                    },
                                    {
                                        "label": "Phone 3",
                                        "value": "PHONE3"
                                    },
                                    {
                                        "label": "Phone 4",
                                        "value": "PHONE4"
                                    },
                                    {
                                        "label": "Phone 5",
                                        "value": "PHONE5"
                                    }
                                ],
                                "required": true
                            }
                        ],
                        "type": "array",
                        "label": "Phone numbers"
                    },
                    {
                        "name": "fax_numbers",
                        "spec": [
                            {
                                "name": "number",
                                "type": "text",
                                "label": "Number"
                            },
                            {
                                "name": "type",
                                "type": "select",
                                "label": "Type",
                                "options": [
                                    {
                                        "label": "Work",
                                        "value": "Work"
                                    },
                                    {
                                        "label": "Home",
                                        "value": "Home"
                                    },
                                    {
                                        "label": "Other",
                                        "value": "Other"
                                    }
                                ]
                            },
                            {
                                "name": "field",
                                "type": "select",
                                "label": "Field",
                                "options": [
                                    {
                                        "label": "Fax 1",
                                        "value": "FAX1"
                                    },
                                    {
                                        "label": "Fax 2",
                                        "value": "FAX2"
                                    }
                                ],
                                "required": true
                            }
                        ],
                        "type": "array",
                        "label": "Fax numbers"
                    },
                    {
                        "name": "website",
                        "type": "text",
                        "label": "Website"
                    },
                    {
                        "name": "prefix",
                        "type": "select",
                        "label": "Title",
                        "validate": {
                            "enum": [
                                "Mr.",
                                "Mrs.",
                                "Dr.",
                                "Ms."
                            ]
                        }
                    },
                    {
                        "name": "suffix",
                        "type": "select",
                        "label": "Suffix",
                        "validate": {
                            "enum": [
                                "I",
                                "II",
                                "III",
                                "IV",
                                "V",
                                "PhD",
                                "Jr"
                            ]
                        }
                    },
                    {
                        "name": "birthday",
                        "type": "date",
                        "label": "Birthday"
                    },
                    {
                        "name": "preferred_name",
                        "type": "text",
                        "label": "Nickname"
                    },
                    {
                        "name": "notes",
                        "type": "text",
                        "label": "Person Notes"
                    },
                    {
                        "name": "lead_source_id",
                        "type": "uinteger",
                        "label": "Lead Source ID"
                    },
                    {
                        "name": "custom_fields",
                        "spec": [
                            {
                                "name": "id",
                                "type": "select",
                                "label": "Custom field ID",
                                "dynamic": true,
                                "options": []
                            },
                            {
                                "name": "content",
                                "type": "text",
                                "label": "Content"
                            }
                        ],
                        "type": "array",
                        "label": "Custom fields"
                    }
                ]
            }
        }
    ],
    "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": "eu2.make.com",
        "notes": []
    }
}