Skip to main content

ContactFormRequest Service


This service is used to simplify entering basic web forms into Atollon. In Atollon, it's possible to add more complex business logic based on request type and it's parameters. Web developers are let go of understanding Atollon blackbox.


POST https://<HOST>/crab/contact_form/<request_type>?instance=<instance_name>

Request Types



POST data in JSON format:

    "person": {
        "firstName": "<jmeno>",
        "lastName": "<prijmeni>"
    "company": {
        "companyName": "<nazev_firmy>"
    "contacts": {
        "email": "<email>",
        "phone": "<telefon>"
    "comment": "<text_pozadavku>",
    "interestedIn": ["<p1>"," <p2>"," ..." ],
    "leadCategory": "<string>",
    "trackingCode": "<string>",
    "url": "<string>"

Function progress

  • When above request is sent, new TIF is created (TIF = Temporary Import File) and the contents is saved in TIF; TIF type = contactform-lead
  • Contact form that is not processed has TIF.status = 1
  • The plugin calls auto-processing that makes the following steps:
    • Company is filled? => lead is "Company lead" (and the person is representative of the company), otherwise it's "Person lead"
Company lead
  • Check whether company is existing (company name matches some record in DB) // see:
  • If company does not exist, create new contact (company)
  • With company contact id, check whether contact has the desired contact folder. Desired contact folder is folder with FPATypeCategory = com.atollon.leads.fpatypecategory.lead OR optional lead_category (represents FPATypeCategory of the lead folder type). If the lead folder does not exist, it is created.
  • Check whether person is existing (based on e-mail, mobile / if these are not filled-in, the person is created anyway). E-mail and mobile is stored with person contact
  • Comment is created as message and stored with lead folder ID // Subject: "New lead " & {{ firstName }} {{ lastName }}, {{ companyName }}
  • Interested in - represents contact group. Find the contact group with the same name. If the contact group does not exist, create it in "Interested in" category. Assign the contact to the group
  • Create marketing trigger (baseType = goal-achieved, url = trackingCode, description = "Contact filled-in form")
Person lead
  • The main difference from company lead is that the lead ID is searched / created for the person contact (because company contact is missing)

After the request is imported successfully, change the TIF status to "2".