We don't use keywords per se. Go with more of a page object approach. Manual tester creates a reusable test of all possible interactions on a page, in english sentences, written like a manual test case but with data parameters in Quality Center. An actual test is comprised of calls to these reusable tests for each page in the application.
Automater comes in and codes up a reusable function/class for that page that takes in the parameters and executes all the steps(except a blank param means skip that step/leave field blank). Once that's done for all the needed reusable portions, manual testers can create thousands of tests and they'll be ready to run as automated without any action needed by an automation developer.
Test Processor calls the appropriate function/class based on what steps are in a particular test case. Using the OTA API can execute these tests from Quality Center test lab in QTP(retiring our usage of that) or Selenium and post results back to Quality Center.