about summary refs log tree commit diff
path: root/universe/ac_types
diff options
context:
space:
mode:
Diffstat (limited to 'universe/ac_types')
-rw-r--r--universe/ac_types/ac_types.py378
-rw-r--r--universe/ac_types/attributes.pb1014
-rw-r--r--universe/ac_types/dict.py10
-rw-r--r--universe/ac_types/example.textproto523
-rw-r--r--universe/ac_types/expected/EU Election Certification (Non-Olympus).textproto255
-rw-r--r--universe/ac_types/expected/EU Election Certification (Olympus).textproto550
-rw-r--r--universe/ac_types/expected/Non-Sensitive Ads Review (Olympus).textproto126
-rw-r--r--universe/ac_types/f.py46
-rw-r--r--universe/ac_types/fs.py9
-rw-r--r--universe/ac_types/input_constant.py78
-rw-r--r--universe/ac_types/log.py9
-rw-r--r--universe/ac_types/notes_with_jason.txt60
-rw-r--r--universe/ac_types/output.textproto4483
-rw-r--r--universe/ac_types/parse.py138
-rw-r--r--universe/ac_types/parse.pycbin0 -> 5462 bytes
-rw-r--r--universe/ac_types/prelude.py19
-rw-r--r--universe/ac_types/pretty.py7
-rw-r--r--universe/ac_types/pretty.pycbin0 -> 456 bytes
-rw-r--r--universe/ac_types/regex.py18
-rw-r--r--universe/ac_types/scrape.py51
-rw-r--r--universe/ac_types/serialize.py67
-rw-r--r--universe/ac_types/string.py90
-rw-r--r--universe/ac_types/string.pycbin0 -> 2546 bytes
-rw-r--r--universe/ac_types/test_utils.py21
-rw-r--r--universe/ac_types/test_utils.pycbin0 -> 966 bytes
-rw-r--r--universe/ac_types/todo.org5
26 files changed, 7957 insertions, 0 deletions
diff --git a/universe/ac_types/ac_types.py b/universe/ac_types/ac_types.py
new file mode 100644
index 000000000000..8a3513c59798
--- /dev/null
+++ b/universe/ac_types/ac_types.py
@@ -0,0 +1,378 @@
+from itertools import product
+import string
+from pretty import pretty_print
+import csv
+import parse
+import serialize
+import dict
+import scrape
+import fs
+import f
+import log
+import regex
+import input_constant
+from test_utils import simple_assert
+
+################################################################################
+# Main
+################################################################################
+enable_tests = True
+
+
+# parse_csv :: Path -> [RowAsDict]
+def parse_csv(path):
+    parser = {
+        "Name": parse.required("Name", parse.identity),
+        "Type": parse.required("Type", parse.as_type),
+        # TODO: Are we sure we want to default to False here?
+        "Optional": parse.if_empty(False, parse.as_yes_no),
+        # We'd like to skip rows where "Data Source Type" is empty.
+        "Data Source Type": parse.nullable(parse.as_data_source_type),
+        "Data Source/Value": parse.nullable(parse.identity),
+    }
+    result = []
+    # Below are only the column in which we're interested:
+    columns = [
+        'Name',
+        'Type',
+        'Optional',
+        'Data Source Type',
+        'Data Source/Value',
+    ]
+    assert set(columns) == set(parser.keys())
+    with open(path, 'r') as f:
+        reader = csv.DictReader(f)
+        for row in reader:
+            try:
+                parsed = parse.apply_parser(parser, row)
+                result.append(dict.take(columns, parsed))
+            except Exception as e:
+                pretty_print(row)
+                raise Exception('Failed parsing the following row: {}'.format(
+                    ','.join(row.values())))
+                return
+
+    return result
+
+
+def serialize_id_value(xs):
+    return string.indent('\n'.join([
+        'id: {}'.format(serialize.literal(xs['id'])),
+        'value: {}'.format(serialize.literal(xs['value'])),
+    ]))
+
+
+# serialize_parent_routing_frd :: RowAsDict -> [String]
+def serialize_parent_routing_frd(row):
+    # All parent_routing_frds should be set as Hard-Code
+    assert row['Data Source Type'] == 'Hard-Code'
+
+    frds = {
+        'Consult Type': '^88149',
+        'neoenum.program': '^87379',
+        'form.country': '^16296',
+        'Form.ad_language': "^3906"
+    }
+    name, value = row['Name'], parse.as_union_type(row['Data Source/Value'])
+
+    result = []
+    for x in value:
+        header = 'parent_lookup_frds {'
+        fields = serialize_id_value({'id': frds[name], 'value': x})
+        footer = '}'
+        result.append('\n'.join([header, fields, footer]))
+
+    return result
+
+
+actual = serialize_parent_routing_frd({
+    'Name':
+    'neoenum.program',
+    'Data Source Type':
+    'Hard-Code',
+    'Data Source/Value':
+    '"olympus" or "olympus_plus"',
+})
+expected = [
+    """parent_lookup_frds {
+  id: "^87379"
+  value: "olympus"
+}""",
+    """parent_lookup_frds {
+  id: "^87379"
+  value: "olympus_plus"
+}""",
+]
+simple_assert(actual, expected, name='serialize_parent_routing_frd')
+
+actual = serialize_parent_routing_frd({
+    'Name':
+    'Consult Type',
+    'Type':
+    'Parent Routing FRD',
+    'AIV':
+    False,
+    'Optional':
+    False,
+    'Data Source Type':
+    'Hard-Code',
+    'Data Source/Value':
+    'ads_accountappeals_autoconsult'
+})
+expected = [
+    """parent_lookup_frds {
+  id: "^88149"
+  value: "ads_accountappeals_autoconsult"
+}"""
+]
+simple_assert(actual, expected, name='serialize_parent_routing_frd')
+
+
+def serialize_return_routing_frd(row):
+    header = 'parent_return_routing_frds {'
+    fields = serialize_id_value({
+        'id': row['Name'],
+        'value': row['Data Source/Value'],
+    })
+    footer = '}'
+    return '\n'.join([header, fields, footer])
+
+
+def serialize_consult_routing_frd(row):
+    header = 'consult_routing_frds {'
+    fields = serialize_id_value({
+        'id': row['Name'],
+        'value': row['Data Source/Value'],
+    })
+    footer = '}'
+    return '\n'.join([header, fields, footer])
+
+
+# TODO: Reconcile this definition with serialize.input.
+# serialize_inputs :: RowAsDict -> [String]
+def serialize_input(row):
+    value_type = row['Data Source Type']
+    name, value = string.trim_prefix('IDENTIFIER_',
+                                     row['Name']), row['Data Source/Value']
+
+    if ' or ' in value and value_type != 'Hard-Code':
+        log.warn('Found a union type in a non-"Hard-Code" row: {}'.format(row))
+
+    # TODO: We need to resolve row['Name'] into "^<id-number>". But only
+    # Sometimes... so... when is that sometimes?
+    if value_type == 'Hard-Code':
+        return serialize.input(
+            input_type='CONSTANT',
+            fields={
+                'consult_frd_id': name,
+                'is_optional': row['Optional'],
+                # TODO: Call resolution function.
+                'constant_value': input_constant.to_rule_id(value),
+            })
+    elif value_type == 'Atlas':
+        # We need to remove the trailing parens if they exist. See the CSVs for more
+        # context.
+        value = regex.remove(r'\s\([\w\s]+\)$', value)
+        return serialize.input(input_type='SIGNAL',
+                               fields={
+                                   'consult_frd_id': name,
+                                   'is_optional': row['Optional'],
+                               })
+    elif value_type == 'Form':
+        # TODO: Prefer a generic serialize.dictionary
+        # We need to remove the trailing parens if they exist. See the CSVs for more
+        # context.
+        value = regex.remove(r'\s\([\w\s]+\)$', value)
+        return serialize.input(input_type='PARENT_FRD',
+                               fields={
+                                   'consult_frd_id':
+                                   name,
+                                   'is_optional':
+                                   row['Optional'],
+                                   'parent_frd_id':
+                                   scrape.attribute_id_for(
+                                       value, error_when_absent=False),
+                               })
+    else:
+        raise Exception("This should not have occurred.")
+
+
+# csv_to_proto :: Path -> [Protobuf]
+def csv_to_proto(path):
+    """Maps the CSV located at `path` into a textproto that Auto Consult will consume."""
+    # ORGANIZATION, which is currently a 'Consult Routing FRD' should become a
+    # 'Consult Parameter' as "neo_organization".
+    consult_routing_frds_blacklist = {'ORGANIZATION'}
+    index = {
+        'Parent Routing FRD': [],
+        'Consult Parameter': [],
+        'Return Routing FRD': [],
+        'Consult Routing FRD': [],
+        'Input': []
+    }
+
+    # Index each row according to its "Type" column.
+    for row in parse_csv(path):
+        name, rtype, dst = row['Name'], row['Type'], row['Data Source Type']
+        # Here we need to mutate the spreadsheet because the curators encoded a
+        # 'Consult Parameter', "ORGANIZATION", as a 'Consult Routing FRD'.
+        if name == 'ORGANIZATION' and rtype == 'Consult Routing FRD':
+            row['Type'] = 'Consult Parameter'
+            index['Consult Parameter'].append(row)
+            continue
+        if dst is None:
+            log.warn('Column "Data Source Type" is None. Skipping this row.')
+            continue
+        if dst == 'N/A':
+            continue
+        index[row['Type']].append(row)
+
+    return serialize_index(index)
+
+
+def serialize_consult_parameters(xs):
+    result = []
+    transforms = {
+        'Taxonomy ID': 'taxonomy_id',
+        'View ID': 'view_id',
+        'Timeout': 'max_wait_time_for_consult_secs',
+        'Re-Route if Customer Responds': 'reroute_on_customer_interaction',
+        'ORGANIZATION': 'neo_organization'
+    }
+    parsers = {
+        'Taxonomy ID':
+        parse.identity,
+        'View ID':
+        parse.identity,
+        'Timeout':
+        lambda x: parse.as_hours(x) * 60 * 60,
+        'Re-Route if Customer Responds':
+        parse.as_mapping({
+            'TRUE': True,
+            'FALSE': False
+        }),
+        'ORGANIZATION':
+        parse.identity
+    }
+    for row in xs:
+        name = row['Name']
+        parser = parsers[name]
+        key, value = transforms[name], parser(row['Data Source/Value'])
+        result.append('  {}: {}'.format(key, serialize.literal(value)))
+
+    return '\n'.join(result)
+
+
+def serialize_index(index):
+    header = 'consult_settings {'
+
+    consult_parameters = serialize_consult_parameters(
+        index['Consult Parameter'])
+
+    product_xs = []
+    parent_lookup_frds = []
+    for row in index['Parent Routing FRD']:
+        product_xs.append(serialize_parent_routing_frd(row))
+    for frds in product(*product_xs):
+        parent_lookup_frds.append('\n'.join(frds))
+
+    # TODO: Cover with tests.
+    parent_return_routing_frds = string.indent('\n'.join([
+        serialize_return_routing_frd(row)
+        for row in index['Return Routing FRD']
+    ]))
+
+    # TODO: Cover with tests.
+    consult_routing_frds = string.indent('\n'.join([
+        serialize_consult_routing_frd(row)
+        for row in index['Consult Routing FRD']
+    ]))
+
+    inputs = string.indent('\n'.join(
+        [serialize_input(row) for row in index['Input']]))
+
+    footer = '}'
+
+    result = []
+    for parent_frd in parent_lookup_frds:
+        result.append('\n'.join([
+            header, consult_parameters,
+            string.indent(parent_frd), parent_return_routing_frds,
+            consult_routing_frds, inputs, footer
+        ]))
+
+    return '\n'.join(result)
+
+
+csv_directory = f.ensure_absolute("~/auto-consult-csv")
+# TODO: Add missing files.
+csvs = [
+    'Non-Sensitive Ads Review (Olympus).csv',
+    'Ads Review (Olympus).csv',
+    'Ad Review (Non-Olympus).csv',
+    'Review Account Under Review (Olympus).csv',
+    'Accounts Review Requests (Non-Olympus).csv',
+    'Review Suspended Account (Olympus).csv',
+    'Review Suspended Account (Non-Olympus).csv',
+    'Suspended Long Form (Olympus).csv',
+    'Suspended Long Form (Non-Olympus).csv',
+    'Copyright (Olympus).csv',
+    'Copyright (Non-Olympus).csv',
+    'EU Election Certification (Olympus).csv',
+    'EU Election Certification #2 (Olympus).csv',
+    'EU Election Certification (Non-Olympus).csv',
+    'EU Election Certification #2 (Non-Olympus).csv',
+    'US Election Certification (Olympus).csv',
+    'US Election Certification (Non-Olympus).csv',
+    'IN Election Certification (Olympus).csv',
+    'IN Election Certification (Non-Olympus).csv',
+    'NY Election Certification (Olympus).csv',
+    'NY Election Certification (Non-Olympus).csv',
+    'Ticket Seller Certification (Olympus).csv',
+    'Ticket Seller Certification (Non-Olympus).csv',
+    'Pharma Certification EMEA (Olympus).csv',
+    'Pharma Certification EMEA (Non-Olympus).csv',
+    'CSFP Certification (Olympus).csv',
+    'CSFP Certification (Non-Olympus).csv',
+    'Social Casino Games Certification (Olympus).csv',
+    'Social Casino Games Certification (NonOlympus).csv',
+    'Gambling Certification (Olympus).csv',
+    'Gambling Certification (Non-Olympus).csv',
+    'Addiction Services Certification (Olympus).csv',
+    'Addiction Services Certification (Non-Olympus).csv',
+    'HTML5 Application (Olympus).csv',
+    'HTML5 Application (Non-Olympus).csv',
+    # TODO: Support this once Jason unblocks.
+    # 'Account Take Over (Olympus).csv',
+    # TODO: Support this once Jason unblocks.
+    # 'Account Take Over (Non-Olympus).csv',
+    'Free Desktop Software Policy (Olympus).csv',
+    'Free Desktop Software Policy (Non-Olympus).csv',
+    'Untrustworthy Promotions (Olympus).csv',
+    'Untrustworthy Promotions (Non-Olympus).csv',
+]
+
+# TODO: Dump these CSVs into SQL to run basic queries on the " or " count, etc.
+# Only 'Hard-Code' fields seem to have " or "s in them; SQL can help me verify
+# this claim.
+
+for x in csvs:
+    print('# File: "{}"'.format(f.strip_extension(x)))
+    print(csv_to_proto(f.join(csv_directory, x)))
+
+################################################################################
+# Tests
+################################################################################
+if enable_tests:
+    tests = [
+        # 'EU Election Certification (Olympus).csv',
+        'EU Election Certification (Non-Olympus).csv',
+        # 'Non-Sensitive Ads Review (Olympus).csv',
+    ]
+    for csv_file in tests:
+        textproto_file = f.join('expected',
+                                f.change_extension('.textproto', csv_file))
+        actual = csv_to_proto(
+            f.ensure_absolute(f.join(csv_directory, csv_file)))
+        expected = open(textproto_file, 'r').read()
+        simple_assert(actual, expected, name='csv_to_proto')
diff --git a/universe/ac_types/attributes.pb b/universe/ac_types/attributes.pb
new file mode 100644
index 000000000000..6b893647c7ba
--- /dev/null
+++ b/universe/ac_types/attributes.pb
@@ -0,0 +1,1014 @@
+configs {
+  # System Attribute - Category
+  id: "^^1"
+  type: STRING
+  access_type: READ_WRITE
+}
+configs {
+  # System Attribute - Product
+  id: "^^11"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # System Attribute - Customer Email
+  id: "^^3"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # System Attribute - Adwords Customer ID
+  id: "^^30"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # System Attribute - Customer Gaia ID
+  id: "^^4"
+  type: INT
+  access_type: READ
+}
+configs {
+  # System Attribute - Customer Name
+  id: "^^5"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # System Attribute - Locale
+  id: "^^9"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # System Attribute - Case Source
+  id: "^1006"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # AR.Claim.KnowledgeTestClaimId
+  id: "^106464"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # AR.Claim.IssueType
+  id: "^106466"
+  type: ENUM
+  access_type: READ
+}
+configs {
+  # AR.Claim.StrongAuthPhone
+  id: "^106474"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # AR.Claim.IsStopMessageReceived
+  id: "^106482"
+  type: BOOL
+  access_type: READ
+}
+configs {
+  # Atlas.CustomerId
+  id: "^1421"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # Form.form-id
+  id: "^4297"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # Form.Ar_descr_textbox
+  id: "^6664"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # AR.ART.LastDecisionRecommended
+  id: "^106918"
+  type: ENUM
+  access_type: WRITE
+}
+configs {
+  # AR.ART.LastDecisionTaken
+  id: "^106919"
+  type: ENUM
+  access_type: WRITE
+}
+configs {
+  # AR.ART.LastDecisionTime
+  id: "^106920"
+  type: STRING
+  access_type: WRITE
+}
+configs {
+  # AR.ART.LastDecisionType
+  id: "^106921"
+  type: ENUM
+  access_type: WRITE
+}
+configs {
+  # System Attribute - Resolution ID
+  id: "^22020"
+  type: STRING
+  access_type: WRITE
+}
+configs {
+  # b/134163005 - frd.quality_pre_check_state.core
+  id: "^83347"
+  type: STRING
+  access_type: READ_WRITE
+}
+configs {
+  # b/134168536 - PRIORITY
+  id: "^^10"
+  type: INT
+  access_type: READ
+}
+configs {
+  # b/134169885 - STO_InternalCategory
+  id: "^3618"
+  type: STRING
+  access_type: READ_WRITE
+}
+configs {
+  # b/134408264 - neo.notification_requested
+  id: "^84074"
+  type: STRING
+  access_type: READ_WRITE
+}
+configs {
+  # b/135613797 - Form.media_plan_ID
+  id: "^75926"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135613797 - Form.help_needed
+  id: "^80735"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - sales_task.company_id
+  id: "^14773"
+  type: INT
+  access_type: READ
+}
+configs {
+  # b/135614853 - sales_task.TeamName
+  id: "^16367"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - sales_task.VerticalName
+  id: "^16368"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - sales_task.RegionName
+  id: "^16369"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - sales_task.Sector
+  id: "^16372"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - sales_task.SubSector
+  id: "^16373"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - sales_task.parent_company_id
+  id: "^25555"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - sales_task.service_channel
+  id: "^25557"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - sales_task.company_name
+  id: "^26743"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - sales_task.global_parent_company_id
+  id: "^29339"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - sales_task.global_parent_company_name
+  id: "^29340"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - sales_task.parent_company_name
+  id: "^29341"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - CaseCreator.Email
+  id: "^5709"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - neo.product
+  id: "^68613"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - neo.request_type
+  id: "^68616"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - neo.workdriver
+  id: "^68617"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - neo.campaign_type
+  id: "^68621"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - neo.market
+  id: "^69794"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - neo.interaction_type
+  id: "^69795"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - sales_task.chutney_key
+  id: "^70302"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - frd.case_source.core
+  id: "^76697"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - frd.google_ads_internal_customer_id.target
+  id: "^77629"
+  type: INT
+  access_type: READ
+}
+configs {
+  # b/135614853 - frd.google_ads_internal_customer_id.target_candidate
+  id: "^77634"
+  type: INT
+  access_type: READ
+}
+configs {
+  # b/135614853 - neo.Sales_Region
+  id: "^81664"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - neo.source_mechanism
+  id: "^82204"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135614853 - neo.vertical
+  id: "^82589"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135943348 - IS_CONSULT
+  id: "^1224"
+  type: BOOL
+  access_type: READ
+}
+configs {
+  # b/135943691 - Form.ic_sto_priority
+  id: "^6078"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135943174 - neo.program
+  id: "^69798"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135942978 - Form.what_is_your_question_about
+  id: "^14511"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/135942692 - sales_task.gt_priority
+  id: "^25484"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138591197 - Form.pii_status
+  id: "^30810"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138591197 - Form.pii_status - STAGING ATTRIBUTE
+  id: "^122997"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138590939 - Form.pii_AWID
+  id: "^30811"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138590939 - Form.pii_AWID - STAGING ATTRIBUTE
+  id: "^122998"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138590649 - Form.customerId
+  id: "^1658"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138592092 - Form.form
+  id: "^3664"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138592092 - Form.form - STAGING ATTRIBUTE
+  id: "^113826"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138591447 - Form.pubid
+  id: "^3693"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138591447 - Form.pubid - STAGING ATTRIBUTE
+  id: "^102721"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138590817 - Form.status
+  id: "^7502"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138590817 - Form.status - STAGING ATTRIBUTE
+  id: "^104111"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138811198 - sales_task.Country
+  id: "^16371"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138811198 - sales_task.country_code
+  id: "^25556"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138811198 - sales_task.client_business_objective
+  id: "^85372"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138811198 - sales_task.timeline_consideration
+  id: "^85375"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/138843621 - Form.bse_priority_level
+  id: "^71223"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/139361297 - Form.pub_id
+  id: "^4302"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/139361297 - Form.admob_pubid
+  id: "^8472"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/139361297 - Form.upload_document_id
+  id: "^7067"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/139761352 - sales_task.assigned_to
+  id: "^73218"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/140811258 - neo.source_context
+  id: "^83722"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.account_assigned_to_a_PTL
+  id: "^84587"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.account_id
+  id: "^2259"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.Additional_Advertiser_ID_s
+  id: "^84575"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.additional_comments
+  id: "^3501"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.advertiser_name
+  id: "^4171"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.agency_id
+  id: "^76244"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.Authorized_Buyers_customer_ID
+  id: "^87627"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.company_id
+  id: "^3416"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.company_name
+  id: "^3239"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.Country_of_Support
+  id: "^84581"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.Customer_Contact_Email
+  id: "^84577"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.customer_contact_name
+  id: "^7553"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.Greentea_ID
+  id: "^86872"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.impact
+  id: "^68442"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.impact_type
+  id: "^16645"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.Link_Partner_s
+  id: "^84589"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.network_id
+  id: "^2939"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.Notification_Email
+  id: "^84582"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.partner_agency_name
+  id: "^86962"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.partner_id
+  id: "^2342"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.Primary_Advertiser_ID_1
+  id: "^86874"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.Primary_Advertiser_ID
+  id: "^84591"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.Primary_Product
+  id: "^84588"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.Request_Type
+  id: "^4833"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141865219 - Form.Request_Sub_Type
+  id: "^84831"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.Rquest_Sub_Type
+  id: "^84593"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.sector
+  id: "^18760"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.sub_sector
+  id: "^87768"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/141027066 - Form.Work_doesnt_affect_Advertiser
+  id: "^84565"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.support_need
+  id: "^60520"
+  type: ENUM
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.campaign_name
+  id: "^25128"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.net_campaign_budget
+  id: "^25118"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.currency
+  id: "^25115"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.advertiser_market
+  id: "^81059"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.advertiser_market_cs
+  id: "^81091"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.country_cs
+  id: "^81090"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.campaign_start_date
+  id: "^25108"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.campaign_end_date
+  id: "^25114"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.potential_date
+  id: "^80985"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.date_flexible
+  id: "^80991"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.agency
+  id: "^25116"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.sales_poc
+  id: "^61764"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.external_poc
+  id: "^62583"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.dvip_status
+  id: "^80988"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.campaign_supported
+  id: "^81060"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.ad_platform
+  id: "^80983"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.video_format
+  id: "^80992"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.launched_before
+  id: "^80959"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - sales_task.request_details
+  id: "^25126"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - neo.component
+  id: "^68623"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/142882516 - neoenum.gps_project_type
+  id: "^88941"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/143390406 - neoenum.youtube_program_pitched
+  id: "^88894"
+  type: STRING
+  access_type: READ_WRITE
+}
+configs {
+  # b/143892899 - neo.organization
+  id: "^69793"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/145022355 - LR_isFlagged
+  id: "^6736"
+  type: BOOL
+  access_type: READ
+}
+configs {
+  # b/145022355 - legal_AbuseCategory
+  id: "^3614"
+  type: ENUM
+  access_type: READ
+}
+configs {
+  # b/145022355 - legal_HiddenProduct
+  id: "^3615"
+  type: ENUM
+  access_type: READ
+}
+configs {
+  # b/145022355 - CountryIsoAlpha2
+  id: "^3497"
+  type: ENUM
+  access_type: READ
+}
+configs {
+  # b/145022355 - legal_ChillingId
+  id: "^3616"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/145022355 - LegalRemovals_SESTA
+  id: "^71537"
+  type: BOOL
+  access_type: READ
+}
+configs {
+  # b/145707965 - sales_task.accounts_field2
+  id: "^80051"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/145707965 - sales_task.cid_rollup
+  id: "^80052"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/145707965 - sales_task.proposed_company_id
+  id: "^62779"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146005429 - Form.geolocation
+  id: "^3328"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146066105 - Form.url_box3
+  id: "^5653"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146066105 - Form.full_name
+  id: "^2981"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146066105 - Form.signature
+  id: "^3483"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146060287 - Form.publisher_code
+  id: "^86622"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - neoenum.consult_type
+  id: "^88149"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - neoenum.program
+  id: "^87379"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - Form.ad_language
+  id: "^3906"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - Form.summary_of_issue
+  id: "^5305"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - Atlas.AbuseTagIds
+  id: "^2356"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - Form.website_req
+  id: "^1677"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - Form.who_pays
+  id: "^14657"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - Form.sample_keywords
+  id: "^1881"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - Form.billing_address_street
+  id: "^1880"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - Form.billing_address_town
+  id: "^1879"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - Form.billing_address_zip
+  id: "^1885"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - Form.billing_country_req
+  id: "^1886"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - Form.business_desc
+  id: "^14660"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - Form.owner_or_emp
+  id: "^14661"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - Form.payment_option
+  id: "^1882"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - ChatForm.phone_number
+  id: "^30248"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146445306 - pool
+  id: "^^35"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146649910 - neoenum.product
+  id: "^87422"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146347546 - sales_task.requested_quarter
+  id: "^77809"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146347546 - sales_task.proposed_company_name
+  id: "^62778"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146347546 - sales_task.company_name_pdc_copy
+  id: "^80083"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146347546 - sales_task.company_currently_exists
+  id: "^75285"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146347546 - sales_task.parent_or_division
+  id: "^76645"
+  type: STRING
+  access_type: READ
+}
+configs {
+  # b/146347546 - sales_task.proposed_company_website
+  id: "^76644"
+  type: STRING
+  access_type: READ
+}
\ No newline at end of file
diff --git a/universe/ac_types/dict.py b/universe/ac_types/dict.py
new file mode 100644
index 000000000000..9975ec8a970f
--- /dev/null
+++ b/universe/ac_types/dict.py
@@ -0,0 +1,10 @@
+# Naming options for this module:
+# - map (like Elixir and standard.el): Overwrites python's built-in `map` function.
+# - dict: Overwrites python's built-in `dict` function.
+
+
+def take(ks, xs):
+    result = {}
+    for k in ks:
+        result[k] = xs[k]
+    return result
diff --git a/universe/ac_types/example.textproto b/universe/ac_types/example.textproto
new file mode 100644
index 000000000000..987c45f78f7e
--- /dev/null
+++ b/universe/ac_types/example.textproto
@@ -0,0 +1,523 @@
+# Please, see the link below for the definition of the messages in this file.
+# https://cs.corp.google.com/piper///depot/google3/google/internal/alkali/applications/casesconsultservice/v1/consult.proto
+
+# Instances of ConsultMetadata message.
+
+## The following ConsultMetadata instance is just an example.
+consult_settings {
+  taxonomy_id: "9126664"  # Ads Taxonomy: http://composer/9126664
+  view_id: "Routing"
+  neo_organization: "gcc"
+  max_wait_time_for_consult_secs: 3600  # 1 hr
+  reroute_on_customer_interaction: false
+  parent_lookup_frds {
+    # Instances of Attribute message.
+    id: "^^11"  # Attribute name: PRODUCT.
+    value: "ac-demo-value1"
+  }
+  parent_lookup_frds {
+    id: "^^1"  # Attribute name: CATEGORY.
+    value: "ac-demo-value2"
+  }
+  parent_return_routing_frds {
+    # Instances of Attribute message.
+    id: "^123"  # Attribute name: XYZ.
+    value: "sample 1"
+  }
+  consult_routing_frds {
+    # Instances of Attribute message.
+    id: "^987"  # Attribute name: Demo.
+    value: "sample 2"
+  }
+  inputs {
+    # Instance of ConsultInput
+    type: CONSTANT
+    consult_frd_id: "^0123"
+    is_optional: true
+    constant_value: "This is an input"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "^9876"
+    is_optional: false
+    signal_type: CID
+  }
+}
+
+# Note the following test case must be modeled with a LACK of configuration
+#  * AC-004: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=5:5
+# As such, it's imperative that all "autoconsult_test" fixtures also match a language
+# This test will be performed by specifying a language that's not covered in this configuration
+
+# General Success Case - consults to T&S robot test pool
+# Supports Test Cases:
+#  * AC-001: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=2:2
+#  * AC-003: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=4:4
+consult_settings {
+  taxonomy_id: "9249441"  # T&S Taxonomy: http://composer/9249441
+  view_id: "Routing"
+  neo_organization: "trust_safety"
+  max_wait_time_for_consult_secs: 3600  # 1 hr
+  reroute_on_customer_interaction: false
+  parent_lookup_frds {
+    id: "^88149"  # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149
+    value: "autoconsult_test"
+  }
+  parent_lookup_frds {
+    id: "^3906"  # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906
+    value: "af"  # Afrikaans
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"  # FRD Name: Product Group
+    value: "engineering"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: CID
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: true
+    parent_frd_id: "^5305"  # Form.summary_of_issue https://cases.corp.google.com/Client.html#A~%5E5305
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "FEATURE"
+    is_optional: false
+    constant_value: "regular_review"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "BUSINESS_LANGUAGE"
+    is_optional: true
+    parent_frd_id: "^3906"  # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+
+# General success case - consults to TDA manual test pool
+# Defines a non-optional input that will be Empty
+# Supports Test Cases:
+#  * AC-002: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=3:3
+#  * AC-008: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=9:9
+#  * AC-015: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=16:16
+#  * AC-016: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=17:17
+#  * AC-017: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=18:18
+#  * AC-018: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=19:19
+#  * AC-019: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=20:20
+#  * AC-020: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=21:21
+#  * AC-021: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=22:22
+#  * AC-022: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=23:23
+consult_settings {
+  taxonomy_id: "9126664"  # Ads Taxonomy: http://composer/9126664
+  view_id: "Routing"
+  neo_organization: "gcc"
+  max_wait_time_for_consult_secs: 3600  # 1 hr
+  reroute_on_customer_interaction: false
+  parent_lookup_frds {
+    id: "^88149"  # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149
+    value: "autoconsult_test"
+  }
+  parent_lookup_frds {
+    id: "^3906"  # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906
+    value: "da"  # dansk
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "CONSULT_TYPE"  # FRD Name: Consult Type
+    value: "autoconsult_test"
+  }
+  consult_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: CID
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: true
+    parent_frd_id: "^5305"  # Form.summary_of_issue https://cases.corp.google.com/Client.html#A~%5E5305
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+}
+
+# This tests a misconfigured signal type
+# Supports Test Cases:
+#  * AC-005: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=6:6
+consult_settings {
+  taxonomy_id: "9126664"  # Ads Taxonomy: http://composer/9126664
+  view_id: "Routing"
+  neo_organization: "gcc"
+  max_wait_time_for_consult_secs: 3600  # 1 hr
+  reroute_on_customer_interaction: false
+  parent_lookup_frds {
+    id: "^88149"  # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149
+    value: "autoconsult_test"
+  }
+  parent_lookup_frds {
+    id: "^3906"  # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906
+    value: "en-AU"  # English (Australia)
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "CONSULT_TYPE"  # FRD Name: Consult Type
+    value: "autoconsult_test"
+  }
+  consult_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: UNKNOWN
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: true
+    parent_frd_id: "^5305"  # Form.summary_of_issue https://cases.corp.google.com/Client.html#A~%5E5305
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+}
+
+# Defines a non-optional input that will be missing
+# Supports Test Cases:
+#  * AC-006: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=7:7
+consult_settings {
+  taxonomy_id: "9126664"  # Ads Taxonomy: http://composer/9126664
+  view_id: "Routing"
+  neo_organization: "gcc"
+  max_wait_time_for_consult_secs: 3600  # 1 hr
+  reroute_on_customer_interaction: false
+  parent_lookup_frds {
+    id: "^88149"  # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149
+    value: "autoconsult_test"
+  }
+  parent_lookup_frds {
+    id: "^3906"  # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906
+    value: "en-CA"  # English (Canada)
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "CONSULT_TYPE"  # FRD Name: Consult Type
+    value: "autoconsult_test"
+  }
+  consult_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: CID
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: false
+    parent_frd_id: "^999999"  # Made-up attribute ID
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+}
+
+# Defines a non-optional input that will be empty
+# Supports Test Cases:
+#  * AC-008: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=9:9
+consult_settings {
+  taxonomy_id: "9126664"  # Ads Taxonomy: http://composer/9126664
+  view_id: "Routing"
+  neo_organization: "gcc"
+  max_wait_time_for_consult_secs: 3600  # 1 hr
+  reroute_on_customer_interaction: false
+  parent_lookup_frds {
+    id: "^88149"  # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149
+    value: "autoconsult_test"
+  }
+  parent_lookup_frds {
+    id: "^3906"  # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906
+    value: "en-GB"  # English (United Kingdom)
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "CONSULT_TYPE"  # FRD Name: Consult Type
+    value: "autoconsult_test"
+  }
+  consult_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: CID
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: false  # Not optional
+    parent_frd_id: "^5305"  # Form.summary_of_issue https://cases.corp.google.com/Client.html#A~%5E5305
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+}
+
+# Defines a non-optional input that will be missing
+# Supports Test Cases:
+#  * AC-009: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=10:10
+consult_settings {
+  taxonomy_id: "9126664"  # Ads Taxonomy: http://composer/9126664
+  view_id: "Routing"
+  neo_organization: "gcc"
+  max_wait_time_for_consult_secs: 3600  # 1 hr
+  reroute_on_customer_interaction: false
+  parent_lookup_frds {
+    id: "^88149"  # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149
+    value: "autoconsult_test"
+  }
+  parent_lookup_frds {
+    id: "^3906"  # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906
+    value: "en"  # English
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "CONSULT_TYPE"  # FRD Name: Consult Type
+    value: "autoconsult_test"
+  }
+  consult_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: CID
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: false  # Not optional
+    parent_frd_id: "^999999"  # Made-up attribute ID
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+}
+
+# Defines multiple non-optional inputs that will not validate
+# Supports Test Cases:
+#  * AC-011: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=12:12
+consult_settings {
+  taxonomy_id: "9126664"  # Ads Taxonomy: http://composer/9126664
+  view_id: "Routing"
+  neo_organization: "gcc"
+  max_wait_time_for_consult_secs: 3600  # 1 hr
+  reroute_on_customer_interaction: false
+  parent_lookup_frds {
+    id: "^88149"  # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149
+    value: "autoconsult_test"
+  }
+  parent_lookup_frds {
+    id: "^3906"  # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906
+    value: "en-IN"  # English (India)
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "CONSULT_TYPE"  # FRD Name: Consult Type
+    value: "autoconsult_test"
+  }
+  consult_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: CID
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: false  # Not optional
+    parent_frd_id: "^999999"  # Made-up attribute ID
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: false  # Not optional
+    parent_frd_id: "^5305"  # Form.summary_of_issue https://cases.corp.google.com/Client.html#A~%5E5305
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+}
+
+# Long Timeout Fixture
+# Re-Route On Customer Interaction set at this level
+# Supports Test Cases:
+#  * AC-013: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=14:14
+consult_settings {
+  taxonomy_id: "9126664"  # Ads Taxonomy: http://composer/9126664
+  view_id: "Routing"
+  neo_organization: "gcc"
+  max_wait_time_for_consult_secs: 36000  # 10 hrs
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"  # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149
+    value: "autoconsult_test"
+  }
+  parent_lookup_frds {
+    id: "^3906"  # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906
+    value: "en-NZ"  # English (New Zealand)
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "CONSULT_TYPE"  # FRD Name: Consult Type
+    value: "autoconsult_test"
+  }
+  consult_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: CID
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: true
+    parent_frd_id: "^5305"  # Form.summary_of_issue https://cases.corp.google.com/Client.html#A~%5E5305
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+}
+
+# Zero Timeout Fixture
+# Supports Test Cases:
+#  * AC-014: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=15:15
+consult_settings {
+  taxonomy_id: "9126664"  # Ads Taxonomy: http://composer/9126664
+  view_id: "Routing"
+  neo_organization: "gcc"
+  max_wait_time_for_consult_secs: 0  # 0 hrs
+  reroute_on_customer_interaction: false
+  parent_lookup_frds {
+    id: "^88149"  # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149
+    value: "autoconsult_test"
+  }
+  parent_lookup_frds {
+    id: "^3906"  # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906
+    value: "en-NZ"  # English (New Zealand)
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "CONSULT_TYPE"  # FRD Name: Consult Type
+    value: "autoconsult_test"
+  }
+  consult_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"  # FRD Name: Robot Workflow State.
+    value: "automation_escalate"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: CID
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: true
+    parent_frd_id: "^5305"  # Form.summary_of_issue https://cases.corp.google.com/Client.html#A~%5E5305
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+}
\ No newline at end of file
diff --git a/universe/ac_types/expected/EU Election Certification (Non-Olympus).textproto b/universe/ac_types/expected/EU Election Certification (Non-Olympus).textproto
new file mode 100644
index 000000000000..5ebfebb6783d
--- /dev/null
+++ b/universe/ac_types/expected/EU Election Certification (Non-Olympus).textproto
@@ -0,0 +1,255 @@
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    value: "Germany"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: CID
+  }
+}
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    value: "Netherlands"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: CID
+  }
+}
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    value: "Spain"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: CID
+  }
+}
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    value: "Check Republic"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: CID
+  }
+}
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    value: "United Kingdom"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: CID
+  }
+}
diff --git a/universe/ac_types/expected/EU Election Certification (Olympus).textproto b/universe/ac_types/expected/EU Election Certification (Olympus).textproto
new file mode 100644
index 000000000000..8650de0d5e88
--- /dev/null
+++ b/universe/ac_types/expected/EU Election Certification (Olympus).textproto
@@ -0,0 +1,550 @@
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Germany"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: CID
+  }
+}
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Netherlands"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: CID
+  }
+}
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Spain"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: CID
+  }
+}
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Check Republic"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: CID
+  }
+}
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "United Kingdom"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: CID
+  }
+}
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Germany"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: CID
+  }
+}
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Netherlands"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: CID
+  }
+}
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Spain"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: CID
+  }
+}
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Check Republic"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: CID
+  }
+}
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "United Kingdom"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: CID
+  }
+}
\ No newline at end of file
diff --git a/universe/ac_types/expected/Non-Sensitive Ads Review (Olympus).textproto b/universe/ac_types/expected/Non-Sensitive Ads Review (Olympus).textproto
new file mode 100644
index 000000000000..5ff397946bec
--- /dev/null
+++ b/universe/ac_types/expected/Non-Sensitive Ads Review (Olympus).textproto
@@ -0,0 +1,126 @@
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_Adsreview"
+  max_wait_time_for_consult_secs: 43200
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ad_review_request_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "ads_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: CID
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: false
+    parent_frd_id: "^2941"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "FEATURE"
+    is_optional: false
+    constant_value: "regular_review"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "BUSINESS_LANGUAGE"
+    is_optional: false
+    parent_frd_id: "^3906"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+consult_settings {
+  taxonomy_id: "9249441"
+  view_id: "Routing - Ads_Adsreview"
+  max_wait_time_for_consult_secs: 43200
+  reroute_on_customer_interaction: true
+  neo_organization: "trust_safety"
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ad_review_request_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "ads_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: CID
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: false
+    parent_frd_id: "^2941"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "FEATURE"
+    is_optional: false
+    constant_value: "regular_review"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "BUSINESS_LANGUAGE"
+    is_optional: false
+    parent_frd_id: "^3906"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
\ No newline at end of file
diff --git a/universe/ac_types/f.py b/universe/ac_types/f.py
new file mode 100644
index 000000000000..44dcf0d32bf7
--- /dev/null
+++ b/universe/ac_types/f.py
@@ -0,0 +1,46 @@
+import os
+import string
+from test_utils import simple_assert
+
+
+def join(*args):
+    return os.path.join(*args)
+
+
+simple_assert(join("/", "tmp", "a.txt"), "/tmp/a.txt", name="join")
+
+
+def ensure_absolute(path):
+    """Ensures `path` is an absolute path."""
+    return os.path.abspath(os.path.expanduser(path))
+
+
+simple_assert(ensure_absolute("~/a.txt"),
+              "/usr/local/google/home/wpcarro/a.txt",
+              name="ensure_absolute")
+
+
+def filename(path):
+    """Return just the filename of `path`."""
+    return os.path.basename(path)
+
+
+simple_assert(filename("~/a.txt"), "a.txt", name="filename")
+simple_assert(filename("/path/to/file"), "file", name="filename")
+
+
+def strip_extension(path):
+    """Remove file extension from path."""
+    return os.path.splitext(path)[0]
+
+
+simple_assert(strip_extension("~/a.txt"), "~/a", name="filename")
+simple_assert(strip_extension("/path/to/file.txt"),
+              "/path/to/file",
+              name="strip_extension")
+
+
+def change_extension(ext, path):
+    """Change `path`'s file extension to `ext`."""
+    assert string.starts_with('.', ext)
+    return strip_extension(path) + ext
diff --git a/universe/ac_types/fs.py b/universe/ac_types/fs.py
new file mode 100644
index 000000000000..68b34b64bffe
--- /dev/null
+++ b/universe/ac_types/fs.py
@@ -0,0 +1,9 @@
+from glob import glob
+import f
+
+
+def ls(pattern):
+    """Return a list of files that match `pattern`. This is a DWIM function and
+    will handle relative paths, absolute paths, etc. It should behave
+    approximately similarly to GNU's ls."""
+    return glob(f.ensure_absolute(pattern))
diff --git a/universe/ac_types/input_constant.py b/universe/ac_types/input_constant.py
new file mode 100644
index 000000000000..9b32a3b493be
--- /dev/null
+++ b/universe/ac_types/input_constant.py
@@ -0,0 +1,78 @@
+from test_utils import simple_assert
+
+
+def to_rule_id(x):
+    """Transform `x` to the casing expected in a rule ID."""
+    return x.lower().replace(' ',
+                             '_').replace('(',
+                                          '').replace(')',
+                                                      '').replace('/', '_')
+
+
+expected = {
+    'Cloaking or Cloaking Suspect': 'cloaking_or_cloaking_suspect',
+    'Phishing': 'phishing',
+    'System Suspended Advertiser': 'system_suspended_advertiser',
+    'Affiliate Spam': 'affiliate_spam',
+    'Untrustworthy Behavior': 'untrustworthy_behavior',
+    'Payment Fraud': 'payment_fraud',
+    'Bad Debt': 'bad_debt',
+    'Sleeper': 'sleeper',
+    'Gaming': 'gaming',
+    'Counterfeit': 'counterfeit',
+    'Coupon Abuse': 'coupon_abuse',
+    'Fraud chargeback': 'fraud_chargeback',
+    'Friendly chargeback': 'friendly_chargeback',
+    'Customer service chargeback': 'customer_service_chargeback',
+    'Delinquency (wont pay)': 'delinquency_wont_pay',
+    'Direct Debit Abuse/Suspect': 'direct_debit_abuse_suspect',
+    'Delinquent Account Abuse': 'delinquent_account_abuse',
+    'Billing Customer Shutdown': 'billing_customer_shutdown',
+    'Violations Across Multiple Accounts(VAMA)':
+    'violations_across_multiple_accountsvama',
+    'Risk Mitigation Daily Spend Limit Raise':
+    'risk_mitigation_daily_spend_limit_raise',
+    'Review Account Under Review': 'review_account_under_review',
+    'Runaway Spenders Daily Spend Limit': 'runaway_spenders_daily_spend_limit',
+    'Double Serving': 'double_serving',
+    'Gaining an Unfair Advantage': 'gaining_an_unfair_advantage',
+    'Office of Foreign Assets Control (OFAC) Sanctions':
+    'office_of_foreign_assets_control_ofac_sanctions',
+    'Terms of service violation': 'terms_of_service_violation',
+    'Spam': 'spam',
+    'Sexually Explicit Content': 'sexually_explicit_content',
+    'Illegal drugs (Dangerous Products)': 'illegal_drugs_dangerous_products',
+    'Hate speech': 'hate_speech',
+    'Harrassment': 'harrassment',
+    'Malicious Or Unwanted Software': 'malicious_or_unwanted_software',
+    'Online Gambling': 'online_gambling',
+    'Social Casino Games': 'social_casino_games',
+    'Online Pharmacy Certification Required':
+    'online_pharmacy_certification_required',
+    'Copyrights': 'copyrights',
+    'Addiction Services': 'addiction_services',
+    'Elections': 'elections',
+    'Unwanted Software': 'unwanted_software',
+    'Event Ticket Reseller': 'event_ticket_reseller',
+    'Cryptocurrency': 'cryptocurrency',
+    'Complex Speculative Financial Policy':
+    'complex_speculative_financial_policy',
+    'US Elections Ads (New York Only)': 'us_elections_ads_new_york_only',
+    'Alcohol Information': 'alcohol_information',
+    'Inappropriate Content': 'inappropriate_content',
+    'Adult Content': 'adult_content',
+    'final reason blogger suspension': 'final_reason_blogger_suspension',
+    'final reason calendar suspension': 'final_reason_calendar_suspension',
+    'final reason writely suspension': 'final_reason_writely_suspension',
+    'final reason groups reloaded suspension':
+    'final_reason_groups_reloaded_suspension',
+    'final reason gplus suspension': 'final_reason_gplus_suspension',
+    'Terrorist Content': 'terrorist_content',
+    'Underage account': 'underage_account',
+    'Terrorist Content': 'terrorist_content',
+    'Elections': 'elections',
+    'Policy System Suspension': 'policy_system_suspension',
+}
+
+for x, y in expected.items():
+    simple_assert(to_rule_id(x), y, 'to_rule_id')
diff --git a/universe/ac_types/log.py b/universe/ac_types/log.py
new file mode 100644
index 000000000000..797e2f719942
--- /dev/null
+++ b/universe/ac_types/log.py
@@ -0,0 +1,9 @@
+enable = False
+
+
+def warn(x):
+    """Print `x` as a warning."""
+    if enable:
+        print('[Warning]: {}'.format(x))
+    else:
+        return None
diff --git a/universe/ac_types/notes_with_jason.txt b/universe/ac_types/notes_with_jason.txt
new file mode 100644
index 000000000000..5c2972ee579f
--- /dev/null
+++ b/universe/ac_types/notes_with_jason.txt
@@ -0,0 +1,60 @@
+# TODO: Handle Cartesian product for each "or" in row["Data Source/Value"]
+
+# Notes from Jason:
+# Type
+# - Require ID
+#   - Parent Routing FRD
+#   - Consult Input
+# - Raw
+#   - everything else...
+#
+# Hard-Code: CONSTANT...constant_value
+#
+# Atlas.CustomerID == SIGNAL
+# all else (!Hard-Code && !Atlas.CustomerID): Parent FRD
+
+
+consult_settings {
+  # Consult Parameter
+  taxonomy_id: # (row['Name'] == 'Taxonomy ID') row['Data Source/Value']
+  view_id: # (row['Name'] == 'View ID') row['Data Source/Value']
+  neo_organization: # (row['Name'] == 'ORGANIZATION') row['Data Source/Value']
+  max_wait_time_for_consult_secs: # (row['Name'] == 'Timeout') hours_to_seconds(as_hours(row['Data Source/Value']))
+  reroute_on_customer_interaction: # (row['Name'] == 'Re-Route if Customer Responds') as_yes_no(row['Data Source/Value'])
+
+  # Parent Routing FRD
+  rows
+  |> filter(row['Type'] == 'Parent Routing FRD')
+  |> map((row) => parent_lookup_frds {
+       id: ??? # as_id(row['Name'])
+       value: ??? row['Data Source/Value']
+     })
+
+  # Consult Routing FRD
+  rows
+  |> filter(row['Type'] == 'Consult Routing FRD')
+  |> map((row) => consult_routing_frds {
+       id: row['Name']
+       value: row['Data Source/Value']
+     })
+
+  # Return Routing FRD
+  rows
+  |> filter(row['Type'] == 'Return Routing FRD')
+  |> map((row) => parent_return_routing_frds {
+       id: ???
+       value: ???
+     })
+
+  # Input (Note: There seem to be more than one variant of these)
+  rows
+  |> filter(row['Type'] == 'Input')
+  |> map((row) => inputs {
+       constant_value: ???
+       consult_frd_id: ???
+       is_optional: ???
+       parent_frd_id: ???
+       signal_type: ???
+       type: ???
+     })
+}
diff --git a/universe/ac_types/output.textproto b/universe/ac_types/output.textproto
new file mode 100644
index 000000000000..de2cce77ca71
--- /dev/null
+++ b/universe/ac_types/output.textproto
@@ -0,0 +1,4483 @@
+# File: "Non-Sensitive Ads Review (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_Adsreview"
+  max_wait_time_for_consult_secs: 43200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ad_review_request_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "ads_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: "^1421"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: false
+    parent_frd_id: "^2941"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "FEATURE"
+    is_optional: false
+    constant_value: "regular_review"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "BUSINESS_LANGUAGE"
+    is_optional: false
+    parent_frd_id: "^3906"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_Adsreview"
+  max_wait_time_for_consult_secs: 43200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ad_review_request_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "ads_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: "^1421"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: false
+    parent_frd_id: "^2941"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "FEATURE"
+    is_optional: false
+    constant_value: "regular_review"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "BUSINESS_LANGUAGE"
+    is_optional: false
+    parent_frd_id: "^3906"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+# File: "Ads Review (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_Adsreview"
+  max_wait_time_for_consult_secs: 43200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ad_review_request_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "ads_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: "^1421"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: false
+    parent_frd_id: "^5305"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "FEATURE"
+    is_optional: false
+    constant_value: "regular_review"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "BUSINESS_LANGUAGE"
+    is_optional: false
+    parent_frd_id: "^3906"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_Adsreview"
+  max_wait_time_for_consult_secs: 43200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ad_review_request_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "ads_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: "^1421"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: false
+    parent_frd_id: "^5305"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "FEATURE"
+    is_optional: false
+    constant_value: "regular_review"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "BUSINESS_LANGUAGE"
+    is_optional: false
+    parent_frd_id: "^3906"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+# File: "Ad Review (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_Adsreview"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ad_review_request_autoconsult"
+  }
+  
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "ads_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: "^1421"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: false
+    parent_frd_id: "^5305"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "unreviewed_ads_keywords_and_extensions"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "FEATURE"
+    is_optional: false
+    constant_value: "regular_review"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "BUSINESS_LANGUAGE"
+    is_optional: false
+    parent_frd_id: "^3906"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+# File: "Review Account Under Review (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_accountappeals"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_accountappeals_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "accounts_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: "^1421"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: false
+    parent_frd_id: "^2941"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "review_account_under_review"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "POLICY"
+    is_optional: false
+    signal_type: "^2356"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_accountappeals"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_accountappeals_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "accounts_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: "^1421"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: false
+    parent_frd_id: "^2941"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "review_account_under_review"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "POLICY"
+    is_optional: false
+    signal_type: "^2356"
+  }
+}
+# File: "Accounts Review Requests (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_accountappeals"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_accountappeals_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "accounts_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: "^1421"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "ISSUE_DESCRIPTION"
+    is_optional: false
+    parent_frd_id: "^2941"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "POLICY"
+    is_optional: false
+    signal_type: "^2356"
+  }
+}
+# File: "Review Suspended Account (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_accountappeals"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_accountappeals_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "accounts_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: "^1421"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "rereview_suspended_account"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "POLICY"
+    is_optional: false
+    signal_type: "^2356"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_accountappeals"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_accountappeals_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "accounts_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: "^1421"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "rereview_suspended_account"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "POLICY"
+    is_optional: false
+    signal_type: "^2356"
+  }
+}
+# File: "Review Suspended Account (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_accountappeals"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_accountappeals_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "accounts_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: "^1421"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "rereview_suspended_account"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "POLICY"
+    is_optional: false
+    signal_type: "^2356"
+  }
+}
+# File: "Suspended Long Form (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_accountappeals"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_accountappeals_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "accounts_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    signal_type: "^2356"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.website_req"
+    is_optional: false
+    parent_frd_id: "^1677"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.who_pays"
+    is_optional: false
+    parent_frd_id: "^14657"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.summary_of_issue"
+    is_optional: false
+    parent_frd_id: "^5305"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.sample_keywords"
+    is_optional: false
+    parent_frd_id: "^1881"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_street"
+    is_optional: false
+    parent_frd_id: "^1880"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_town"
+    is_optional: false
+    parent_frd_id: "^1879"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_zip"
+    is_optional: false
+    parent_frd_id: "^1885"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_country_req"
+    is_optional: false
+    parent_frd_id: "^1886"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.business_desc"
+    is_optional: false
+    parent_frd_id: "^14660"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.countries_business_serve"
+    is_optional: false
+    parent_frd_id: "^14659"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.name"
+    is_optional: false
+    parent_frd_id: "^1665"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.owner_or_emp"
+    is_optional: false
+    parent_frd_id: "^14661"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.payment_option"
+    is_optional: false
+    parent_frd_id: "^1882"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.phone_number"
+    is_optional: false
+    parent_frd_id: "^30248"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_accountappeals"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_accountappeals_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "accounts_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    signal_type: "^2356"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.website_req"
+    is_optional: false
+    parent_frd_id: "^1677"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.who_pays"
+    is_optional: false
+    parent_frd_id: "^14657"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.summary_of_issue"
+    is_optional: false
+    parent_frd_id: "^5305"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.sample_keywords"
+    is_optional: false
+    parent_frd_id: "^1881"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_street"
+    is_optional: false
+    parent_frd_id: "^1880"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_town"
+    is_optional: false
+    parent_frd_id: "^1879"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_zip"
+    is_optional: false
+    parent_frd_id: "^1885"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_country_req"
+    is_optional: false
+    parent_frd_id: "^1886"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.business_desc"
+    is_optional: false
+    parent_frd_id: "^14660"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.countries_business_serve"
+    is_optional: false
+    parent_frd_id: "^14659"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.name"
+    is_optional: false
+    parent_frd_id: "^1665"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.owner_or_emp"
+    is_optional: false
+    parent_frd_id: "^14661"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.payment_option"
+    is_optional: false
+    parent_frd_id: "^1882"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.phone_number"
+    is_optional: false
+    parent_frd_id: "^30248"
+  }
+}
+# File: "Suspended Long Form (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_accountappeals"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_accountappeals_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "accounts_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    signal_type: "^2356"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.website_req"
+    is_optional: false
+    parent_frd_id: "^1677"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.who_pays"
+    is_optional: false
+    parent_frd_id: "^14657"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.summary_of_issue"
+    is_optional: false
+    parent_frd_id: "^5305"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.sample_keywords"
+    is_optional: false
+    parent_frd_id: "^1881"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_street"
+    is_optional: false
+    parent_frd_id: "^1880"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_town"
+    is_optional: false
+    parent_frd_id: "^1879"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_zip"
+    is_optional: false
+    parent_frd_id: "^1885"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_country_req"
+    is_optional: false
+    parent_frd_id: "^1886"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.business_desc"
+    is_optional: false
+    parent_frd_id: "^14660"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.countries_business_serve"
+    is_optional: false
+    parent_frd_id: "^14659"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.name"
+    is_optional: false
+    parent_frd_id: "^1665"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.owner_or_emp"
+    is_optional: false
+    parent_frd_id: "^14661"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.payment_option"
+    is_optional: false
+    parent_frd_id: "^1882"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.phone_number"
+    is_optional: false
+    parent_frd_id: "^30248"
+  }
+}
+# File: "Copyright (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "POLICY"
+    is_optional: false
+    constant_value: "copyrights"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "POLICY"
+    is_optional: false
+    constant_value: "copyrights"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+# File: "Copyright (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "REQUEST"
+    is_optional: false
+    constant_value: "certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "POLICY"
+    is_optional: false
+    constant_value: "copyrights"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "INDENTIFIER_COMPLEXITY"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+# File: "EU Election Certification (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Germany"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Netherlands"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Spain"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Check Republic"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "United Kingdom"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Germany"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Netherlands"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Spain"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Check Republic"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "United Kingdom"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+# File: "EU Election Certification #2 (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "hard"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "hard"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+# File: "EU Election Certification (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 259200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: ""Germany" or "Netherlands" or "Spain" or "Check Republic" or "United Kingdom" # TODO(wpcarro): scrape.attribute_id_for could not find the ID."
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+# File: "EU Election Certification #2 (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 259200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+# File: "US Election Certification (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.country"
+    is_optional: false
+    constant_value: "united_states_of_america"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.country"
+    is_optional: false
+    constant_value: "united_states_of_america"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+# File: "US Election Certification (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 259200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.country"
+    is_optional: false
+    constant_value: "united_states_of_america"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+# File: "IN Election Certification (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "Neo.country"
+    is_optional: false
+    constant_value: "india"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "Neo.country"
+    is_optional: false
+    constant_value: "india"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+# File: "IN Election Certification (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 259200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "Neo.country"
+    is_optional: false
+    constant_value: "india"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+# File: "NY Election Certification (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "us_election_ads_new_york_only"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.country"
+    is_optional: false
+    constant_value: "united_states_of_america"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.product"
+    is_optional: false
+    constant_value: "google_ads"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "us_election_ads_new_york_only"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.country"
+    is_optional: false
+    constant_value: "united_states_of_america"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.product"
+    is_optional: false
+    constant_value: "google_ads"
+  }
+}
+# File: "NY Election Certification (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 259200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "us_election_ads_new_york_only"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.country"
+    is_optional: false
+    constant_value: "united_states_of_america"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+# File: "Ticket Seller Certification (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "event_ticket_reseller"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "event_ticket_reseller"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+}
+# File: "Ticket Seller Certification (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 259200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "event_ticket_reseller"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+}
+# File: "Pharma Certification EMEA (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "online_pharmacy_certification_required"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "online_pharmacy_certification_required"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+# File: "Pharma Certification EMEA (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 259200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "online_pharmacy_certification_required"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+}
+# File: "CSFP Certification (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "complex_speculative_financial_policy"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "complex_speculative_financial_policy"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+}
+# File: "CSFP Certification (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 259200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "complex_speculative_financial_policy"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+}
+# File: "Social Casino Games Certification (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "social_casino_games"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "social_casino_games"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+}
+# File: "Social Casino Games Certification (NonOlympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 259200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "social_casino_games"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+}
+# File: "Gambling Certification (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "online_gambling"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "online_gambling"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+}
+# File: "Gambling Certification (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 259200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "online_gambling"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+}
+# File: "Addiction Services Certification (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "addiction_services"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "addiction_services"
+  }
+}
+# File: "Addiction Services Certification (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 259200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "addiction_services"
+  }
+}
+# File: "HTML5 Application (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_HTML5_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.request"
+    is_optional: false
+    constant_value: "whitelisting"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.component"
+    is_optional: false
+    constant_value: "html5_ads"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_HTML5_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.request"
+    is_optional: false
+    constant_value: "whitelisting"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.component"
+    is_optional: false
+    constant_value: "html5_ads"
+  }
+}
+# File: "HTML5 Application (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_HTML5_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.request"
+    is_optional: false
+    constant_value: "whitelisting"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.component"
+    is_optional: false
+    constant_value: "html5_ads"
+  }
+}
+# File: "Free Desktop Software Policy (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "unwanted_software"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "unwanted_software"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+}
+# File: "Free Desktop Software Policy (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 259200
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "unwanted_software"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+}
+# File: "Untrustworthy Promotions (Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_accountappeals"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_accountappeals_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "accounts_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: "^1421"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    signal_type: "^2356"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.website_req"
+    is_optional: false
+    parent_frd_id: "^1677"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.who_pays"
+    is_optional: false
+    parent_frd_id: "^14657"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.summary_of_issue"
+    is_optional: false
+    parent_frd_id: "^5305"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.sample_keywords"
+    is_optional: false
+    parent_frd_id: "^1881"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_street"
+    is_optional: false
+    parent_frd_id: "^1880"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_town"
+    is_optional: false
+    parent_frd_id: "^1879"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_zip"
+    is_optional: false
+    parent_frd_id: "^1885"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_country_req"
+    is_optional: false
+    parent_frd_id: "^1886"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.business_desc"
+    is_optional: false
+    parent_frd_id: "^14660"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.countries_business_serve"
+    is_optional: false
+    parent_frd_id: "^14659"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.name"
+    is_optional: false
+    parent_frd_id: "^1665"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.owner_or_emp"
+    is_optional: false
+    parent_frd_id: "^14661"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.payment_option"
+    is_optional: false
+    parent_frd_id: "^1882"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.phone_number"
+    is_optional: false
+    parent_frd_id: "^30248"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_accountappeals"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_accountappeals_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "accounts_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID"
+    is_optional: false
+    signal_type: "^1421"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    signal_type: "^2356"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.website_req"
+    is_optional: false
+    parent_frd_id: "^1677"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.who_pays"
+    is_optional: false
+    parent_frd_id: "^14657"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.summary_of_issue"
+    is_optional: false
+    parent_frd_id: "^5305"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.sample_keywords"
+    is_optional: false
+    parent_frd_id: "^1881"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_street"
+    is_optional: false
+    parent_frd_id: "^1880"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_town"
+    is_optional: false
+    parent_frd_id: "^1879"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_zip"
+    is_optional: false
+    parent_frd_id: "^1885"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_country_req"
+    is_optional: false
+    parent_frd_id: "^1886"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.business_desc"
+    is_optional: false
+    parent_frd_id: "^14660"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.countries_business_serve"
+    is_optional: false
+    parent_frd_id: "^14659"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.name"
+    is_optional: false
+    parent_frd_id: "^1665"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.owner_or_emp"
+    is_optional: false
+    parent_frd_id: "^14661"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.payment_option"
+    is_optional: false
+    parent_frd_id: "^1882"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.phone_number"
+    is_optional: false
+    parent_frd_id: "^30248"
+  }
+}
+# File: "Untrustworthy Promotions (Non-Olympus)"
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_accountappeals"
+  max_wait_time_for_consult_secs: 172800
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_accountappeals_autoconsult"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "accounts_review"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    signal_type: "^2356"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.website_req"
+    is_optional: false
+    parent_frd_id: "^1677"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.who_pays"
+    is_optional: false
+    parent_frd_id: "^14657"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.summary_of_issue"
+    is_optional: false
+    parent_frd_id: "^5305"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.sample_keywords"
+    is_optional: false
+    parent_frd_id: "^1881"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_street"
+    is_optional: false
+    parent_frd_id: "^1880"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_town"
+    is_optional: false
+    parent_frd_id: "^1879"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_address_zip"
+    is_optional: false
+    parent_frd_id: "^1885"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.billing_country_req"
+    is_optional: false
+    parent_frd_id: "^1886"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.business_desc"
+    is_optional: false
+    parent_frd_id: "^14660"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.countries_business_serve"
+    is_optional: false
+    parent_frd_id: "^14659"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.name"
+    is_optional: false
+    parent_frd_id: "^1665"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.owner_or_emp"
+    is_optional: false
+    parent_frd_id: "^14661"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.payment_option"
+    is_optional: false
+    parent_frd_id: "^1882"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "Form.phone_number"
+    is_optional: false
+    parent_frd_id: "^30248"
+  }
+}
+#################################################################
+# csv_to_proto: Test failure.
+#################################################################
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Germany"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Netherlands"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Spain"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Check Republic"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "United Kingdom"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Germany"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Netherlands"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Spain"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "Check Republic"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
+consult_settings {
+  taxonomy_id: 9249441
+  view_id: "Routing - Ads_certs"
+  max_wait_time_for_consult_secs: 86400
+  reroute_on_customer_interaction: true
+  parent_lookup_frds {
+    id: "^88149"
+    value: "ads_certs_autoconsult"
+  }
+  parent_lookup_frds {
+    id: "^87379"
+    value: "olympus_plus"
+  }
+  parent_lookup_frds {
+    id: "^16296"
+    value: "United Kingdom"
+  }
+  parent_return_routing_frds {
+    id: "ROBOT_WORKFLOW_STATE"
+    value: "automation_escalate"
+  }
+  consult_routing_frds {
+    id: "ORGANIZATION"
+    value: "trust_safety"
+  }
+  consult_routing_frds {
+    id: "VERTICAL"
+    value: "ads"
+  }
+  consult_routing_frds {
+    id: "REQUEST_TYPE"
+    value: "Certifications"
+  }
+  inputs {
+    type: PARENT_FRD
+    consult_frd_id: "neo.country"
+    is_optional: false
+    parent_frd_id: "^16296"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.policy"
+    is_optional: false
+    constant_value: "elections"
+  }
+  inputs {
+    type: CONSTANT
+    consult_frd_id: "neo.complexity"
+    is_optional: false
+    constant_value: "easy"
+  }
+  inputs {
+    type: SIGNAL
+    consult_frd_id: "neo.product"
+    is_optional: false
+    signal_type: "^68613"
+  }
+}
diff --git a/universe/ac_types/parse.py b/universe/ac_types/parse.py
new file mode 100644
index 000000000000..872f3f0c3fcc
--- /dev/null
+++ b/universe/ac_types/parse.py
@@ -0,0 +1,138 @@
+import re
+import string
+from test_utils import simple_assert
+
+
+def if_empty(x, parser):
+    """If the field is empty, use `x`, otherwise, call `parser` on it."""
+    def fn(y):
+        if y == "":
+            return x
+        else:
+            return parser(y)
+
+    return fn
+
+
+# nullable :: Parser -> Parser
+def nullable(parser):
+    def fn(x):
+        if x == "":
+            return None
+        else:
+            return parser(x)
+
+    return fn
+
+
+def required(column_name, parser):
+    def fn(x):
+        if x == "":
+            raise Exception(
+                "\"{}\" is a required field and cannot be empty".format(
+                    column_name))
+        else:
+            return parser(x)
+
+    return fn
+
+
+def apply_parser(parser, row):
+    """Calls each value in `parser` on the corresponding field in the
+    dictionary, `row`."""
+    result = {}
+    for k, fn in parser.items():
+        result[k] = fn(row[k])
+    return result
+
+
+def raise_parse_error(x, expected):
+    """Raises a generic `Exception` when `x` is not a member of the `expected`
+    set."""
+    raise Exception("\"{}\" is none of the following: \"{}\"".format(
+        x, ", ".join(expected)))
+
+
+def as_hours(x):
+    match = re.search(r'(\d+) hours', x)
+    if match:
+        try:
+            return int(match[1])
+        except:
+            raise Exception('Failed to parse {} as an int'.format(match[1]))
+    else:
+        raise Exception('Failed to parse {} as hours'.format(x))
+
+
+actual = as_hours('24 hours')
+expected = 24
+simple_assert(actual, expected, name='as_hours')
+
+
+def as_mapping(mapping):
+    def fn(x):
+        if mapping[x]:
+            return mapping[x]
+        else:
+            raise_parse_error(x, set(mapping.keys()))
+
+    return fn
+
+
+# as_yes_no :: String -> Boolean
+def as_yes_no(x):
+    """Attempt to parse `x`, a Yes or No value, into a boolean."""
+    if x == "Yes":
+        return True
+    elif x == "No":
+        return False
+    else:
+        raise_parse_error(x, {"Yes", "No"})
+
+
+# as_data_source_type :: String -> String
+def as_data_source_type(x):
+    """Attempt to parse `x` as the Data Source Type column, which is an enum
+    defined in the go/consult-types-authwf-auto-consult sheet."""
+    acceptable = {"Hard-Code", "N/A", "Atlas", "Form"}
+    if x not in acceptable:
+        raise_parse_error(x, acceptable)
+    return x
+
+
+# as_type :: String -> String
+def as_type(x):
+    """Attempt to parse `x` as the Type column, which is an enum defined in the
+    go/consult-types-authwf-auto-consult sheet."""
+    acceptable = {
+        "Parent Routing FRD", "Consult Parameter", "Consult Routing FRD",
+        "Input", "Return Routing FRD"
+    }
+    if x not in acceptable:
+        raise_parse_error(x, acceptable)
+    return x
+
+
+def as_int(x):
+    return int(x)
+
+
+def as_union_type(x):
+    if " or " in x:
+        return [string.trim_surrounding('"', x) for x in x.split(" or ")]
+    else:
+        return [x]
+
+
+simple_assert(as_union_type('Non-Union'), ['Non-Union'], name='as_union_type')
+
+simple_assert(as_union_type(
+    '"Germany" or "Netherlands" or "Spain" or "Check Republic" or "United Kingdom"'
+), ['Germany', 'Netherlands', 'Spain', 'Check Republic', 'United Kingdom'],
+              name='as_union_type')
+
+
+# identity :: a -> a
+def identity(x):
+    """Returns `x` unchanged."""
+    return x
diff --git a/universe/ac_types/parse.pyc b/universe/ac_types/parse.pyc
new file mode 100644
index 000000000000..b1be813ba770
--- /dev/null
+++ b/universe/ac_types/parse.pyc
Binary files differdiff --git a/universe/ac_types/prelude.py b/universe/ac_types/prelude.py
new file mode 100644
index 000000000000..21a809288fd8
--- /dev/null
+++ b/universe/ac_types/prelude.py
@@ -0,0 +1,19 @@
+from test_utils import simple_assert
+
+
+def pipe(x, fns):
+    """Apply `x` to the first function in `fns` and then use its output as the
+    input for the next function in the list."""
+    result = x
+    for f in fns:
+        result = f(result)
+    return result
+
+
+actual = pipe(10, [
+    lambda x: x + 3,
+    lambda x: x - 1,
+    lambda x: x * 2,
+])
+expected = (((10 + 3) - 1) * 2)
+simple_assert(actual, expected, name="pipe")
diff --git a/universe/ac_types/pretty.py b/universe/ac_types/pretty.py
new file mode 100644
index 000000000000..ac1f7203187b
--- /dev/null
+++ b/universe/ac_types/pretty.py
@@ -0,0 +1,7 @@
+from pprint import PrettyPrinter
+
+printer = PrettyPrinter(indent=2)
+
+
+def pretty_print(x):
+    return printer.pprint(x)
diff --git a/universe/ac_types/pretty.pyc b/universe/ac_types/pretty.pyc
new file mode 100644
index 000000000000..1f735fdb25e0
--- /dev/null
+++ b/universe/ac_types/pretty.pyc
Binary files differdiff --git a/universe/ac_types/regex.py b/universe/ac_types/regex.py
new file mode 100644
index 000000000000..e5203bedfae4
--- /dev/null
+++ b/universe/ac_types/regex.py
@@ -0,0 +1,18 @@
+import re
+from test_utils import simple_assert
+
+
+def remove(regex, x):
+    """Attempt to remove the substring matching `re` from `x`."""
+    return re.sub(regex, '', x)
+
+
+# No occurence
+simple_assert(remove(r'\s\([\w\s]+\)$', 'Atlas.CustomerId'),
+              'Atlas.CustomerId',
+              name="remove")
+# Single occurence
+simple_assert(remove(r'\s\([\w\s]+\)$',
+                     'Atlas.CustomerId (adjusted for MCC IDs)'),
+              'Atlas.CustomerId',
+              name="remove")
diff --git a/universe/ac_types/scrape.py b/universe/ac_types/scrape.py
new file mode 100644
index 000000000000..a68bdcc9afca
--- /dev/null
+++ b/universe/ac_types/scrape.py
@@ -0,0 +1,51 @@
+from test_utils import simple_assert
+import re
+import log
+import regex
+
+
+# Warning: This is a linear search each time. Quite scrappy and hackish, but it
+# works. Trademarked...
+def attribute_id_for(x, error_when_absent=True):
+    """Return the Attribute ID for `x` as defined in attributes.pb."""
+    is_next = False
+    known = {
+        'Form.description': '^2941',
+        'Form.country': '^16296',
+        # Entering this here since some of the CSV have malformed data, and I'm
+        # not currently interested in a more robust solution.
+        'form.country': '^16296',
+        'Form.countries_business_serve': '^14659',
+        'Form.name': '^1665',
+    }
+    if x in known:
+        return known[x]
+
+    for line in open('attributes.pb', 'r').readlines():
+        if is_next:
+            return line[7:-2]
+        if x in line:
+            is_next = True
+        else:
+            is_next = False
+    if error_when_absent:
+        raise Exception("Could not find \"{}\" in the protobuf.".format(x))
+    else:
+        return '{} # TODO(wpcarro): scrape.attribute_id_for could not find the ID.'.format(
+            x)
+
+
+actual = [
+    attribute_id_for('Form.description'),
+    attribute_id_for('Form.country'),
+    attribute_id_for('Form.countries_business_serve'),
+    attribute_id_for('Form.name'),
+    attribute_id_for('Atlas.CustomerId'),
+    attribute_id_for('Form.form-id'),
+    attribute_id_for('Form.Ar_descr_textbox'),
+    attribute_id_for('AR.ART.LastDecisionRecommended'),
+]
+expected = [
+    '^2941', '^16296', '^14659', '^1665', '^1421', '^4297', '^6664', '^106918'
+]
+simple_assert(actual, expected)
diff --git a/universe/ac_types/serialize.py b/universe/ac_types/serialize.py
new file mode 100644
index 000000000000..966a9024f3fa
--- /dev/null
+++ b/universe/ac_types/serialize.py
@@ -0,0 +1,67 @@
+from test_utils import simple_assert
+import string as string
+
+
+def literal(x):
+    if x == True:
+        return 'true'
+    elif x == False:
+        return 'false'
+    elif isinstance(x, int):
+        return str(x)
+    elif x is None:
+        raise Exception("None!")
+    # `x` is a string
+    else:
+        x = string.trim_surrounding('"', x)
+        return "\"{}\"".format(x)
+
+
+actual = [
+    literal(True),
+    literal(9249441),
+    literal("COMPLEXITY"),
+    literal("\"doubly wrapped string\"")
+]
+expected = ["true", "9249441", "\"COMPLEXITY\"", "\"doubly wrapped string\""]
+simple_assert(actual, expected, name="literal")
+
+
+def input(input_type=None, fields=None):
+    header = 'inputs {'
+    input_type_field = '  type: {}'.format(input_type)
+    fields = '\n'.join(
+        ["  {}: {}".format(k, literal(v)) for k, v in fields.items()])
+    if input_type == 'SIGNAL':
+        fields += '\n  signal_type: CID'
+    footer = '}'
+    return '\n'.join([header, input_type_field, fields, footer])
+
+
+actual = input(input_type='CONSTANT',
+               fields={
+                   'consult_frd_id': 'FEATURE',
+                   'is_optional': False,
+                   'constant_value': "regular_review",
+               })
+expected = """inputs {
+  type: CONSTANT
+  consult_frd_id: "FEATURE"
+  is_optional: false
+  constant_value: "regular_review"
+}"""
+simple_assert(actual, expected, name='input')
+
+actual = input(input_type='CONSTANT',
+               fields={
+                   'consult_frd_id': 'FEATURE',
+                   'is_optional': False,
+                   'constant_value': "\"doubly wrapped string\"",
+               })
+expected = """inputs {
+  type: CONSTANT
+  consult_frd_id: "FEATURE"
+  is_optional: false
+  constant_value: "doubly wrapped string"
+}"""
+simple_assert(actual, expected, name='input')
diff --git a/universe/ac_types/string.py b/universe/ac_types/string.py
new file mode 100644
index 000000000000..9ef6c3ab52a6
--- /dev/null
+++ b/universe/ac_types/string.py
@@ -0,0 +1,90 @@
+from test_utils import simple_assert
+
+
+def with_banner(x):
+    header = '#################################################################'
+    text = '# {}'.format(x)
+    footer = '#################################################################'
+    return '\n'.join([header, text, footer])
+
+
+def starts_with(prefix, x):
+    """Return True if `x` starts with `prefix`."""
+    return x.startswith(prefix)
+
+
+def ends_with(prefix, x):
+    """Return True if `x` starts with `prefix`."""
+    return x.endswith(prefix)
+
+
+def trim_prefix(prefix, x):
+    """Remove `prefix` from `x` if present."""
+    if x.startswith(prefix):
+        return x[len(prefix):]
+    else:
+        return x
+
+
+actual = [trim_prefix('"', '"leading"'), trim_prefix('"', 'non-leading')]
+expected = ['leading"', 'non-leading']
+simple_assert(actual, expected, name="trim_prefix")
+
+
+def trim_suffix(suffix, x):
+    """Remove `suffix` from `x` if present."""
+    if x.endswith(suffix):
+        amt = len(x) - len(suffix)
+        return x[0:amt]
+    else:
+        return x
+
+
+actual = [
+    trim_suffix('ing"', '"trailing"'),
+    trim_suffix('ing"', 'non-trailing')
+]
+expected = ['"trail', 'non-trailing']
+simple_assert(actual, expected, name="trim_suffix")
+
+
+def trim_surrounding(b, x):
+    """Remove `b` from `x` if present as prefix and suffix."""
+    if x.startswith(b) and x.endswith(b):
+        x = trim_prefix(b, x)
+        x = trim_suffix(b, x)
+        return x
+    else:
+        return x
+
+
+actual = [
+    trim_surrounding('"', '"surrounded"'),
+    trim_surrounding('"', 'non-surrounded'),
+    trim_surrounding('"', '"just-prefixed'),
+    trim_surrounding('"', 'just-suffixed"'),
+]
+expected = ['surrounded', 'non-surrounded', '"just-prefixed', 'just-suffixed"']
+simple_assert(actual, expected, name="trim_surrounding")
+
+
+def indent(x, spaces=2):
+    """Indent string `x` number of `spaces`, defaulting to two."""
+    return '\n'.join([' ' * spaces + line for line in x.split('\n')])
+
+
+actual = indent("""testing
+this function
+out""")
+expected = """  testing
+  this function
+  out"""
+simple_assert(actual, expected, name="indent")
+
+actual = indent("""testing
+this function
+out""", spaces=4)
+expected = """    testing
+    this function
+    out"""
+simple_assert(actual, expected, name="indent")
diff --git a/universe/ac_types/string.pyc b/universe/ac_types/string.pyc
new file mode 100644
index 000000000000..df93a05fd5cd
--- /dev/null
+++ b/universe/ac_types/string.pyc
Binary files differdiff --git a/universe/ac_types/test_utils.py b/universe/ac_types/test_utils.py
new file mode 100644
index 000000000000..1c1570754eb6
--- /dev/null
+++ b/universe/ac_types/test_utils.py
@@ -0,0 +1,21 @@
+silent_on_success = True
+
+
+# I need to define this herein to avoid introducing a circular dependency.
+def with_banner(x):
+    header = '#################################################################'
+    text = '# {}'.format(x)
+    footer = '#################################################################'
+    return '\n'.join([header, text, footer])
+
+
+def simple_assert(actual, expected, name=None):
+    try:
+        assert actual == expected
+        if silent_on_success:
+            return None
+        else:
+            print(with_banner('{}: Test passes!'.format(name)))
+    except:
+        print(with_banner('{}: Test failure.'.format(name)))
+        print(actual)
diff --git a/universe/ac_types/test_utils.pyc b/universe/ac_types/test_utils.pyc
new file mode 100644
index 000000000000..ed6d0ea9642f
--- /dev/null
+++ b/universe/ac_types/test_utils.pyc
Binary files differdiff --git a/universe/ac_types/todo.org b/universe/ac_types/todo.org
new file mode 100644
index 000000000000..e4e274cc3d21
--- /dev/null
+++ b/universe/ac_types/todo.org
@@ -0,0 +1,5 @@
+* DONE Ensure order matches trix.
+* DONE Use FRD identifier and not its display name for inputs.CONSTANT.
+* DONE Ensure "Non-Sensitive Ads Review (Olympus)" support "olympus" and "olympus_plus".
+* DONE Append output to consult.textproto.
+* DONE Run `hg fix` on consult.textproto.